6

Я клонировал виртуальную машину и теперь при загрузке вижу сообщение:

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?

5 ответов5

8

Я смог загрузить систему, выполнив следующие действия:

1) Запишите устройства, которые система не может найти.

2) Ответьте "n" на этот вопрос. Это должно привести вас к командной строке.

3) Запустите эту команду: cd /dev/disk/by-id

4) Запустите эту команду: ls

5) Переименуйте все файлы в этой папке, заменив там текущее имя на имя устройства, которое вы отметили на шаге 1. Ex. mv ata-VBOX_OLDNAME....-part2 ata-VBOX_HARDDISK....-part2

6) После того, как вы завершили этот тип этой команды: exit

7) Система должна загрузиться нормально.

Я все еще работаю над тем, как это происходит с OpenSUSE 11.4.

3

Эта проблема вызвана тем, что SUSE по умолчанию настраивает Grub для поиска дисков по имени, а не по метке или пути. При создании виртуальной машины из устройства VirtualBox создает новый диск с новым именем, и тогда Grub не может найти загрузочный диск. Я смог исправить это навсегда :

  1. Добавьте диск в качестве дополнительного диска на другой компьютер, который может монтировать файловую систему. Я подключил мой к /media /hd2.

  2. Отредактируйте /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 .

  3. Отредактируйте /media/hd2/boot/grub/menu.lst и замените пути по имени на пути по пути. В итоге я заменил все пути части 1 на /dev/disk/by-path/pci-0000:00:0d.0-scsi-0:0:0:0-part1 и часть 2 пути с /dev/disk/by- path//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 .

В некоторых случаях указание пути к жесткому диску может быть не идеальным, но оно отлично сработало для быстрого исправления, к которому я стремился.

1

Я получил эту ошибку и решил, заменив старый идентификатор диска на новый в etc/fstab и в boot/grub/menu.lst

  1. Hit 'n' при падении вопроса.
  2. Получить новый идентификатор, запустив hdparm -i /dev/sda
  3. Переименуйте все диски в соответствии с принятым решением и загрузите гостя.
  4. Откройте терминал как root и vi etc/fstab и замените старый идентификатор новым, где бы он ни отображался. Сохрани и закрой.
  5. vi boot/grub/menu.lst и замените старый идентификатор новым, где бы он ни отображался. Сохрани и закрой.
  6. Перезагружать.

Принятое решение работает только один раз, в то время как это постоянное исправление. Надеюсь, поможет!

0

Я решил эту проблему со смесью других решений.

Просто для загрузки системы я сделал это:

  • когда вы получите сообщение об ошибке загрузки, запишите идентификатор раздела, запрошенный процедурой загрузки (скажем, 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

Система загрузится.

Теперь вы можете изменить настройку, чтобы быть уверенным, что эта проблема больше не возникнет:

  • откройте терминал и войдите в корневой сеанс с помощью sudo su
  • vi /etc/fstab
  • заменить каждую ссылку на диски и разделы на id (/dev/disks/by-id/...) ссылкой на /dev/... (например, /dev/sda , /dev/sda1 ...)
  • vi /boot/grub/menu.lst
  • сделать то же самое в этом файле
0

Была такая же проблема при переходе с vshpere 5.1 на ssd.

Проблема возникает из-за того, что виртуальная машина использует драйвер Pata, а initrd не имеет драйвера для монтирования физического диска. В новом FAQ есть ответ, который вам нужен, чтобы смонтировать диск с помощью диска восстановления, смонтировать устройство в /mnt, затем смонтировать каталоги sys proc и dev.

Заходите в mnt, затем вы можете воссоздать initrd, это восстановит систему initrd и включит драйверы, необходимые для монтирования физического диска, а не виртуального диска в виртуальной установке. Смотрите ссылку ниже для деталей. В моем случае я установил образ из студии suse, а затем перенес его на реальный диск. Как только вы это заработаете, не забудьте удалить инструменты vmware, чтобы остановить ошибку времени загрузки. Яст - софт - поиск вм.

https://www.novell.com/support/kb/doc.php?id=7009643

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