2

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

Я решил установить Linux Mint 11, где у меня ранее была Ubuntu 10.10. Перед этой установкой у меня был раздел с Windows XP, который - в далеком прошлом - я использовал для двойной загрузки. Я удалил раздел в этой установке.

После установки система не загружается. После проверки CD/DVD он печатает:

error: no such device: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
GRUB rescue>

Не было проблем с загрузкой Ubuntu. Кажется, я вспомнил похожую проблему в прошлый раз, когда я установил (вместо обновления) Ubuntu. Это было какое-то время, но я решил исправить это с помощью FIXMBR и / или FIXBOOT с компакт-диска XP. Те не работали на этот раз.

Похоже, что запрос GRUB rescue> не работает. Даже help не работает. Я могу ls , что дает:

GRUB rescue> ls
(hd0) (hd0,msdos1) (hd1) (hd1,msdos1) (hd2) (hd2,msdos5) (hd2,msdos3) (hd2,msdos2) (hd2,msdos1)

Кроме того, я не знаю, что это за устройство. Я не могу найти соответствующий UUID в /dev/disk/by-uuid . В связи с этим для моего загрузочного жесткого диска нет идентификаторов UUID (см. Ниже). Моя установка - Frankenbox. Я знаю, что нельзя полагаться на перечисление устройств в таком миксе, но они приведены ниже для удобства обсуждения.

  • Ch 0 Master: 250 ГБ PATA (SDA)
    • sda1
  • Ch 0 Раб: нет
  • Ч. 1 Мастер: 80 ГБ SATA (SDB)
    • SDB1: /
    • sdb2: /home
    • sdb3: swap
  • Ч. 1 Раб: DVD SATA
  • Карта расширения SATA: 250 ГБ SATA (SDC)
    • sdc1

Я подумал, что ударил в золото, когда обнаружил какие-то затяжные (и вызывающие недоумение) метаданные RAID на sda. Диск ранее не обнаруживался в установке Linux, но появился после использования dmraid -r -E /dev/sda . Однако ошибка загрузки сохраняется.

До сих пор я мог использовать установочный компакт-диск Mint для загрузки с локального диска, что действительно привело бы меня к установке на sdb1. После использования компакт-диска для загрузки с накопителя и запуска приведенного ниже, я усугубил проблему, предоставив приглашение GRUB> вместо загрузки с накопителя.

# GRUB-install --no-floppy /dev/sdb1
# update-GRUB
GRUB> find /boot/GRUB/stage1
GRUB> root (hd1,0) # result of above
GRUB> setup (hd0)

Несомненно, есть несоответствие, потому что sdb, который имеет 3 раздела, кажется (hd2) в приглашении GRUB rescue> , но (hd1) при фактической загрузке. Однако, если я использовал UUID (и я думаю, что использовал), это не должно быть проблемой. Используя live CD, я вижу, что sdb1:/boot/GRUB/menu.list содержит

# kopt=root=UUID=[UUID of sdb1]
...
# groot=[UUID of sdb1]

Основная проблема, насколько я понимаю, заключается в том, что GRUB по какой-то причине, которую я не понимаю, пытается загрузить устройство, которое не существует. Я не знаю, как определить, что он ищет по указанному UUID. Я не вижу UUID для чего-либо на SDA.

И теперь я даже не могу загрузиться с диска, используя CD.

Обновить:

Я подумал, что размещение раздела /boot на том же диске, что и MBR, может помочь, поэтому я добавил sda2, установил флаг boot и переустановил (что, вероятно, излишне).

Я снова получаю приглашение grub rescue> , но теперь, когда я получаю ls , я получаю

grub rescue> ls
(hd0) (hd0,msdos1) (hd1) (hd1,msdos2) (hd1,msdos1) (hd2) (hd2,msdos3) (hd2,msdos2) (hd2,msdos1)

Таким образом, sda не больше (hd0) в этом приглашении, чем sdb (hd1). Я не знаю, почему это так смещено, и почему это важно. Я могу попробовать еще раз, поставив /boot на sdc/(hd0).

3 ответа3

4

Я получил ту же ошибку из-за плохо обозначенного UUID в загрузчике, и у этого парня был ответ для меня наряду с этими доступными командами в режиме восстановления grub.

Прежде всего, вам нужно определить диск и раздел с файлами меню grub, которые обычно находятся в /boot /grub.

ls [to identify your drive and partition options]
ls (hdx,p)/ [to identify which partition has the /boot folder]

Затем вы можете загрузить загрузочное меню вручную с диска и раздела, которые вы нашли выше.

set prefix="(hdx,p)/boot/grub"
set root="(hdx,p)"
insmod normal
normal

В моем случае я вручную и целенаправленно изменил UUID нашего загрузочного диска, обновил меню grub и fstab, но забыл загрузить новый загрузчик для обновления UUID и / или диска в загрузчике. Тогда приводы были не в том порядке, как ожидалось в grub, и вышесказанное позаботилось обо всем этом; оно вернуло меню, чтобы я мог вернуться и обновить загрузчик новой информацией UUID

2

Решение было просто поставить загрузчик GRUB (MBR?) на правильном диске. В этом случае то, что загружено в Linux как /dev /sdc и (hd2) загружено в GRUB как (hd0).

-2

Просто используйте утилиту Boot-Repair-Disk . Это отлично сработало для меня.

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