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

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

Я знаю два способа клонировать машину 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 на исходном хосте по какой-то причине не может быть запущен.

Связанный контент