whatisgithub

What is xen2proxmox?

marcpope/xen2proxmox — explained in plain English

Analysis updated 2026-05-18

0ShellAudience · ops devopsComplexity · 4/5LicenseSetup · hard

In one sentence

A script that migrates Windows virtual machines from XCP-ng or XenServer to Proxmox VE in one command, fixing driver problems the normal conversion tool misses.

Mindmap

mindmap
  root((xen2proxmox))
    What it does
      Migrates Windows VMs
      Fixes registry issues
      Streams disk export
    Tech stack
      Shell script
      virt-v2v
      Python hivex
    Use cases
      Move VM to Proxmox
      Fix boot crashes
      Large disk migration
    Audience
      Sysadmins
      DevOps engineers
    Safety
      Source VM untouched
      Conservative first boot
      Rollback by powering on source

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Migrate a Windows Server virtual machine from an XCP-ng host to a Proxmox VE cluster.

USE CASE 2

Avoid the boot crash caused by leftover XCP-ng drivers after a standard virt-v2v conversion.

USE CASE 3

Move a large production Windows VM with minimal downtime using a streamed disk export.

What is it built with?

Shellvirt-v2vPythonProxmox VE

How does it compare?

marcpope/xen2proxmox123satyajeet123/bitnet-serveradeilsonrbrito/cross-model-consult
Stars000
LanguageShellShellShell
Setup difficultyhardeasymoderate
Complexity4/52/53/5
Audienceops devopsdeveloperdeveloper

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · hard Time to first run · 1h+

Requires SSH access to the XCP-ng host, root on Proxmox, and a cleanly shut down source VM.

Use, modify, and redistribute freely as long as you keep the copyright and license notice.

So what is it?

This tool moves Windows virtual machines from one virtualization system, XCP-ng or XenServer, over to another one called Proxmox VE, using a single command. It solves a specific and painful problem: a normal conversion tool called virt-v2v can move the files over, but it misses some Windows registry cleanup that XCP-ng leaves behind, and without that cleanup the migrated Windows machine crashes on startup no matter which storage setup you try. The README explains the problem in detail. XCP-ng installs special drivers into Windows so it can talk to that specific virtualization platform. When you move the machine somewhere else, those drivers try to load anyway and crash the boot process. Worse, one of those drivers is registered as a filter across two entire driver classes, so once it is disabled, everything that depends on those classes also fails to start, including the disk controller itself. There is also damage to a core disk driver's registry settings that is easy to miss just by looking at it. To fix all this, the script runs directly on the target Proxmox machine. It installs the tools it needs, connects to the old XCP-ng host over a secure connection, exports the virtual disk without needing extra storage space on the old host, converts it with virt-v2v, and then does the registry repair work itself using Python-based registry editing tools. After that it creates the new virtual machine on Proxmox with a deliberately cautious first boot: the network is left disconnected and the disk is attached in a simple mode, so nothing can go wrong on the first startup. Once you confirm it boots correctly, you can turn the network back on and later switch to faster drivers. The original virtual machine is never changed or deleted, so if something goes wrong you can simply power it back on. The author reports testing this on Windows Server 2019 and a real 192 gigabyte disk migration that took about 45 minutes. This tool is specifically for Windows machines, Linux virtual machines do not need any of this. It is released under the Apache 2.0 license.

Copy-paste prompts

Prompt 1
Walk me through using xen2proxmox to migrate a Windows VM from my XCP-ng host to Proxmox.
Prompt 2
Explain why my virt-v2v converted Windows VM crashes with INACCESSIBLE_BOOT_DEVICE.
Prompt 3
What should I check on the Proxmox console after xen2proxmox finishes a migration?
Prompt 4
Help me set the right VMID, storage, and memory options for the xen2proxmox command.

Frequently asked questions

What is xen2proxmox?

A script that migrates Windows virtual machines from XCP-ng or XenServer to Proxmox VE in one command, fixing driver problems the normal conversion tool misses.

What language is xen2proxmox written in?

Mainly Shell. The stack also includes Shell, virt-v2v, Python.

What license does xen2proxmox use?

Use, modify, and redistribute freely as long as you keep the copyright and license notice.

How hard is xen2proxmox to set up?

Setup difficulty is rated hard, with roughly 1h+ to a first successful run.

Who is xen2proxmox for?

Mainly ops devops.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.