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