Главная >> Инструкции >> Ошибка grub rescue unknown filesystem

Ошибка grub rescue unknown filesystem

Grub - это универсальный загрузчик, который используется для загрузки операционной системы Linux и других ОС, в случае, если на компьютере установлен Linux. Но когда вы выполняете какие-либо действия с разделами на диске, например, восстанавливаете их с помощью Clonezilla, изменяете размер или что-то другое, что Grub может быть поврежден.

Часто такие повреждения приводят к ошибке grub rescue unknown filesystem. Тогда перед вами не появляется меню, а только сообщение про ошибку и консоль восстановления для ввода команд. В этой небольшой статье мы рассмотрим как исправить эту ошибку.


Содержание статьи

Ошибка grub rescue unknown filesystem

Ошибка grub rescue unknown filesystem может возникать по разным причинам вот самые распространенные причины:

  • Вы восстанавливали диск из Clonezilla и были изменены метрики раздела /boot;
  • Раздел /boot был отформатирован и больше не существует;

Дело в том, что Grub устанавливается в два места. Первое - место в таблице разделов MBR. Там очень мало места, около 512 байт, а следовательно, весь загрузчик туда поместиться не может. Поэтому Grub имеет модульную структуру и все основные модули, конфигурационные файлы и ресурсы располагаются на обычном разделе, который монтируется после загрузки в /boot. Причем программа в MBR помнит где находится раздел /boot, но если с этим разделом что-то произойдет и программа не сможет загрузить привычные модули, то выдаст ошибку unknown filesystem. Если раздела больше нет, то вам останется только брать LiveCD диск и переустанавливать загрузчик, если же раздел просто немного изменен, то еще можно все исправить.

Как исправить Grub unknown error

У вас есть простейший терминал с самой простой командной оболочкой. Чтобы знать какие команды можно там вводить наберите:

help

Дальше нам нужно посмотреть список доступных разделов, для этого используется команда ls, как в bash:

ls

Без модулей grub поддерживает только ту файловую систему, которая была на /boot. Вы можете попытаться просмотреть содержимое каждого раздела чтобы определить где находятся файлы модулей. Например:

ls (hd0,1)/

Если вы увидели папку boot, значит это наш раздел. Дальше устанавливаем этот раздел значением переменной root с помощью команды set:

set root=(hd0,1)
set prefix=(hd0,1)/boot/grub

Загружаем и запускаем модуль normal, который должен загрузить все, что нам необходимо:

insmod normal
normal

Если раздел /boot не был поврежден, то загрузчик нормально определит все файлы, а потом запустит привычное для вас меню. Конечно, после того, как система загрузится, вам будет необходимо восстановить загрузчик Grub чтобы не вводить эти команды при каждой загрузке системы.

Выводы

В этой статье мы рассмотрели почему возникает ошибка error unknown filesystem grub rescue и что делать grub rescue, когда вы видите это сообщение. Да, во многих случаях у вас уже не получится загрузить систему без LiveCD диска. Но иногда все можно спасти. Надеюсь, эта информация была полезной для вас.

15 комментариев к “Ошибка grub rescue unknown filesystem”

  1. Спасибо, помогло!
    После загрузки системы, чтобы GRUB работал постоянно, нужно ввести эти команды:
    $ sudo grub-install /dev/sda
    $ sudo grub-mkconfig -o /boot/grub/grub.cfg

    Ответить
  2. автор путает строки grub и grub rescue
    в grub rescue всего 4 команды и нет никакого help

    у меня ошибка attempt to read or write outside of disk 'hd0'
    После установки командой set рута и префикс делаю insmod normal и полчуаю обратно туже ошибку

    Ответить
  3. Спасибо, это помогло. Только была небольшая особенность, у меня было несколько раздело

    (hd0), (hd0,msdos5), (hd0,msdos3), (hd0,msdos2), (hd0,msdos1), (hd1) ...

    (hd0,msdos5) - имел /boot/grub + в корне была знакомая мне структура каталогов, но normal.mod, был на каталог ниже в /boot/grub/i386-pc/normal.mod в консоли я получил not found при выполнении команды 'insmod normal'

    (hd0,msdos3)- имел сразу в корне /grub + в корне было несколько утилит, судя по названию это были запуски проверки памяти , запуск рекавери мода и прочее, что обычно видно в boot menu.

    В моём случае мне помогло:
    $ set root=(hd0,msdos3)
    $ set prefix=(hd0,msdos3)/grub

    Ещё раз спс)

    P.S. вопрос, что было бы если я бы поставил set prefix=(hd0,msdos5)/boot/grub/i386-pc ?

    Ответить

Оставьте комментарий