Как скопировать/переместить виртуальную машину VirtualBox на другой компьютер?

Как скопировать/переместить виртуальную машину VirtualBox на другой компьютер?

Я обновился до Windows 10 с помощью резервной копиивсеиз старой старой Windows, а затем установил с чистым форматированием; все новое.

У меня есть Debian 8.1 в Virtual Box, который также был сохранен полностью, а не только образ диска.

Я устанавливаю VirtualBox, снова запускаю эту машину и, к моему удивлению, Debian жалуется, что не может найти корневой раздел (раздела с таким UUID не существует), переходит в небольшую оболочку и отказывается загружаться.

Я подозревал, что записи в fstabбольше не верны, поэтому я загрузил живой дистрибутив и проверил его ... blkidсообщаю те же UUID, что и вfstab

Так,в чем подвох?!?

В VMware я делаюнетсталкиваюсь с этой проблемой, если копирую/перемещаю машины, переустанавливаю VMware и т. д., то появляется вопрос, скопировано или перемещено, и никогда не было подобных проблем.

P.S. Пожалуйста, не отмечайте этот вопрос как тупой, я читал«Какой рекомендуемый способ переноса виртуальной машины VirtualBox на другой компьютер?»и попробовалвариант 2 в этом вопросеЯ скопировал все файлы и поместил их в нужное место. Опять же, загружая живой Linux в этой виртуальной машине, я вижу жесткий диск с правильным UUID.

решение1

Ну, я бы сказал, что вам лучше экспортировать свою виртуальную машину (в .ovaконтейнер) перед тем, как стереть данные с хост-системы, а затем импортировать ее позже — VirtualBox может сделать это из своего графического интерфейса.

Но ладно, вернемся к вашему вопросу... Я припоминаю, что у VirtualBox есть отдельный «реестр» для всех носителей, которые используют ваши виртуальные машины. Если я правильно помню, он хранится в XML-файле где-то в профиле текущего пользователя.

Итак, я бы начал с открытия окна управления носителями из графического интерфейса VBox и убедился, что диск Debian действительно существует и известен менеджеру носителей VBox.

Следующее, что следует проверить, — это перейти к свойствам виртуальной машины и убедиться, что носитель, представляющий жесткий диск виртуальной машины, доступен и имеет статус «OK».

Если загрузка виртуальной машины после этого не удалась, сделайте следующее: когда во время ранней загрузки (после BIOS) появится окно GRUB (загрузчик Debian), нажмите e(или что там подскажет — я так и не запомнил), чтобы отредактировать загрузочную запись для вашей системы — вам будет представлена ​​командная строка, переданная загрузчиком ядру, и она содержит параметр с именем «root» (имеется в виду корневая файловая система). В наши дни аргумент root содержит некоторое закодированное в UUID имя устройства, и поэтому все это выглядит примерно так:

/boot/vmlinuz-3.2.0-4-amd64 root=UUID=2cb5a97c-75ab-4c8b-afd9-19297e3553bd ro single

Вам следует заменить эту UUID=blah...часть на /dev/sda1что-то вроде

/boot/vmlinuz-3.2.0-4-amd64 root=/dev/sda1 ro single

и, скорее всего, он загрузится нормально.

(Обратите внимание, что путь к файлу ядра /boot/vmlinuz-3.2.0-4-amd64указан из моей системы; на вашей он может быть другим — не лезьте в него, вам следует изменить только параметр root=).

Обратите внимание, что это /dev/sda1означает первый первичный раздел на первом жестком диске (SATA/SCSI). Если ваш корневой раздел находится где-то в другом месте, вам придется это выяснить. Если вы понятия не имеете, что это такое, попробуйте и т. д. 2, 3пока не получится.

После загрузки системы запустите

# dpkg-reconfigure grub-pc

перенастроить GRUB так, чтобы он использовал правильное имя устройства для корневой файловой системы.

Вам также может потребоваться исправить /etc/fstabфайл, если UUID устройства действительно изменился. Для этого запустите

# blkid /dev/sda1

и замените значение UUID в соответствующей записи fstab на то, которое указано blkidв UUIDзначении.

Число в нем, /dev/sdNочевидно, должно совпадать с тем, что у вас работает в качестве root=параметра ядра.

решение2

Если после перемещения виртуальной машины и попытки ее запуска вы получаете примерно такое сообщение:

Не удалось открыть жесткий диск.

Невозможно зарегистрировать жесткий диск, так как жесткий диск с UUID уже существует.

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

cd /full/path/to/virtualbox/virtualmachine/Sandbox

И выполните эту команду, чтобы назначить диску новый UUID:

VBoxManage internalcommands sethduuid Sandbox.vdi

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