Grub rescue - ошибка: неизвестная файловая система

У меня установлена ​​мультизагрузочная система. Система имеет три привода. Мультизагрузка настроена на Windows XP, Windows 7 и Ubuntu - все на первом диске. У меня было много нераспределенного пространства, оставленного на диске, и зарезервировал его для добавления других ОС и для хранения там файлов в будущем.

В один прекрасный день я пошел дальше и загрузил мастер раздела и создал логический раздел NTFS изнутри Windows 7 все еще осталось незапланированное пространство.

Теперь я получаю:

error: unknown filesystem.  
grub rescue>

Прежде всего я был удивлен, что не нашел никакой помощи команду:

help, ?, man, --help, -h, bash, cmd и т. д.

Now Я застрял в не загружаемой системе. Я начал изучать проблему и обнаружил, что люди обычно рекомендуют загружаться на Live CD и исправлять проблему. Есть ли способ исправить эту проблему изнутри спасения grub без необходимости в Live CD?

UPDATE

Следуя шагам команд Persist, набранных для GRUB rescue, я смог загрузитесь в приглашение initramfs.

До сих пор не прочитав руководство по Персистским командам, введенным в GRUB rescue , я смог увидеть свои диски и разделы с помощью команды ls. Для первого жесткого диска я вижу следующее: (hd0) (hd0, msdos6) (hd0, msdos5) (hd0, msdos2) (hd0, msdos1)

Теперь я знаю, что (hd0, msdos6) содержит Linux на нем, поскольку ls (hd0,msdos6)/ перечисляет каталоги. Другие дадут «error: unknown filesystem».

UPDATE

После следующих команд я теперь перехожу в меню загрузки и могу загрузиться в Windows 7 и Ubuntu, но после перезагрузки я должен повторить эти шаги.

ls
ls (hd0,msdos6)/
set root=(hd0,msdos6)
ls /
set prefix=(hd0,msdos6)/boot/grub
insmod /boot/grub/linux.mod
normal

UPDATE 3

Спасибо Shashank Singh, с вашими инструкциями я упростил свои шаги к следующему. Я узнал от вас, что я могу заменить msdos6 всего на 6 и что я могу просто сделать insmod normal вместо insmod /boot/grub/linux.mod. Теперь мне нужно выяснить, как сохранить эти настройки изнутри самой grub, без загрузки в любую ОС.

set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal

UPDATE 3

Well , похоже, что это требование для загрузки в Linux. После загрузки в Ubuntu я выполнил следующие шаги, описанные в руководстве:

sudo update-grub
sudo grub-install /dev/sda

Это не решило проблему. Я все еще получаю подсказку спасброска. Что мне нужно сделать для постоянного исправления?

Я также узнал, что номера дисков, как и в hd0, должны быть переведены на буквы букв, как в / dev / sda для некоторых команд. hd1 будет sdb, hd2 - sdc и т. д. Разделы, перечисленные в grub as (hd0, msdos6), будут переведены на /dev/sda6.

UPDATE 5

Я не мог понять, почему следующее не исправило grub:

sudo update-grub
sudo grub-install /dev/sda

Итак, я загрузил руководство на основе ответа от https://help.ubuntu.com/community/Boot-Repair. Это, похоже, сделало трюк после того, как я выбрал вариант «Рекомендуемый ремонт (ремонт наиболее часто возникающих проблем)».

1
задан 13 April 2017 в 15:24

3 ответа

Существует альтернативная причина этой проблемы. В этом конкретном случае GRUB был как-то поврежден и нуждается в ремонте или переустановке. Однако, как показано в решении Grub, сбой происходит с «Восстановление загрузки». с ошибкой «неизвестной файловой системы», также возможно, что корневой раздел, на котором установлен GRUB, может быть поврежден. Чтобы исправить это:

Это возможное решение, но оно не должно использоваться, чтобы ваш корневой раздел не был поврежден. Выполняя команду fsck -t ext4 /dev/sda1, эта программа пытается выполнить поиск и исправление ошибок на поврежденной файловой системе. Замените sda1 на ваш фактический корневой раздел. Замените ext4 на фактическую файловую систему; вы должны знать файловую систему, иначе раздел будет более поврежден. См. Сбой восстановления Grub с «Восстановление загрузки». с ошибкой «неизвестной файловой системы» .

