Я обновил до Windows 10, сделав резервную копию всего старого старого Windows, а затем установил в чистом формате; все свежее

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

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

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

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

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

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

2 ответа2

1

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

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

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

Следующее, что нужно проверить после этого, это перейти к свойствам виртуальной машины и убедиться, что носитель, представляющий жесткий диск виртуальной машины, доступен и имеет статус "ОК".

Если загрузка виртуальной машины после этого не удалась, сделайте это: когда вы видите окно GRUB (начальный загрузчик Debian) во время ранней загрузки (после BIOS), нажмите 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= ядра.

0

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

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

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

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

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

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

VBoxManage internalcommands sethduuid Sandbox.vdi

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .