В случае возникновения проблем с загрузчиком появляется надпись grub rescue. Чаще всего проблема появляется, когда на компьютере установлено сразу две операционные системы: Linux и Windows. Обычно установка производится в такой последовательности.
Сначала на жёсткий диск устанавливается Windows после чего на отдельный раздел производится установка Linux. При такой схеме в загрузочную область диска добавится загрузчик grub2 что позволяет выбирать в какую из систем производить запуск.
Но бывает так, что в таком состоянии компьютер работает длительное время. У Windows как известно разрастается реестр, и система начинает работать медленно. Тут вы приняли решение переустановить Винду, а заодно затёрли загрузчик Linux. Загрузочная область оказывается повреждена и при старте системы появляется сообщение на чёрном экране: grub rescue unknown filesystem
.
Ещё вы могли что-нибудь нахимичить с файлом конфигурации grub.cfg в директории
/boot/grub/
. Его вообще не рекомендуется править редакторами поскольку в будущем он всё равно окажется перезаписан автоматически. Вместо этого сконфигурируйте файл/etc/default/grub
и выполните команду:sudo update-grub
grub rescue – что делать?
Итак, мы находимся консоли загрузчика. Она имеет небольшой командный интерпретатор наподобие bash. Список всех доступных команд можно получить, набрав:
help
Введите команду для просмотра существующих разделов:
ls
В данном примере всего один раздел msdos1 на жёстком диске hd0.
Убедимся, что это нужный раздел. Для этого выводим список файлов загрузчика:
ls (hd0,msdos1)/boot/grub/
Находим файл grub.cfg значит всё в порядке, продолжаем. Если каталог не обнаружен, то перебираем остальные разделы дисков пока не найдём.
Следующая команда создаёт префикс для каталога загрузчика:
set prefix=(hd0, msdos1)/boot/grub
Установим раздел в качестве корневого:
set root=(hd0, msdos1)/boot/grub
Затем необходимо подключить ещё пару модулей и стартовать загрузку системы:
insmod ext2
insmod normal
normal
После успешной загрузки в Linux не забудьте переустановить загрузчик командой:
sudo grub-install /dev/sd_
(вместо «_» введите букву загрузочного жёсткого диска).
Далее выполните команду обновления конфигурации файла grub.cfg:
sudo update-grub
Обычно grub2 автоматически определяет установленные системы, в том числе Windows, и добавляет их в список загрузки.
Восстановление ubuntu с флешки
Если все проделанные выше действия не помогли, то придётся раздобыть загрузочную флешку.
Лучше подготовить USB или CD носитель с Ubuntu той же версии и разрядности что и восстанавливаемая система. Я покажу на примере системы Ubuntu 18.04 LTS x64. Загрузитесь в Live режиме и откройте терминал комбинацией Ctrl+Alt+T.
Для удобства сразу активируйте права суперпользователя root. Знак минус в конце команды означает перемещение в домашний каталог:
sudo su -
Теперь нужно посмотреть список дисков и разделов программой fdisk:
fdisk -l
Обнаруживаем раздел с установленной системой Linux. В этом примере раздел /dev/sda1
единственный, он же корневой и загрузочный.
ВНИМАНИЕ
Выбирайте раздел аккуратно, буква диска может отличаться от моих примеров. Не потеряйте свои данные!
Смонтируем его в каталог /mnt/
:
mount /dev/sda1 /mnt
Убедитесь, что каталог /boot/ находится на этом же разделе диска выполнив команду:
ls -l /mnt/boot/
В случае отсутствия каталога, монтируйте его отдельно. Для этого нужно найти раздел в результате вывода утилиты fdisk (на скриншоте выше) и смонтировать командой:
mount /dev/sdaX /mnt/boot
X = номер вашего раздела с файлами каталога /boot/
.
Сейчас необходимо произвести логин в ту систему, которую будем чинить. Но перед этим смонтируем из Live системы несколько служебных разделов:
mount --bind /dev /mnt/dev && mount --bind /proc /mnt/proc && mount --bind /sys /mnt/sys
Двойной амперсанд
&&
между командами означает проверку выполнения предыдущей команды. Выполнение последующей команды происходит только при условии, что предыдущая завершена успешно.
Переходим в окружение chroot
, то есть заходим под пользователем root в систему, установленную на жёстком диске:
chroot /mnt
Всё, мы в системе. Можно устанавливать загрузчик и обновлять его конфигурацию. Будьте внимательны, используется именно корневой раздел диска /dev/sda
без цифры:
grub-install /dev/sda && update-grub
Посмотрите, чтобы не было ошибок в результате выполнения команд. Далее набираем один раз exit
, или комбинацию Ctrl+D и выходим в консоль Live системы.
На всякий случай размонтируем корректно разделы и перезагружаемся:
umount –R /mnt; reboot
Процедура восстановления загрузчика grub2 на этом завершена.
Применение статьи на практике: https://onstartup.ru/forum/po-motivam-grub-rescue/
Замечательно!
Из командной строки восстановление не пошло, да и я чуть запутался с разделами. У меня их получилось 7. Пробовал:
>ls (hd0,msdos5)/boot/grub/
- не пошло. И, кстати, между ")/boot" (скобкой и слешем) пробел нужен? Я писал без него.
А вот с Live CD прошло всё, как по маслу! Точь в точь, как по тексту!
И, действительно, корень XUbuntu оказался в "/dev/sda5"...
Да, и как рекомендация тому, у кого тоже много разделов. Чтобы было легче понять структуру диска, можно воспользоваться утилитой "Диски" (в терминале с Live CD запустить команду):
sudo apt install gnome-disk-utility
Там и название раздела можно скопировать.
Спасибо автору!
Рад, что всё благополучно завершилось! С множеством разделов необходимо действовать особенно внимательно. Пробел не нужен, я всегда проверяю команды перед публикацией и делюсь только практическим опытом. Благодарю за комментарий.
И admin сайта весьма дружелюбный, и отвечает быстро.
Если уж на то пошло, можно ещё вопрос?
Выше по тексту есть фраза: "Вместо этого сконфигурируйте файл /etc/default/grub и выполните команду: sudo update-grub"
Не подскажете, на Вашем сайте есть более подробное описание параметров файла "grub"? Как изменить фон и шрифт grub2 - это я нашёл:
GRUB_BACKGROUND=
GRUB_FONT=
Интересует, в частности, изменение цвета шрифта (основного и выделенного), чтобы он так же генерировался автоматически. На оф. сайте какая-то неопределённость...
Заранее спасибо!
До подробного описания пока не добрался, но по вопросу изменения цветов могу подсказать.
В файле
/etc/grub.d/05_debian_theme
потребуется отредактировать функциюset_default_theme()
, она обычно идёт в начале.Затем выполните команду
sudo update-grub
и перезагрузку.Список доступных цветов с официального сайта gnu.org:
black
blue
green
cyan
red
magenta
brown
light-gray
dark-gray
light-blue
light-green
light-cyan
light-red
light-magenta
yellow
white
Если возникнут сложности, уточните версию операционной системы, решим задачу.
Не забывайте сделать копию изменяемого файла.
Спасибо!
Совершенно верно, я тоже читал, и знал про файл "05_debian_theme", но у меня в этой папке его не было...
Только что поставил второй системой свежевышедшую XUbuntu 21.10 (а текущая 20.04), здесь этот файл присутствует. Сейчас буду экспериментировать.
Ну а цвета, конечно, стандартные, как программист я их знаю наизусть 🙂
Перевод автоматический, не мой (взят из файла "05_debian_theme"):
"Используйте цвета, указанные в базе рабочего стола. Если мы используем пользовательский фон, используйте цвета по умолчанию, так как мы понятия не имеем, как выглядит изображение"
А у меня как раз своя картинка на фон, поэтому цвета ставятся по умолчанию.
Как говорится: "У меня есть мысль, буду её думать"....
И я придумал...
Создал свою тему для загрузки Grub2. Там и фон Груб'а свой, и шрифты свои, и цвет текста произвольный.
Получилось очень хорошо! 🙂
Пере загружаюсь - не нарадуюсь...
Кому интересно - могу поделиться опытом...
Думаю, многим пригодится!
Добрый день!
Пробую восстановить систему Ubuntu без флэшки, но столкнулся с проблемой на этапе подключения модулей. Команда "insmod ext2" срабатывает, однако при вводе команды "insmod normal" установщик ищет файл "normal.mod" в несуществующей у меня папке /boot/grub/i386-pc/. В моей папке /boot/grub каталог называется не "i386-pc", а "x86_64-efi". По всей видимости, сбились настройки и установщик пытается отработать по сценарию BIOS, в то время как сам устанавливаемый дистрибутив рассчитан на UEFI. И изначально на компьютере (до возникновения проблемы) использовался не BIOS, а UEFI.
При этом сейчас у меня есть возможность использовать только самую примитивную консоль grub rescue, в которой доступно всего 4 команды. Попадаю в grub rescue сразу после включения компьютера, то есть ни в каком другом режиме использовать комп сейчас в принципе не могу.
Нет ли идей, как можно решить такую проблему? Правильно ли я подозреваю, что теперь мне может помочь только заново подготовленная загрузочная флэшка?
Абсолютно такая же проблема, один в один. В моём случае неудачная переустановка одной из двух установленных на диске ОС обернулась не проблемами с ОС, не проблемами с HD, а с матплатой. Надеялся что в худшем случае неудачная переустановка ОС повредила жёсткий диск, но что с ним что с его отключением от мат.платы не читается ни CD, ни флешка с установочными образами. Опасаюсь что последнее что поможет это обновление UEFI флешкой, но не хочу до этого доводить, тоже ведь риск. Удачи с решением, я тоже буду искать
Спасибо огромное за статью! Случайно снёс grub и не мог загрузиться. Теперь всё загружается и работает.
Щиро дякую Вам! Дуже допомогло.
Спасибо, реально помог.
Не у всех grub в rescue режиме есть help.
Двигал разделы под виндой, поскольку загрузочная флэшка была виндовая, а линукс не захотел увеличивать в начало расширенный раздел, в который входит системный раздел, винда покалечила загрузчик.
Добрый вечер, как вы отключили как граб устанавливая винду?