Несмотря на то, что у этого вопроса есть ответ, есть альтернативный способ исправить проблему, которая работала для меня. Шаги объясняются в мучительном видео Grub Rescue - Guide для начинающих. Короче говоря, он будет полностью переустанавливать GRUB   2, а не восстанавливать его.

Поскольку это видео так больно смотреть, я перечислим следующие шаги (как я должен, независимо от того, насколько больно смотреть видео)

Запустить живую сессию Ubuntu. Видео использует live CD, тогда как я использовал живой USB. Я убедился, что у живого USB есть такая же версия Ubuntu, что у меня на жестком диске. Найдите, где был установлен ваш корневой раздел. В видео пользователь использует Nautilus для навигации по каждому подключенному накопителю. Он был установлен с длинной строкой цифр и символов. Если это так, выполните следующие шаги, чтобы перемонтировать раздел. Затем перейдите к шагу 5. Подключите терминал с помощью Ctrl + Alt + T и используйте команду mount, чтобы найти имя раздела. Установите раздел. Создайте новую папку в своей медиа-папке. [F4]. Затем просто установите свой раздел в эту папку. sudo mount /dev/sdxx /media/ubuntu, где xx of sdxx определяется на шаге 3. Привяжите следующие каталоги из корневого каталога вашего live CD / USB к вашему корневому каталогу в вашей версии Ubuntu. Каталоги - это dev proc и sys. Сделайте это со следующими командами:
sudo mount --bind /dev /media/ubuntu/dev
sudo mount --bind /sys /media/ubuntu/sys
sudo mount --bind /proc /media/ubuntu/proc
Измените корневой каталог на тот, который находится на вашем разделе Ubuntu. sudo chroot /media/ubuntu/ Сделав это, установка GRUB   2 снова установит его в корневую директорию вашего дистрибутива Ubuntu, а не на live CD / USB. Итак, запустите sudo grub-install /dev/sdx

И вот как исправить GRUB с помощью live CD / USB. Этот метод был разработан пользователем crazytechzone пользователя YouTube.

5
ответ дан 25 May 2018 в 12:54

Использование:

set prefix=(hdX,Y)/boot/grub. Используйте значения, определенные ранее. Пример. Если система Ubuntu находится на sda5, введите: set prefix=(hd0,5)/boot/grub set root=(hdX,Y). Пример: set root=(hd0,5) insmod normal. Попытайтесь загрузить нормальный модуль. normal

В основном нам нужен GRUB, чтобы узнать, где находится папка /boot/grub. Если это не работает, я думаю, что установка GRUB с загрузочного компакт-диска является хорошим вариантом.

4
ответ дан 25 May 2018 в 12:54
  • 1
    Спасибо за вашу помощь. Я думаю, что моя проблема, возможно, в том, что мой загрузочный каталог находится на / dev / sdb, а не / dev / sda. Но boot-repair исправил его автоматически, поэтому мне больше не нужно было ничего делать. – user53817 15 April 2012 в 07:52

Забавно, у меня также была та же проблема час назад!

Во всяком случае, это то, что я сделал.

Загрузите ubuntu:
set root=(hd0,6)
set prefix=(hd0,6)/boot/grub
insmod normal
normal
, так как ваш ubuntu установлен на 6 правильно? :
sudo -i *to access root*
grub-install --root-directory=/mnt/ /dev/sda
sudo update-grub
sudo grub-install /dev/sda
3
ответ дан 25 May 2018 в 12:54
  • 1
    Спасибо за ваш ответ, но у меня была решетка, исправленная с помощью инструмента восстановления загрузки, прежде чем вы отправили ответ. Теперь я обновил этот пост своим решением. Хотел бы я попробовать и твой метод. – user53817 7 April 2012 в 13:21

Другие вопросы по тегам:

Похожие вопросы: