Ok, resolvido. Foi assim que fizemos:
Digamos que nossa VM seja chamada de "anansi" (atualmente estou lendo um livro de Neil Gaiman; vou deixar você adivinhar qual :-)). É instalado em dois volumes LVM, / dev / vg0 / anansi-root (sistema de arquivos raiz, 5GB) e / dev / vg0 / anansi-swap (512MB).
Primeiro, criamos um novo volume LVM para o disco rígido virtual:
lvcreate -n anansiVHD -L 6GB vg0
Em seguida, criamos duas partições, usando o cfdisk:
cfdisk /dev/vg0/anansiVHD
Então usamos o kpartx para mostrar as partições dentro do disco virtual:
kpartx -av /dev/vg0/anansiVHD
Nós os formatamos (usando ext3 nesse caso porque era o que a VM original tinha). Você não verá os novos dispositivos dentro de / dev / vg0, porque o LVM não está ciente deles. Você terá que usar / dev / mapper / whatever para acessá-los, assim:
mkfs.ext3 /dev/mapper/vg0-anansiVHD1
mkswap /dev/mapper/vg0-anansiVHD2
Depois montamos a partição raiz:
mkdir /tmp/anansiVHD_root
mount /dev/mapper/vg0-anansiVHD1 /tmp/anansiVHD_root
Como a VM que queríamos migrar está sendo executada, usamos um instantâneo para copiar seu conteúdo:
lvcreate -s -n anansi-snap -L 2G /dev/vg0/anansi-root
mkdir /tmp/anansi-snap
mount /dev/vg0/anansi-snap /tmp/anansi-snap
cd /tmp/anansi-snap
tar c . | (cd /tmp/anansiVHD_root ; tar xv)
Nós limpamos:
umount /tmp/anansiVHD_root
umount /tmp/anansi-snap
lvremove -f /dev/vg0/anansi-snap
kpartx -d /dev/vg0/anansiVHD
Tivemos que alterar o arquivo de configuração da VM ("anansi.cfg") para refletir a alteração em um disco virtual. Isso significava mudar a linha:
disk = [ 'phy:/dev/vg0/anansi-root,xvda1,w', 'phy:/dev/vg0/anansi-swap,xvda2,w' ]
Para isso:
disk = [ 'phy:/dev/vg0/anansiVHD,xvda,w' ]
Em seguida, usamos o script vinculado anteriormente para migrar a máquina:
xva.py -c anansi.cfg -s <the IP of our XCP host> --username=root --password=<root password>
Depois, tivemos que copiar o kernel e o initrd usados para inicializar esta VM no host XCP, seguindo as instruções do script. A última etapa é ssh no host XCP e alterar o carregador de inicialização para essa VM: se não, o XCP tentará usar o pygrub e, como isso espera o kernel e initrd dentro do disco rígido virtual, ele não funcionará.
Então fizemos isso:
xe vm-param-set PV-bootloader="" uuid=0ab93325-bdb3-e5c9-e7ab-2173b612b02c
Com o uuid da nova VM, recebemos "xe vm-list".
Espero que ajude.