Apenas para encerrar o ciclo: uma resposta à pergunta de Lingfeng foi fornecida em um tópico na lista de discussão xen-api . Aqui está a resposta de James Bulpin:
Uma maneira seria, para cada VM:
-
Converta cada arquivo qcow2 em um arquivo raw usando qcow2raw 'coloque esses arquivos em algum lugar (por exemplo, uma exportação NFS) onde você possa alcançá-los temporariamente do domínio do XCP0
-
Usando o XCP 'instale' uma VM usando o modelo mais adequado, mas não iniciando realmente a VM ou passando pela instalação. Certifique-se de escolher tamanhos de discos virtuais pelo menos tão grandes quanto o tamanho virtual dos qcow2 originais. Defina os endereços MAC NIC virtuais para corresponder à sua VM xl. 'Para PV, você precisará convencer o XCP de que concluiu a instalação por
a. mudando o PV-bootloader para pygrub (xe vm-param-set uuid = PV-bootloader = pygrub)
b. tornando o primeiro VBD inicializável (xe vbd-param-set uuid = $ (xe vbd-lista vm-uuid = userdevice = 0 - mínimo) bootable = true)
c. fazendo com que a unidade de CD virtual (se presente) não seja inicializável: (xe vbd-param-set uuid = $ (xe vbd-lista vm-uuid = tipo = CD - mínimo) bootable = false)
-
Um por um, anexar os discos virtuais da VM ao dom0 'minha maneira preferida é:
a. Encontre o UUID da VDI usando 'xe vm-disk-list uuid =' 'procurando por ex. 'Disco 0 VDI'
b. Execute '/ opt / xensource / debug / com-vdi' 'isto anexa o VDI ao dom0 como / dev / $ DEVICE e o coloca em um shell' saindo deste shell irá separar o VDI
-
Use / opt / xensource / libexec / sparse_dd para inserir o conteúdo do arquivo bruto (da etapa 1) para o VDI.
a. Por exemplo. / opt / xensource / libexec / sparse_dd -src /mnt/MyVM.img -dest / dev / $ DEVICE -size 8589934592 -prezeroed
-
Saia do shell 'com-vdi'
Eu tentei isso para uma VM xl PV que eu tenho e funcionou (eu comecei a partir de imagem em bruto, em vez de qcow2 então pulei o passo 1). Meu teste também difere em que root está em xvda1, mas o seu caso deve estar bem 'O Pygrub IIRC está OK com root no dispositivo raw.