Перемещение и клонирование машин VirtualBox с помощью команд файловой системы

Мне известны 2 способа клонирования машины 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)


Изменить: кажется, что это не работает для файлов 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')


Я должен был бы создать новую виртуальную машину впоследствии и использовать клонированные контейнеры виртуального диска.

Можно ли клонировать виртуальную машину, скопировав файлы contianer виртуального диска и файлы конфигурации с помощью команд файловой системы, а все остальное сделайте вручную?

Мне нужно вручную отредактировать ~/VirtualBox/VirtualBox.xml и вставить новый диск и новый компьютер:

Могу ли я просто создать UUID или как это будет работать?

Я бы очень предпочел этот хардкорный метод ведения дел, поскольку он позволяет мне свободно и быстро создавать резервные копии, восстанавливать, перемещать или клонировать машины. Или есть лучший способ сделать это?

2 ответа

Решение

Вы можете изменить UUID vdi с помощью команды

VBoxManage internalcommands setvdiuuid disk.vdi

или если вы используете VBox V4.x по крайней мере до 4.0.10

 VBoxManage internalcommands sethduuid disk.vdi

затем с помощью графического интерфейса импортируйте новый "уникальный" диск.

Если вы хотите клонировать конкретную машину VirtualBox, то вам, вероятно, лучше сделать из нее устройство, а затем использовать его. Чтобы сделать устройство, используйте функцию GUI Export Appliance или vboxmanage export команда. Полученное устройство затем можно импортировать с помощью функции "Импорт устройства с графическим интерфейсом" или vboxmanage import команда.

Или вы можете отредактировать установочный файл "Virtualbox.xml", указав правильные uuids для machineid. Отлично сработало для меня перемещение виртуальной машины с одного хоста на другой (оба хоста были 64-битными linux, не знаю, работал ли он, например, на windows или mac), см. http://sickel.net/blogg/?p=1581 для деталей.

Это работает, даже если vboxmanager на исходном хосте по какой-то причине не может быть запущен.

Другие вопросы по тегам