После обновления получите «ошибка: файл не найден», а затем «grub rescue> _»

23

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

8128
источник
Поскольку мне пока не разрешено добавлять комментарии, поскольку моя низкая репутация, я добавил комментарий таким образом ... Я использовал 8128s Ответ с Boot-repair, но мне пришлось добавить эту строку перед обновлением apt-get sudo sed 's / trusty / saucy / g '-i /etc/apt/sources.list.d/yannubuntu-boot-repair-trusty.list, как вы видите по ссылке, которую он добавил к ответу
Доминик

Ответы:

28

Используйте Boot Repair, чтобы исправить ваш загрузчик.

  1. Загрузите Ubuntu с LiveCD или Live USB
  2. Подключиться к Интернету
  3. Откройте терминал и добавьте Boa Repair PPA

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update

  4. Установить Boot Repair

    sudo apt-get install -y boot-repair && boot-repair

  5. Запустите и используйте, см. Https://help.ubuntu.com/community/Boot-Repair#Using_Boot-Repair для получения более подробной информации.

8128
источник
Я должен был запустить 3. как root (sudo su) вместо просто sudoing
Дэвид Броссар
1
СПАСИБО!! Спас мой сервер после отключения питания. Время покупать ИБП!
Доменик Д.
использовал с Kubuntu 13.10 и работал. Спасибо.
Дэвид
9
  1. Введите, lsчтобы получить список разделов
  2. Введите set prefix=(hd0,msdos6)/boot/grub[вы почти наверняка должны будете ввести другой диск / раздел в скобках, вам, возможно, придется просто попробовать все перечисленные, lsпока вы не найдете тот, который работает.
  3. Тип insmod normal
  4. Введите normalи вы получите приглашение к загрузке!

Смотрите также: Полезное место, где я нашел это. Я сомневаюсь, что это будет работать для всех, кто сталкивается с этой ошибкой, но я поместил это здесь в надежде, что это кому-то поможет.

После загрузки Ubuntu, запустите sudo grub-install /dev/sdaи sudo update-grubкак можно скорее. Это означает, что вам не придется выполнять этот утомительный процесс выше при каждой загрузке компьютера.

8128
источник
9
когда я запускаю insmod normal, он снова говорит, что файл не найден
tovmeod
1
Вы также можете использовать команду ls (hd0,msdos1)/для проверки содержимого раздела, что будет быстрее, если у вас много разделов.
Джонатан
Это сработало для меня, за исключением того, что у меня есть отдельный загрузочный раздел, поэтому формат был set prefix=(hd0)/grub, так как вам нужно ссылаться на grubкаталог относительно раздела на диске, а не относительно его точки монтирования во время нормальной работы.
Ник Кунс
4

У меня был точно такой же вопрос - normal.mod not found, lsзагрузочный раздел будет производить пустую строку. После недели устранения неполадок для правильной загрузки системы, вот шаги, которые я прошел.

  1. Получил копию SuperGrub и создал загрузочный компакт-диск. Теперь я могу снова войти в систему. Получил копию BootRepair, и ему не повезло заставить систему загружаться прямо с жесткого диска, и он вынужден был продолжать использовать компакт-диск. BootRepair действовал немного странно, так как местоположение Grub и параметры Grub были недоступны. Он сообщил об успешной установке.

  2. Жесткий диск был изначально настроен:
    sda1 ext4 root with boot
    sda2 linux swap
    sda3 ext4 used as a spare drive(содержит виртуальные машины для виртуальной коробки).

  3. Использовал копию Ubuntu 10.10 live cd. Ран gpartedУстановить gparted сжал sda1раздел и создал sda4загрузочный раздел ext4 в передней части диска и установил точку монтирования /bootпосле удаления загрузочного каталога из /. У BootRepair теперь есть доступные варианты. Установлен на загрузочном разделе и теперь может загружаться с жесткого диска.

  4. Будучи любопытным, я решил продолжить расследование. В журнале восстановления загрузки содержалась особая запись для моего sda1раздела ext4, о ней сообщалось как DOSо коротком 8-символьном UUID вместо UUID, сообщаемом blkid. grub-probeсообщил о файловой системе как vfat.

  5. После многих других испытаний я очистил первые 440 байтов sda1записи раздела. Grub-probeтеперь сообщает о файловой системе как ext2. Побежал, update-grubи правильный UUID для sda1раздела появляется.

Кажется, что проблема двоякая:
1. Похоже, что это влияет на установки, где запись раздела имеет ссылки на msdos.
2. grub-probeне пытается решить проблемы несоответствия между типом fs и содержимым в записи раздела.

Марк Милакович
источник
1

Еще одна вещь, чтобы проверить это порядок загрузки в вашем BIOS. Я, очевидно, установил grub на все мои диски (возможно, после ответа 8128), но это не помогло при обновлении моего дистрибутива Linux (Debian). Изменение первого загрузочного диска, так как моя ОС Linux исправила это.

Джонатан
источник
0

Я столкнулся с этой ошибкой при обновлении до Kubuntu 13.10. Я имел карту памяти подключен к порту USB во время Dist-Upgrade. После перезагрузки я пошел прямо в Grub Rescue. Отключение USB-накопителя и перезагрузка устранили проблему.

Дэвид Уокер
источник
-1

В моем случае я опустился до GRUBv1 и после обновления до 12.10 grub2 не смог найти его файлы (* .mod и т. Д.), Хотя там был grub.cfg.

Я нашел более полное руководство по grub rescue: https://help.ubuntu.com/community/Grub2/Troubility#grub_rescue.3E-1

Смотрите также список команд в начале страницы. Thx флейта флейта.

iceburn_pt
источник