Thank you for reading this post, don't forget to subscribe!
Grub rescue — это режим, когда GRUB 2 не может найти папку GRUB или ее содержимое отсутствует/повреждено. Папка GRUB 2 содержит меню, модули и сохраненные данные об окружающей среде.
Это может произойти после каких-либо операций с разделами на диске или при добавлении новых устройств. Причин может быть много. Но чаще всего проблема решается всего в несколько команд, которые представлены ниже.
Посмотрим какие диски и разделы у нас есть.
grub rescue> ls
(hd0) (hd0,msdos2) (hd0,msdos1)
Видим, что есть диск (hd0) и разделы msdos2 и msdos1. Посмотрим что на разделах.
grub rescue> ls (hd0,msdos2)/
boot etc initrd.img lib32 libx32 media opt root sbin srv tmp var vmlinuz.old
bin dev home initrd.img.old lib lib64 lost+found mnt proc run snap sys usr vmlinuz
grub rescue> ls (hd0,msdos1)/
config-4.19.0-11-amd64 config-4.19.0-14-amd64 initrd.img-4.19.0-11-amd64 initrd.img-4.19.0-14-amd64 System.map-4.19.0-11-amd64 System.map-4.19.0-14-amd64 vmlinuz-4.19.0-12-amd64
config-4.19.0-12-amd64 grub initrd.img-4.19.0-12-amd64 lost+found System.map-4.19.0-12-amd64 vmlinuz-4.19.0-11-amd64 vmlinuz-4.19.0-14-amd64
Мы видим, что msdos2 — это корневой раздел / где хранятся все файлы системы, а msdos1 — это раздел boot (потому что там нужная нам директория grub и ядро) который монтируется к /boot. Возможен другой вариант, когда раздел один и директория boot не монтируется отдельным разделом,тогда ее найти можно так:
grub rescue> ls (hd0,msdos1)/boot/
config-4.19.0-11-amd64 config-4.19.0-14-amd64 initrd.img-4.19.0-11-amd64 initrd.img-4.19.0-14-amd64 System.map-4.19.0-11-amd64 System.map-4.19.0-14-amd64 vmlinuz-4.19.0-12-amd64
config-4.19.0-12-amd64 grub initrd.img-4.19.0-12-amd64 lost+found System.map-4.19.0-12-amd64 vmlinuz-4.19.0-11-amd64 vmlinuz-4.19.0-14-amd64
Сейчас загрузим нашу ОС
grub rescue> set prefix=(hd0,msdos1)/grub
grub rescue> set root=(hd0,msdos2)
grub rescue> insmod normal
grub rescue> normal
А для второго варианта с одним разделом
grub rescue> set prefix=(hd0,msdos1)/boot/grub
grub rescue> set root=(hd0,msdos1)
grub rescue> insmod normal
grub rescue> normal
После того, как ОС загрузится, откройте терминал под суперпользователем и установите GRUB на свой диск заново.
# update-grub
# grub-install /dev/sda
Где /dev/sda — это Ваш системный диск.
Конечно, grub rescue не всегда так просто можно исправить. Например, если у Вас система LVM или GPT разметка, то потребуется чуть больше команд