74

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

6 ответов6

62

И да и нет.

Вы можете преобразовать 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.

19

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

Во-первых, как сказал ранее Quack Quixote, преобразуйте файл 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
12

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

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

5

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

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

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

Я делаю этот процесс очень быстро, с помощью двух командных строк в 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

0

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .