MyTetra Share
Делитесь знаниями!
Прописывание UUID в VirtualBox: что делать при ошибке "VM config which has the same UUID as an existing virtual machine"
Время создания: 27.11.2019 10:55
Автор: xintrea
Текстовые метки: linux, UUID, прописывание, vbox, virtualbox, ошибка, клонирование, копирование, скопировать, виртуальная машина
Раздел: Компьютер - Linux - Виртуализация и эмуляция - VirtualBox
Запись: xintrea/mytetra_syncro/master/base/1574841328k09j726agq/text.html на raw.github.com

Иногда стоит задача: нужно на основе образа одной виртуальной машины сделать несколько дополнительных образов виртуальных машин. Проблема в том, что если просто скопировать файлы одной виртуальной машины в другую директорию, и попробовать добавить виртуалку из этой новой директории:





... то получится следующая ошибка:



Trying to open a VM config ... which has the same UUID as an existing virtual machine.



Как ее обойти? Есть один неоднозначный, но работающий метод. Для его использования потребуется консоль и консольная программа VBoxManage, которая устанавливается вместе с VirtualBox.


Идея в том, чтобы заменить UUID виртуальной машины и UUID образа диска виртуальной машины на новые уникальные UUID.


Вначале надо дважды дать команду:



VBoxManage internalcommands sethduuid файл.vdi



Эта команда при каждом запуске прописывает новый UUID в файл формата *.vdi. Первый запуск делается для того, чтобы просто получить в консоль новый случайный UUID. Да, он пропишет в *.vdi-файл новый UUID, но этот UUID будет заменен при втором запуске команды. Таким образом в консоли будет видно два UUID. Первый - это просто уникальный UUID, второй - это новый UUID, прописанный в *.vdi-файле.



Примечание: в операционной системе Linux вместо двух запусков VBoxManage можно обойтись одним. Вместо первого запуска VBoxManage, чтобы получить в консоли первый уникальный UUID, можно воспользоваться следующей командой (в новых ядрах Linux механизм генерации UUID через спецфайл присутствует по-умолчанию):


cat /proc/sys/kernel/random/uuid



Таким образом будут получены два UUID:



  • Первый - это новый UUID машины, который необходимо будет прописать в *.vbox-файле
  • Второй - это новый UUID диска, который уже прописан в *.vdi-файле, и который надо прописать в *.vbox-файле



Далее нужно открыть файл *.vbox, найти там строку с идентификатором машины:



<Machine uuid="{84786b5b-1abd-48e1-be7d-9ff50195dfca}" ...



И заменить UUID на новый UUID машины.


Затем надо найти следующие строки:



<HardDisk uuid="{5915f240-a13a-4f7d-a05f-bc3239eb140b}" ...

...

<Image uuid="{5915f240-a13a-4f7d-a05f-bc3239eb140b}"/>



И заменить в них UUID на новый UUID диска. Тег Image может встречаться несколько раз в *.vbox-файле. Заменять нужно только для Image, относящегося к жесткому диску. Если встечаются Image, относящиеся к CD-ROM, их заменять не нужно.


UUID жесткого диска может встретиться в *.vbox-файле дважды: один раз в разделе HardDisks, второй раз как AttachedDevice. Естественно, в обеих этих местах надо заменить идентификатор на UUID жесткого диска.



Что еще можно поменять?


В элементе Machine рекомендуется поменять атрибут name, чтобы добавляемый образ имел уникальное имя в списке виртуальных машин.


И кроме того, сами файлы *.vbox и *.vdi можно переименовать, чтобы не путать их с другими машинами. При этом надо не забыть поменять в *.vbox файле свойство localian для HardDisk, в котором записано имя *.vdi-файла диска.



Итого, после всех вышеуказанных действий можно будет добавлять образ виртуальной машины в GUI VirtualBox, ошибка больше не будет появляться.


Так же в этом разделе:
 
MyTetra Share v.0.59
Яндекс индекс цитирования