
Я клонировал виртуальную машину и теперь при ее загрузке вижу сообщение:
Trying manual resume from /dev/sda1
Invoking userspace resume from /dev/sda1
resume: libgcrypt version: 1.5.0
Trying manual resume from /dev/sda1
invoking in-kernel resume from /dev/sda1
Waiting for device /dev/disk/by-id/ata-VBOX_HARDDISK_.....-part2 to appear: ...
Could not find /dev/disk/...-part2
Want me to fall back to /dev/disk/...-part2 (Y/n)
Если я нажимаю 'Y', он пытается загрузиться снова с ошибкой, затем выходит в /bin/sh. Если я нажимаю 'n', он выходит в /bin/sh немедленно.
Я прочитал решение здесь:http://diggerpage.blogspot.com/2011/11/cannot-boot-opensuse-12-after-cloning.htmlно я не понимаю, как получить доступ к файлам на диске для редактирования /etc/fstab
и /boot/grub/menu.lst
т. д.
решение1
Мне удалось загрузить систему, выполнив следующие действия:
1) Обратите внимание на устройства, которые система не может найти.
2) Ответьте "n" на этот вопрос. Это должно перенаправить вас в командную строку.
3) Выполните эту команду:cd /dev/disk/by-id
4) Выполните эту команду:ls
5) Переименуйте все файлы в этой папке, заменив их текущее имя на имя устройства, которое вы записали на шаге 1. Пример.mv ata-VBOX_OLDNAME....-part2 ata-VBOX_HARDDISK....-part2
6) После завершения введите следующую команду:exit
7) Система должна загрузиться нормально.
Я все еще работаю над тем, как это происходит в OpenSUSE 11.4.
решение2
Эта проблема вызвана тем, что SUSE по умолчанию настраивает Grub на поиск дисков по имени, а не по метке или пути. При создании виртуальной машины из устройства VirtualBox создает новый диск с новым именем, а затем Grub не может найти загрузочный диск. Мне удалось это исправитьпостояннок:
Добавьте диск как вторичный диск к другой машине, которая может монтировать файловую систему. Я смонтировал свой в /media/hd2.
Отредактируйте /media/hd2/boot/grub/device.map и замените путь к жесткому диску по имени
/dev/disk/by-name/ata-VBOX....
на путь по пути/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0
.Отредактируйте /media/hd2/boot/grub/menu.lst и замените пути by-name на пути by-path. Для себя я заменил все пути part-1 на ,
/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part1
а пути part-2 на/dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part2
.
Пути, которые я использовал, указывают на первый жесткий диск. Если вы хотите загрузиться с другого жесткого диска (или другого типа диска), вам нужно будет выяснить, как SUSE сопоставляет путь. Я обнаружил, что SUSE монтирует второй жесткий диск как pci-0000:00:0d.0-scsi-1:0:0:0
.
Указание пути к жесткому диску может быть не идеальным решением в некоторых случаях, но для быстрого решения проблемы, которое мне было нужно, это сработало идеально.
решение3
Я получил эту ошибку и решил ее, заменив старый идентификатор диска на новый в etc/fstab и в boot/grub/menu.lst.
- Нажимаем «и» отвечаем на запасной вопрос.
- Получите новый идентификатор, запустив
hdparm -i /dev/sda
- Переименуйте все диски, как указано в принятом решении, и загрузите гостевую систему.
- Откройте терминал как root
vi etc/fstab
и замените старый ID на новый везде, где он отображается. Сохраните и закройте. vi boot/grub/menu.lst
и замените старый идентификатор на новый везде, где он отображается. Сохраните и закройте.- Перезагрузить.
Принятое решение работает только один раз, пока этопостоянное исправление. Надеюсь, поможет!
решение4
Я решил эту проблему, смешав другие решения.
Только для загрузкисистема, которую я сделал так:
- когда вы получите сообщение об ошибке загрузки, запишите идентификатор раздела, запрошенный процедурой загрузки (например, ID1), и введите
n
cd /dev/disks
ls -l
чтобы увидеть, какие текущие идентификаторы указаны в именах ссылок на диски и разделы (например, ID2)создайте копию каждой ссылки, переименовав копию с указанным выше идентификатором:
mv ID2 ID1 mv ID2-part1 ID1-part1 ...
например
mv scsi-12345676890abcdefgh0987654321 scsi-0987654321hgfedcba1234567890 mv scsi-12345676890abcdefgh0987654321-part1 scsi-0987654321hgfedcba1234567890-part1 ...
exit
Система загрузится.
Теперь вы можете изменить настройкичтобы быть уверенным, что больше не столкнетесь с этой проблемой:
- откройте терминал и войдите в сеанс root с помощью
sudo su
vi /etc/fstab
- замените все ссылки на диски и разделы по идентификатору (
/dev/disks/by-id/...
) ссылкой на/dev/...
(например/dev/sda
,/dev/sda1
...) vi /boot/grub/menu.lst
- сделайте то же самое в этом файле