Перейти к содержимому


Фотография
- - - - -

Конвертация образов VM при помощи qemu-img в любые форматы


  • Авторизуйтесь для ответа в теме
В этой теме нет ответов

#1 alex

alex

    Администратор

  • Администраторы
  • 53 сообщений

Отправлено 07 Май 2018 - 05:35

Qemu-img замечательный инструмент для работы с образами виртуальных машин, их конвертации и многого другого.

Для работы с qemu-img на любом Linux достаточно в любом диструбутиве установить пакеты из репозитория, к примеру на ubuntu
 

$ sudo apt-get install qemu-utils

Для Windows(x64) можно скачать тут qemu-img-win-x64-2_3_0.zip

 

Для того, что бы посмотреть текущий формат образа есть опция info:

 $ qemu-img info win_7.vdi

image: win_7.vdi
file format: vdi
virtual size: 34G (36700160000 bytes)
disk size: 25G
cluster_size: 1048576

Зная исходный формат можно конвертировать в любой нужный.

Возможные форматы:
VMDK (VMware) — vmdk
QCOW2 (KVM, Xen) — qcow2
VHD (Hyper-V) — vpc
VHDX (Hyper-V) — vhdx
RAW —  raw
VDI (VirtualBox)  — vdi
 
Для конвертации используем опцию convert с ключами указания исходного вормата и конечного(нужного в итоге)
 
Ключи к convert:
-p  —  отображает процесс конвертации в %
-f   —  указание исходного формата
-O  —  указания формата на выходе
-o  —  дополнительные опции
-o subformat=dynamic   —  используется для конвертации в vhdx для Hyper-V, указывается для получения на выходе динамического диска.

 

К примеру нужно конвертировать образ VDI (VirtualBox) в VHDX (Hyper-V) :

 
$ qemu-img convert -p -f vdi -O vhdx -o subformat=dynamic /home/user/win_7.vdi /home/user/win_7.vhdx

 

Замечу, что не важно какие у файлов расширения файлов, главное корректно указать исходный и конечный форматы ключами -f и -O, но все же для удобства желательно указывать расширение формата.

 
Из VDI (VirtualBox) в QCOW2 (KVM, Xen) :
 
$ qemu-img convert -p -f vdi -O qcow2 /home/user/win_7.vdi /home/user/win_7.img

 

Дополнение:

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

По этому, для поддержания динамического диска, нужно конвертировать его в vhd(vpc), и уже после в самом hyper-v преобразовывать в vhdx.

Все остальное по аналогии.


5781106142.png