
Я почти ничего не знаю о кодировании в 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 была перечислена.