Skip to content

Latest commit

 

History

34 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

h2kvm

Any hypervisor → KVM. Convert offline. Fix the guest. Deploy with confidence.

Export, convert, and deploy VMs from VMware, Hyper-V, Nutanix, AWS, Azure, GCP and more —
with offline guest fixes, a web control plane, and a Kubernetes-native operator.

First-boot science for hypervisor exit · day-2 on Zeus OS · part of the Zyvor suite


Release GuestKit Python License


Book an Enterprise demo 30-day PoC Watch the demo

Install · Quick start · GuestKit · Remote deploy · Demos · CE vs Enterprise · Docs · Product


The cutover problem — fixed before power-on

Hypervisor exit fails when VirtIO is missing, GRUB is wrong, or Windows still points at the old hypervisor — after you cut over.

h2kvm converts the disk offline, runs GuestKit repair, and deploys to libvirt / KubeVirt / OpenStack so first boot is planned, not guessed.

  VMware · Hyper-V · cloud disks · …
              │
              ▼
     ┌──────────────────────────┐
     │  h2kvm                   │──►  convert → qcow2 / raw
     │  h2kvmctl · h2kweb       │──►  GuestKit inspect + repair
     │  K8s / OLM operator      │──►  deploy · validate · rollback
     └──────────────────────────┘
              │
              ▼
       libvirt · KubeVirt · Glance/Nova
              │
              ▼
            Zeus OS (day-2)
GuestKit offline fix 8+ disk formats 35+ guest OS CLI · web · operator

Suite path: HyperSDK export → GuestKit assure → h2kvm convert & deploy → Zeus OS day-2.


Install

v1.1.0 — GuestKit from PyPI; h2kvm from the GitHub Release wheel.

pip install "hypersdk-guestkit>=1.1.0"
pip install https://github.com/zyvorai/h2kvm/releases/download/v1.1.0/h2kvm-1.1.0-py3-none-any.whl

From source (extras / development):

git clone https://github.com/zyvorai/h2kvm.git
cd h2kvm
pip install -e ".[full]"

Host needs Linux with qemu-img, qemu-nbd, and losetup. Repair and NBD mounts often need root or H2KVM_USE_SUDO=1.

Artifact Where
h2kvm 1.1.0 GitHub Release (wheel + sdist)
hypersdk-guestkit ≥ 1.1.0 PyPI
Operator image ghcr.io/zyvorai/h2kvm/operator:v1.1.0

Quick start

# Local VMDK → qcow2 (GuestKit repair is the default backend)
h2kvmctl local --vmdk ubuntu.vmdk --to-output ubuntu.qcow2 --backend guestkit

# Live migration from vSphere
h2kvmctl migrate --source vmware --vm web-prod-01 --target kvm

# Web dashboard
h2kweb
# → https://localhost:5070

# Kubernetes operator
kubectl apply -f operator/deploy/
Surface What you get
CLI h2kvmctl / h2k
Web h2kweb dashboard — web/
TUI zkvm terminal UI
Operator K8s / OpenShift — operator/, olm/
Helm Production charts — helm/
Fix engine GuestKit run_migrate_repair + h2kvm injectors
You want… Go here
Full docs docs/README.md
Remote SSH deploy docs/deployment/deploy-remote.md
GuestKit wiring docs/architecture/GUESTKIT.md
Examples examples/
CE vs Enterprise docs/ce-vs-enterprise.md

GuestKit

Offline inspect and repair run through GuestKit — fstab, GRUB, initramfs, and hypervisor-aware fixes via guestkit.run_migrate_repair(). h2kvm does not re-implement that engine in pure Python.

from h2kvm.core import guestkit_client

report = guestkit_client.doctor("ubuntu.qcow2", target="kvm", explain=True)
result = guestkit_client.migrate_repair("ubuntu.qcow2", target="kvm", apply=True)
# Pre-flight with the GuestKit CLI
guestkit doctor ubuntu.vmdk --target kvm --explain

Debian/Ubuntu libvirt: after convert, chown libvirt-qemu:kvm on the output qcow2 before virsh start. See troubleshooting.

More: GUESTKIT.md · API · GuestKit repo


Remote lab deploy

One SSH command installs system deps, h2kvm, GuestKit (from PyPI), and optionally h2kweb:

./scripts/deploy-remote.sh 175.110.122.71 sus --keep-sources

