2010-02-28 04:26:57 +0000 2010-02-28 04:26:57 +0000
79
79

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

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

Ответы (6)

64
64
64
2010-02-28 05:50:22 +0000

Да, и нет.

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

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

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

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


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

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

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


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

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

См. также “All about VDIs” tutorial на форумах VirtualBox.

21
21
21
2012-09-26 19:57:00 +0000

Если ваш файл 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
13
13
13
2010-02-28 09:20:53 +0000

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

Читайте подробнее:

5
5
5
2015-09-07 08:44:17 +0000

Я попробовал 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. Подключите VHD на главной машине Windows в качестве диска (вы можете подключить VHD в менеджере дисков в Computer Management (Управление компьютером).
  4. Клонирование VHD (смонтированного как диск) на другой новый жесткий диск (в моем случае - HD ноутбука с USB-подключением) DriveImage XML или аналогичное средство клонирования дисков. Теперь вы в основном клонировали виртуальный жесткий диск .vdi на голый металл.
  5. Установите новый жесткий диск на машину. (в моем случае поменяйте жесткий диск ноутбука)
  6. Вставьте Windows 8.1, установите USB/CD, загрузитесь с него, выберите Дополнительные опции и Автоматическое восстановление. Автоматическое восстановление сделает новый жесткий диск загрузочным.
  7. Загрузитесь с нового жесткого диска с клонированной Windows 8.1 и запустите Windows Update. Это загрузит драйверы для аппаратного обеспечения вашего компьютера, которые не были известны при запуске Windows в VirtualBox. Вам придется установить недостающие драйверы вручную, если таковые имеются.
  8. Удаление гостевых добавок VirtualBox. Опционально установите VirtualBox, чтобы ваша пустая Windows 8.1 могла стать хостом VirtualBox.
3
3
3
2012-08-17 14:17:56 +0000

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

#VBoxManage internalcomcommands converttoraw your_disk_virtual.vmdk your_disk_virtual. img

ИЛИ

#VBoxManage internalcommands 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
0
0
2016-10-18 09:31:03 +0000

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

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