Grub Rescue, ремонт Grub


30

Я недавно переделил свой жесткий диск, и я повредил GRUB в моей системе. При загрузке я получаю приглашение GRUB Rescue и мне нужно выполнить следующие шаги для нормальной загрузки:

set root=(hd0,msdos6)
set prefix=(hd0,msdos6)/boot/grub
insmod normal
normal

(Эти шаги были найдены в другом посте здесь!).

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


1
Две возможности: (1) Boot-Repair (2) Super Grub Rescue Disk См .: http://linuxnorth.wordpress.com/2012/02/07/repairing-grub/
CentaurusA

1
Шаги, перечисленные в вопросе для загрузки работали для меня. Надо помнить раздел Linux правильно, хотя.
TheCrazyProgrammer

1
Как уже говорили, выполнение update-grub, а затем grub-install / dev / sda решает проблему.
TheCrazyProgrammer

См. Ответ Картика на «файл не найден»: askubuntu.com/questions/443241/…
Самис

Ответы:


12

Чтобы исправить grub rescue, выполните следующие действия:

  • Прежде всего, мы должны запустить нашу ОС только тогда, когда мы сможем исправить grub.

    #to start OS-->
    error: unknown filesystem.
    Entering rescue mode...
    grub rescue>

    Когда вы видите такую ​​ошибку, сначала мы должны проверить, что «Файловая система» - это ext2 '

    grub rescue> ls        # type 'ls' and hit enter to see drive partition.
    (hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos4) ...   # you will see such things 

это наши диски, теперь мы должны проверить, какой из них ext2.

grub rescue>ls (hd0,msdos6)
error: disk 'hd,msdos6' not found.

переходите к другим дискам, пока не получите «Файловая система ext2».

grub rescue>ls (hd0,msdos5)
error: disk 'hd,msdos5' not found.
grub rescue>ls (hd0,msdos2)
(hd0,msdos2): Filesystem is ext2        # this is what we want

Теперь установите путь

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • Теперь просто исправьте grub, выполнив команду на любом Ubuntu

    sudo grub-install /dev/sda
    sudo apt-get update
    # to update grub
    sudo apt-get upgrade

убедитесь, что вы должны обновить grub после входа в ОС


1
ОП уже знает, как загрузиться в его ОС. Этот ответ может быть более кратким.
Старейшина Компьютерщик

1
Этот ответ был полезен для меня. Моя проблема не была точно такой же, как первоначальный вопрос, поэтому дополнительная информация стала полезной.
ретрого

1
+1 Это исправлено при неудачной установке KDE Neon.
Даррен Льюис

ошибка: файл '/boot/grub/i386-pc/normal.mod' не найден Что мне делать?
BhushanDhamale

7

Я бы попытался запустить update-grub, чтобы построить grub.conf/ grub.cfgснова.

Вы также можете попробовать использовать grub-install, но я думаю, что это не поможет.

Если вы хотите узнать больше, сначала проверьте, какая у вас версия (GRUB 1 или 2), запустив:

dpkg -l | grep grub

Если у вас есть GRUB 2, вы можете использовать следующий учебник: http://www.dedoimedo.com/computers/grub-2.html

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


2
grub-install <correct-drive, i.e. /dev/sda>и, update-grub2наконец, сделал это для меня в Ubuntu 15.04
Грег Крамида

6

Мне кажется, что он update-grubсобирает grub.cfg, но вам также нужно (повторно) запустить grub-install(или grub-setup?) Обновить MBR / загрузочные секторы с базовой информацией - в каком разделе найти grub.cfgфайл и, по-видимому, эти модули.


4

Когда вы получаете приглашение восстановления GRUB, это означает, что загрузчик GRUB не может найти свои модули в разделе, в котором они находятся /boot/grub. Причина этого заключается в том, что код, который помещается в запись MBR диска, является крошечным, и поэтому его основное назначение - найти и загрузить остальную часть кода загрузчика. После загрузки своих модулей он может представить меню GRUB и выполнить остальную часть процесса загрузки. Если он не может найти модули, он выдает очень ограниченную подсказку.

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

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

sudo grub-install /dev/sda

Это предполагает загрузку с /dev/sda(в большинстве случаев, но если нет, замените его на правильный диск).

Это решение намного проще, чем использование boot-repair, но если вы не уверены, это может быть более подходящим.


1
+1 для объяснения того, что происходит в понятных терминах.
monotasker

2

Самый простой способ будет:

sudo apt-get purge grub-pc grub-pc-bin

Затем:

sudo apt-get install grub-pc grub-pc-bin

2
Это подход кувалдой, который, скорее всего, сработает, но проще просто переустановить загрузчик, чтобы обновить ссылку на раздел (который был сломан из-за повторного разбиения).
BCBC

1

Устранить окончательный случай сбоя при загрузке grub: проблемы: 1. i386-pc не найден **** нормальный режим не работает cp не работает search.file не работает . Все можно решить с помощью следующих команд, также работает с Ubuntu 18.04. Шаг 1: Найдите корневую папку, содержащую каталог.

ls

Например, если корневая папка находится в (hd0, gpt4), введите

вот так это выглядит

ls (hd0, 4)/

Вы увидите несколько файлов или папок:

мой корневой файл находится в (hd0, gpt4)

Теперь, если вам повезет, сделайте следующее:

set root=(hd0, 4)
set prefix=(hd0, 4)/boot/grub/
insmode normal
normal

Если вам повезет, то это решит вашу проблему. Иногда у людей возникают проблемы, например, не удается найти папку 1386-pc. В этом случае вы должны посмотреть, где находится ваша папка grub. Если у вас есть проблема, как:

boot / grub / i386-pc / normal.mod не найден

В этом случае вам нужно найти папку grub2. Если у вас есть grub2 и внутри этой папки вы можете иметь свою папку i386-pc. Затем вам нужно набрать

prefix=(hd0, 4)/grub2/

это сработает. Если у вас нет grub2 и вы не можете найти папку i386-pc, сделайте следующее:

grub rescue>set root=(hd0, 4)
grub rescue>set prefix=(hd0, 4)/usr/lib/grub
grub rescue>insmode normal
grub rescue>normal

после выполнения этой команды ваш режим восстановления grub перейдет в меню grub . Теперь вы можете выполнить команду linux.

Linux-команда

grub>set root =(hd0, 4)
grub>set prefix= (hd0, 4)/boot
grub>insmaod linux
grub>linux vmlinuz.....-generic
grub>intrd (hd0, 4)/boot/...-generic
grub>boot

Это приведет вас в режим восстановления. Оттуда вы можете выбрать один из нескольких доступных вариантов восстановления. Если это не поможет, вам нужно скачать Ubuntu OS, например Ubuntu 18.04. Вы можете скачать по следующей ссылке: ссылка на Ubuntu

Создайте загрузочный диск и откройте свой компьютер с этим живым диском. Это не повредит ни одному из ваших документов. Смотрите видео о том, как это сделать. Теперь вам нужно найти папку i386-pc. Будет в

rootContainingDirectory-usr-lib-grub

Теперь скопируйте i386-pc в папку boot / grub /. у вас может быть проблема с правами доступа для преодоления этого типа следующей командой:

sudo nautilus

Теперь щелкните правой кнопкой мыши на этом каталоге и измените владельца на пользователя сеанса Ubuntu Live.

следите за видео: изменение разрешения

Теперь, после того, как вы вставите его в папку boot / grub, перезагрузите и удалите usb-диск. На этот раз используйте 1-й набор команд, он будет работать. Если команда cp работает, вы также можете сделать это из меню grub.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.