Возможно преобразовать файл .vdi в файл .iso, который можно записать на компакт-диск или DVD-диск, и сделать его как установщик. Или возможно ли преобразовать виртуальные машины в физические среды?
6 ответов
И да и нет.
Вы можете преобразовать 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-файл содержит разделы и вы хотите извлечь только один из них, используйте следующее:
Во-первых, как сказал ранее 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
Ответ однозначен: да, если ваш хост и гостевая система Linux.
Это делается с помощью пакетов qemu
и TKLPatch
. Вы можете использовать файлы VDI или VMDK.
Прочитайте больше:
Я попробовал VBoxManage clonehd file.vdi output.img --format RAW
из принятого ответа, но без особого успеха.
Что работало для меня с виртуальной машиной Windows 8.1 на хосте Windows 7, так это:
- Создайте машину с Windows 8.1 в VirtualBox, установите и используйте ее так же, как обычно с виртуальной машиной.
- Преобразование жесткого диска Virtual Box .vdi в виртуальный жесткий диск Windows с
VBoxManage clonehd source.vdi target.vhd --format vhd
- Смонтируйте виртуальный жесткий диск на хост-компьютере Windows как диск (вы можете подключить виртуальный жесткий диск в диспетчере дисков в разделе «Управление компьютером»).
- Клонируйте виртуальный жесткий диск (смонтированный в качестве накопителя) на другой новый жесткий диск (в моем случае это USB-ноутбук с жестким диском) DriveImage XML или аналогичное средство клонирования дисков. Теперь вы в основном клонировали виртуальный жесткий диск .vdi на голое железо.
- Установите новый жесткий диск в машину. (в моем случае поменяйте местами жесткий диск ноутбука)
- Вставьте установочный USB/CD с Windows 8.1, загрузитесь с него, выберите «Дополнительные параметры» и «Автоматическое восстановление». Автоматическое восстановление сделает новый жесткий диск загрузочным.
- Загрузитесь с нового жесткого диска с клонированной Windows 8.1 и запустите Центр обновления Windows. Это позволит загрузить драйверы для оборудования вашего компьютера, которые не были известны при запуске Windows в VirtualBox. Вы должны будете установить отсутствующие драйверы вручную, если таковые имеются.
- Удалите 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 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