# GuestKit CLI binary (separate repo)
cd /path/to/guestkit
GUESTKIT_ZYVOR_ACCEPT=1 ./scripts/deploy-remote.sh 175.110.122.71 sus --quick --key

End-to-end demo on the target (osboxes Ubuntu VMDK):

sudo bash ~/.deployments/h2kvm/scripts/demo-libvirt.sh \
  ~/demo/ubuntu2404.vmdk ubuntu-test --memory 4096 --vcpus 2

Full guide: docs/deployment/deploy-remote.md


See it in action

h2kvm live console tour
▶ Live console tour

h2kweb — progress, migrate, deploy
h2kvm full tutorial
▶ Full tutorial

End-to-end conversion walkthrough
h2kvm feature demo
▶ Feature deep dive

Offline fix · Windows · targets
h2kvm product
▶ Product page

Architecture · editions · PoC

Recorded against real deployments — more demos →


Why teams switch

Before h2kvm With h2kvm
18-month “migration project” One pipeline: browse → migrate → deploy
Guest drivers break on first KVM boot GuestKit offline fix for 35+ OS versions
Windows needs a war room of tribal scripts Automated VirtIO / hivex / RDP path
No visibility mid-conversion h2kweb progress · webhooks · email
K8s teams stuck on libvirt YAML Libvirt → KubeVirt one-click path
Cutover outcomes unowned Enterprise: 96.8% automated first-boot + PS

Community vs Enterprise

Community proves convert. Enterprise owns cutover night.

CE is for labs and single-cluster PoC. Moving a Windows estate, SAN-backed waves, or multi-site fleets? No war-room, no HA fabric, no LTS/CVE contract on CE. Buy Enterprise.

Community / public CE (this repo) Enterprise
Who it is for Labs · DIY pipelines Migration leads · multi-wave cutovers
Convert + GuestKit offline fix ✅ + validated fleet playbooks
CLI · h2kweb · zkvm · operator ✅ Eval / single-cluster HA · multi-namespace tenancy
Windows path Automated VirtIO / registry ✅ + war-room / PS runbooks
Storage pipelines Local / libvirt / KubeVirt / Glance ✅ + SAN / Ceph / NetApp
Pre-flight GuestKit planner ✅ + GuestKit fleet risk scoring
First-boot Strong offline fix 96.8% automated path + PS
Support Community SLA · LTS · CVE · hypervisor-exit programs
Day-2 Hand off to Zeus OS ✅ Licensed suite path

Why teams upgrade

  1. A lab operator is not a multi-wave cutover fabric
  2. Windows estates need war-room playbooks — VirtIO alone is not enough
  3. Production needs HA, tenancy, and CVE/LTS under contract
  4. Storage teams need SAN/Ceph pipelines with a named owner
  5. You want Zyvor accountable for first-boot — not Issues at 2 a.m.

Full feature matrix →


Bring us your worst wave. 30-day PoC on your estate.

Start a proof of concept Book an Enterprise demo Pricing


Where this fits: the Zyvor suite

flowchart LR
    H["HyperSDK<br/>export"] --> G["GuestKit<br/>assure"]
    G --> K["<b>h2kvm</b><br/>convert · fix · deploy"]
    K --> T["KVM · KubeVirt"]
    T --> Z["Zeus OS<br/>day-2"]

    classDef accent fill:#F97316,stroke:#EA580C,color:#fff;
    classDef muted fill:#F3F4F6,stroke:#D1D5DB,color:#111827;
    class K accent;
    class Z muted;
Loading
Product Role
HyperSDK Multi-cloud / vSphere · Nutanix export
GuestKit Offline disk doctor + Passport + run_migrate_repair
h2kvm (this repo) Convert + GuestKit offline fix + libvirt/KubeVirt deploy
Zeus OS Day-2 KubeVirt / cloud control plane
Machina Physical hypervisor OS (libvirt/KVM)
PacketWolf Kernel-native network intelligence

zyvor.dev · hypervisor exit program


Support

Enterprise / PoC Book a demo · sales@zyvor.dev
Community GitHub Issues
Product zyvor.dev/h2kvm

License

See LICENSE and docs/legal/ for terms. Community / eval builds are for labs and integration — production fleets and SLAs are Enterprise.

Built by Zyvor AI Labs · Hypervisor exit without the 2 a.m. surprise

About

h2kvm

Resources

Contributing

Security policy

Stars

4 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages