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

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

9 ответов

Решение

И да и нет.

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

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

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.

Если ваш 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

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

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

Я попробовал 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.

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

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

ИЛИ ЖЕ

#Внутренние команды 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

Для более новых виртуальных боксов команда VBoxManage немного изменилась.

Теперь правильный синтаксис для клонирования файла VDI в необработанный формат:

      VBoxManage clonemedium inputfile.vdi outputfile.img --RAW

Будьте терпеливы во время преобразования!

Примечание. Для совместимости с более ранними версиями Oracle VM VirtualBox команды clonevdi и clonehd по-прежнему поддерживаются и внутренне сопоставляются с командой clonemedium.

Основной вопрос заключается в том, можно ли преобразовать виртуальную машину в физический диск (V2P). Ответ: да.

Некоторые ответы на этот вопрос основаны на внешнем подходе. То есть относитесь к виртуальной машине как к одному файлу (т. е. как к VDI) и преобразуйте ее как таковую. Внешние подходы, похоже, в целом оказались менее успешными. для меня.

Большинство усилий V2P используют внутренние подходы. Они включают запуск программного обеспечения или команды внутри виртуальной машины. Соответствующее программное обеспечение может быть установлено на виртуальной машине (например, Они, конечно, былиSystemback) или может вытеснять установленную систему во время загрузки. Например, пользователь может подключить ISO-образ Clonezilla к виртуальной машине, прервать загрузку, чтобы установить приоритет ISO-образа Clonezilla, и использовать его для создания образа установленной системы. Другой пример: я добился хороших результатов , используя Lubuntu ISO внутри виртуальной машины Ubuntu (опять же, упреждая загрузку системы Ubuntu) для запуска команд dd для преобразования этой виртуальной машины Ubuntu в физическую среду либо путем прямого клонирования, либо путем прямого клонирования. путем создания файла изображения.

Если вы можете запустить VDI как виртуальную машину, я думаю, вы получите лучшие результаты от внутреннего решения, чем от внешнего преобразования.

При редактировании Рэем Вудкоком сообщения abu_bua (ошибочном для меня в 2023 году на VirtualBox 6.1)VBoxManage clonemedium inputfile.vdi outputfile.img --RAW

должно читаться --format=RAW (требуются оба «format» и «=")

VBoxManage clonemedium vdisk.vdi disk.img --format=RAW

необязательно идентичный вывод (проверяется с помощью diff ) с (из Basj superuser.com/questions/1721151/from-virtualbox-vm-vdi-file-to-a-usb-bootable-iso-image)

VBoxManage internalcommands converttoraw file.vdi output.img

пропуск устаревшей версии становится псевдонимом (без "=" перед RAW)

VBoxManage clonehd file.vdi file.raw --формат RAW

Примечание: сгенерированный Debian11 Etecher USB-ключ с Monterey12.6.4/MacbookPro2015 не смог загрузить MackbookAir2014 после приведенных выше инструкций.

(недостаточно представителей для комментариев, неосведомлен о платформе, премьер-министр Вудкок)

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

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
Другие вопросы по тегам