GRUB Rescue - настройка загрузки и префикса снова и снова

GRUB Rescue - настройка загрузки и префикса снова и снова

Я почти ничего не знаю о кодировании в Ubuntu. В настоящее время я использую двойную загрузку Ubuntu 16.04 LTS и Windows 10. Все было хорошо. Но сегодня возникла ошибка с надписью

"не могу найти файловую систему"

и тогда grubначинается спасение. После некоторого времени поиска я нашел решение, которое говорит сделать это:

ls
set prefix=(hd0,msdos5)/boot/grub
insmod normal
normal

Я знаю, что lsэто список разделов жесткого диска (дайте мне знать, если я ошибаюсь). Затем (в set prefix) мне нужно выбрать раздел. Возникла ошибка, когда я выбрал msdos5. После некоторых попыток я выбрал msdos6. Затем он запустился. Но проблема в том, что из другого решения этой проблемы я написал этот код:

set boot=(hd0,msdos6)

Думаю, я накосячил. Вероятно, это связано с тем, какой раздел жесткого диска будет загружаться. Теперь мой ноутбук работает после написания этого кода, и каждый раз, когда я включаю ноутбук, загрузка останавливается в начале, показывая одну и ту же ошибку, и мне нужно писать код каждый раз, когда мне нужно запустить ноутбук. Как мне решить эту проблему? Вероятно, мне также нужно знать раздел, который загружается (msdos*), и я не знаю, как его найти.

решение1

У меня есть решение для такого типа проблем, если grub rescue>приглашение появляется во время загрузки и вам нужно написать такой код:

grub rescue> ls
grub rescue> set boot=(hd0,msdos*)
grub rescue> set prefix=(hd0,msdos*)/boot/grub
grub rescue> insmod normal
grub rescue> normal

После загрузки загрузится ОС на базе Linux/Ubuntu, затем откройте терминал и введите команду:

useranf@ ~ $ sudo update-grub

затем введите эту команду:

useranf@ ~ $ sudo grub-install /dev/sda

после этих операций наконец перезагрузите вашу систему.

решение2

В приведенном выше ответе Дипака Бунделы, я думаю, необходимо исправить следующую строку:

grub rescue> set boot=(hd0,msdos*)

к:

grub rescue> set root=(hd0,msdos*)

(повторяю *, как выразился Бундела, чтобы не отвлекать от реальной проблемы)

Я не смог найти переменную окружения grub, которая называется boot, и насколько я помню, она всегда былаset root=()

Я несколько сбит с толку всеми комментаторами, которые говорят, что это работает на их дистрибутивах. Они сделали set bootили нет set root?

Если в grub rescue>командной строке просто ввести , setто будут выведены все заданные переменные env. За все время моих приключений по спасению grub я ни разу не видел, чтобы bootпеременная env была перечислена.

Связанный контент