GRUB — GRand Unified Bootloader. Универсальный загрузчик, который устанавливается вместе с операционной системой Linux. В настоящее время большинство систем Linux используют GRUB2.
Если загрузчик GRUB не может найти папку grub или если файловая система диска повреждена, то вы можете при загрузке увидеть такую картину:
error: no such partition.
Entering rescue mode...
grub rescue > _
Или такую:
error: unknown filesystem.
Entering rescue mode...
grub rescue > _
Или просто:
grub rescue > _
Операционная система загрузиться не может. Что делать?
Посмотрим какие разделы на диске видит загрузчик с помощью команды ls:
grub rescue > ls
(hd0) (hd0,msdos5) (hd0,msdos1)
В результате у нас отобразится:
- (hd0) — это диск
- (hd0,msdosX) — это найденные разделы диска
У меня найден один диск и два раздела на нём, первый и пятый. На название msdos не обращаем внимания, GRUB не определяет тип файловой системы.
Теперь нам нужно найти загрузочный раздел. По очереди перебираем разделы:
grub rescue > (hd0,msdos1)/
grub rescue > (hd0,msdos5)/
или
grub rescue > (hd0,1)/
grub rescue > (hd0,5)/
Можно получить ошибку:
error: unknown filesystem.
Это означает, что раздел содержит неподходящую для загрузки файловую систему.
На каком-то из разделов отобразится список директорий:
grub rescue > (hd0,msdos1)/
./ ../ lost+found/ boot/ vmlinuz-3.2.0-4-686-pae initrd.img-3.2.0-4-686-pae
Видим директорию boot, это нужный нам раздел. В зависимости от операционной системы путь к загрузчику может отличаться, вместо /boot/grub может быть /grub или ещё что-нибудь.
Устанавливаем переменные prefix и root:
grub rescue > set prefix=(hd0,msdos1)/boot/grub
grub rescue > set root=(hd0,msdos1)
Загружаем систему:
grub rescue > insmod ext2
grub rescue > insmod normal
grub rescue > normal
После загрузки ОС нужно восстановить загрузчик GRUB на загрузочном разделе:
sudo grub-install /dev/sda
sudo update-grub
unknown filesystem
Случается, что на всех разделах отображается ошибка:
error: unknown filesystem
Качаем boot-repair-disk и пытаемся восстановить файловую систему с помощью fsck в нужном разделе:
sudo fsck -y /dev/sda1