it-swarm.xyz

Можно ли конвертировать виртуальные машины в физические среды?

Возможно преобразовать файл .vdi в файл .iso, который можно записать на компакт-диск или DVD-диск, и сделать его как установщик. Или возможно ли преобразовать виртуальные машины в физические среды?

76
Wern Ancheta

И да и нет.

Вы можете преобразовать VDI в образ диска с помощью инструмента VBoxManage. Эта команда клонирует зарегистрированный образ виртуального диска в другой файл образа. Если вы хотите преобразовать ваш виртуальный диск в другой формат, это официальный инструмент VirtualBox для использования [*].

VBoxManage clonehd file.vdi output.img --format RAW
  • Если вы используете динамический VDI и у вас более старая версия VirtualBox, clonehd может работать неправильно. Инструмент VBoxManage internalcommands включает converttoraw, который может преобразовывать динамический VDI в необработанный образ диска ( source ) [+].
VBoxManage internalcommands converttoraw file.vdi output.img

Но... этот выходной файл IMG не является образом ISO, и установленная ОС не будет настроена для запуска с загрузочного CD/DVD. Вы можете «записать» (записать) IMG на жесткий диск, и он может загружаться на голом оборудовании (например, не на виртуальной машине). Но это может и не произойти, потому что ОС, установленная на этом IMG, ожидает увидеть виртуальное оборудование, которое предоставляет VirtualBox, а вы загружаете его на реальном оборудовании, которого оно не ожидает.

Некоторые версии Windows плохо справляются с этой ситуацией; некоторые дистрибутивы Linux делают. Иногда можно настроить ОС (до или после) для ее миграции из одной среды в другую, как это, но конкретные шаги полностью зависят от переносимой ОС.


В Windows вам может потребоваться указать полный путь к программе:

"C:\Program Files\Sun\VirtualBox\VBoxManage.exe" [...]

Добавьте C:\Program Files\Sun\VirtualBox к своему PATH, чтобы использовать сокращенную версию.


[*] Я предполагаю, что опция "--format RAW" преобразует в стандартный образ диска, как если бы вы использовали команду dd на физическом жестком диске. Но, честно говоря, я не нашел никаких документов, подтверждающих это, так что имейте в виду, что это может быть неправильно.

[+] Я только что протестировал обе команды в VirtualBox 3.1.2. Оба выходных файла идентичны в соответствии с md5sum, но я не полностью протестировал выходные файлы.

Смотрите также "Все о VDI" учебник на форумах VirtualBox.

62
quack quixote

Если ваш vdi-файл содержит разделы и вы хотите извлечь только один из них, используйте следующее:

Во-первых, как уже говорилось ранее, преобразуйте файл vdi в файл необработанного изображения:

# VBoxManage clonehd file.vdi file.raw --format RAW

Затем настройте петлевое устройство для изображения:

# loopdev=$(losetup --show -r -f file.raw)

Используйте kpartx для создания устройств для каждого раздела в необработанном файле:

# apt-get install kpartx
# kpartx -a $loopdev

Посмотрите, какие устройства у нас сейчас. В этом примере есть только одно устройство, поскольку в исходном образе есть только один раздел:

# ls /dev/mapper/loop*
/dev/mapper/loop0p1

Теперь смонтируйте его, чтобы убедиться, что все работает правильно:

# mkdir /mnt/part1
# mount /dev/mapper/loop0p1 /mnt/part1
# ls /mnt/part1
# umount /mnt/part1

Используйте dd для копирования содержимого раздела в другой целевой раздел:

# dd if=/dev/mapper/loop0p1 of=/dev/sda2 bs=1M

После того, как вы закончите, удалите сопоставления устройства снова:

# kpartx -d file.raw
20
dmoebius

Ответ однозначен: да, если ваш хост и гостевая система Linux. Это делается с помощью пакетов qemu и TKLPatch. Вы можете использовать файлы VDI или VMDK.

Прочитайте больше:

12
Alon Swartz

Я попробовал VBoxManage clonehd file.vdi output.img --format RAW из принятый ответ но без особого успеха.

Что работало для меня с виртуальной машиной Windows 8.1 на хосте Windows 7, так это:

  1. Создайте компьютер под управлением Windows 8.1 в VirtualBox, установите и используйте его так же, как это обычно делается с виртуальной машиной.
  2. Конвертировать жесткий диск Virtual Box .vdi в Windows VHD с VBoxManage clonehd source.vdi target.vhd --format vhd
  3. Монтирование виртуального жесткого диска на компьютере с ОС Windows как диск (виртуальный жесткий диск можно подключить в диспетчере дисков в разделе «Управление компьютером»).
  4. Клонируйте виртуальный жесткий диск (смонтированный в качестве накопителя) на другой новый жесткий диск (в моем случае подключенный USB-накопитель HD) DriveImage XML или аналогичное средство клонирования дисков. Теперь вы в основном клонировали виртуальный жесткий диск .vdi на голое железо.
  5. Установите новый жесткий диск в машину. (в моем случае поменяйте местами жесткий диск ноутбука)
  6. Вставьте установочный USB/CD с Windows 8.1, загрузитесь с него, выберите «Дополнительные параметры» и «Автоматическое восстановление». Автоматическое восстановление сделает новый жесткий диск загрузочным.
  7. Загрузитесь с нового жесткого диска с клонированной Windows 8.1 и запустите Центр обновления Windows. Это позволит загрузить драйверы для оборудования вашего компьютера, которые не были известны при запуске Windows в VirtualBox. Вам нужно будет установить отсутствующие драйверы вручную, если таковые имеются.
  8. Удалите VirtualBox Гостевые дополнения. При желании установите VirtualBox, чтобы ваша Windows 8.1 с железом могла быть хостом VirtualBox.
5
Jan H

Я делаю этот процесс очень быстро, с двумя строчками команды в Linux:

#VBoxManage внутренние команды converttoraw your_disk_virtual.vmdk your_disk_virtual.img

OR

#VBoxManage внутренние команды converttoraw your_disk_virtual.vdi your_disk_virtual.img

# mv your_disk_virtual.img your_disk_virtual.iso

Моя полная статья: http://www.previsioni.com.br/jailsonjan/?p=389

3
JailsonJan

Используйте следующую команду для преобразования:

VBoxManage clonehd CactiEZ-disk1.vmdk output.iso --format VMDK

Вот вывод:

0%...10%...20%...30%...40%...50%...60%...70%...80%...90%...100%
Clone hard disk created in format 'VMDK'. UUID: 7f297ac6-95eb-4814-9237-1acfd6be976c
0
Anupam