Я знаю два способа клонировать машину VirtualBox на хост Linux: один из них — использовать графический интерфейс VirtualBox, а также экспортировать и повторно импортировать как устройство (в меню «Файл» VirtualBox).
Другой способ — клонировать только файлы контейнера виртуального диска:
VBoxManage clonevdi /mnt/md1/original/root-fs.vdi /mnt/md1/cloned/root-fs.vdi
(Взято изhttp://forums.virtualbox.org/viewtopic.php?p=853#p858)
Редактировать: похоже, это не работает для файлов VDI, которые уже являются частью ~/VirtualBox/VirtualBox.xml, я получаю сообщение об ошибке:
ОШИБКА: Невозможно зарегистрировать жесткий диск '/mnt/md1/original/root-fs.vdi' с UUID {96a1462b-c30a-4911-a954-d9093122f083}, поскольку жесткий диск '/mnt/md1/original/root-fs.vdi' с UUID {96a1462b-c30a-4911-a954-d9093122f083} уже существует в реестре носителей ('/home/mit/.VirtualBox/VirtualBox.xml')
После этого мне пришлось бы создать новую виртуальную машину и использовать клонированные контейнеры виртуальных дисков.
Можно ли также клонировать виртуальную машину, скопировав файлы содержимого виртуального диска и файлы конфигурации с помощью команд файловой системы, а остальное сделать вручную?
Мне пришлось бы вручную редактировать ~/VirtualBox/VirtualBox.xml и вставить новый диск и новую машину:
Могу ли я просто придумать UUID или как это будет работать?
Я бы очень предпочел этот хардкорный метод ведения дел, поскольку он позволяет мне свободно и быстро делать резервные копии, восстанавливать, перемещать или клонировать машины. Или есть лучший способ сделать это?
решение1
Вы можете изменить UUID vdi с помощью команды
VBoxManage internalcommands setvdiuuid disk.vdi
или если вы используете VBox V4.x по крайней мере до 4.0.10
VBoxManage internalcommands sethduuid disk.vdi
затем с помощью графического интерфейса импортируйте новый «уникальный» диск.
Если вы хотите клонировать определенную машину VirtualBox, то вам, вероятно, лучше сделать из нее устройство и затем использовать его. Чтобы сделать устройство, используйте функцию GUI Export Appliance или команду vboxmanage export
. Полученное устройство затем можно импортировать с помощью функции GUI Import Appliance или команды vboxmanage import
.
решение2
Или вы можете отредактировать файл настройки "Virtualbox.xml" с правильными uuid для machineid. У меня отлично получилось переместить виртуальную машину с одного хоста на другой (оба хоста были 64-битными Linux, не знаю, сработало ли бы это при перемещении, например, на Windows или Mac) см.http://sickel.net/blogg/?p=1581для получения подробной информации.
Это работает, даже если vboxmanager на исходном хосте по какой-то причине не может быть запущен.