Рубрики
KVM

KVM qcow2 to vhdx

источники:

https://blogs.msdn.microsoft.com/virtual_pc_guy/2015/06/22/handy-tool-for-converting-kvm-vmware-images-to-hyper-v/
qemu-img for Windows
http://jidckii.ru/%D0%BA%D0%BE%D0%BD%D0%B2%D0%B5%D1%80%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D0%BE%D0%B1%D1%80%D0%B0%D0%B7%D0%BE%D0%B2-vm-%D0%BF%D1%80%D0%B8-%D0%BF%D0%BE%D0%BC%D0%BE%D1%89%D0%B8-qemu-img-%D0%B2-%D0%BB%D1%8E/

возможные форматы:

VMDK (VMware) — vmdk
QCOW2 (KVM, Xen) — qcow2
VHD (Hyper-V) — vpc
VHDX (Hyper-V) — vhdx
RAW —  raw
VDI (VirtualBox)  — vdi

основные команды:

qemu-img convert -f qcow2 “SourceDisk.img” -O vhdx -o subformat=dynamic “Destination.vhdx” - конвертация qcow2 в vhdx
qemu-img.exe convert -f qcow2 "f:\old_disk1\dc.qcow2" -O vpc  g:\vhd\dc.vhd - конвертация  qcow2 в vhd
qemu-img.exe check source.qcow2 - проверка образа
qemu-img.exe info image.qcow2 - информация об образе

приступил :(

qemu-img.exe convert -f qcow2 "f:\old_disk1\dc.qcow2" -O vhdx -o subformat=dynamic g:\vhd\dc.vhdx
qemu-img.exe convert -f qcow2 "f:\old_disk1\linux.qcow2" -O vhdx -o subformat=dynamic g:\vhd\linux.vhdx
qemu-img.exe convert -f qcow2 "f:\old_disk1\mail.qcow2" -O vhdx -o subformat=dynamic g:\vhd\mail.vhdx
qemu-img.exe convert -f qcow2 "f:\old_disk1\sonya.qcow2" -O vhdx -o subformat=dynamic g:\vhd\sonya.vhdx
qemu-img.exe convert -f qcow2 "f:\old_disk1\terminal-datastore.qcow2" -O vhdx -o subformat=dynamic g:\vhd\terminal-datastore.vhdx

Облом с windows vhdx:)

В qemu-img версий 2.0 есть баг, из за которого при конвертации в vhdx не поддерживается динамический диск, по этому опция o subformat=dynamic работать не будет.
По этому, для поддержания динамического диска, нужно конвертировать его в vhd(vpc), и уже после в самом hyper-v преобразовывать в vhdx.

Продолжил :)

qemu-img.exe convert -f qcow2 "f:\old_disk1\dc.qcow2" -O vpc  g:\vhd\dc.vhd

облом 2 :(

Ну и снова облом =) все сконвертировалось. при запуске вм vhd 0xc03a001a
Средствами hyper-v преобразовал  vhdx ничего не получилось ошибка ...

получилось так (велосипедно):

0) qemu-img.exe convert -f qcow2 "f:\old_disk1\dc.qcow2" -O vpc  g:\vhd\dc.vhd - сконвертировал
1) в hyper-v создал пустой диск g:\vhd\dcz.vhd
2) с помощью Paragon2015  проверил а монтируются ли диски (все ок )
3) с помощью paragon2015 сделал клон с  g:\vhd\dc.vhd на g:\vhd\dcz.vhd
4) проверил виртуалка запустилась все работает
5) средствами hyper-v конвертировал vhdx

ну а потом попробовал вот так:

имею 3 диска. 
на 1 клоны. 
на 2 я конвертирую vhd
на 3 я создаю vhdx с помощью hyper-v
Используя paragon делаю клон c vhd на vhdx

!!!

Для linux нужно будет переписать загрузчик и fstab