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

59

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

Однажды я скачал «Мастер разделов» и создал логический раздел NTFS из Windows 7, но осталось еще немного неразделенного пространства. Все работало нормально, пока я не перезагрузил компьютер через несколько дней.

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

error: unknown filesystem.  
grub rescue>

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

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

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

ОБНОВИТЬ

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

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

Теперь я знаю, что (hd0, msdos6) содержит Linux, так как ls (hd0,msdos6)/перечисляет каталоги. Другие выдадут «ошибка: неизвестная файловая система».

ОБНОВЛЕНИЕ 2

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

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

ОБНОВЛЕНИЕ 3

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

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

ОБНОВЛЕНИЕ 4

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

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

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

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

ОБНОВЛЕНИЕ 5

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

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

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

user53817
источник
zdnet.com/… также имеет некоторую полезную информацию на эту тему.
K7AAY
с похожей проблемой, но в моем прямом эфире USB также бесполезен goo.gl/Mr61V1
Ramesh
Изменение порядка загрузки, начиная с компакт-диска восстановления Windows 7, запуска терминала, ввода «Bootrec.exe / FixMbr» (без кавычек) и перезагрузки решило мою проблему.
Консуэла
В предыдущем обновлении у меня работало 3, но сейчас та же проблема. Не работает, даже я пытался с перечисленными папками в Grub Rescue. Я попытался выполнить резервное копирование данных с помощью устройства ubuntu ISO, существующая версия ubuntu не указана. Помогите мне, что мне теперь делать?
Жак
Это кажется каноническим вопросом, но еще более старый вопрос - Неизвестная файловая система: grub rescue .
Питер Мортенсен

Ответы:

25

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

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

Таким образом, я загрузил восстановление загрузки, основываясь на ответе команд Persist, набранных на спасательный пост GRUB . Это, казалось, сделало трюк после того, как я выбрал опцию «Рекомендуемый ремонт (устранение наиболее частых проблем)».

Я также использовал Grub Customizer для настройки порядка загрузочных записей.

user53817
источник
Это не сработало, потому что после выполнения последней команды вам нужно было бы снова запустить sudo update-grub. В режиме реального времени вам нужно будет смонтировать целевую файловую систему в mnt, выполнить chroot в файловую систему, а затем вам потребуется запустить sudo update-grub из chroot.
Mchid
Используя информацию из этого ответа (установка и использование boot-repair) и из вопроса, он работал для восстановления на нетбуке Acer, где я выбрал неправильный пункт в меню GRUB, «Среда восстановления Windows (загрузчик) (вкл /dev/sda1 , во время загрузки.
Питер Мортенсен
7

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

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


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

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

  1. Запустите сеанс Ubuntu. Видео использует живой CD, тогда как я использовал живой USB. Я убедился, что на живом USB была та же версия Ubuntu, что и на жестком диске.
  2. Найдите, где ваш корневой раздел был смонтирован. В видео пользователь использует Nautilus для навигации по каждому подключенному диску. Он был снабжен длинной строкой цифр и символов. В этом случае выполните следующие шаги, чтобы перемонтировать раздел. В противном случае перейдите к шагу 5.
  3. Поднимите терминал с помощью Ctrl+ Alt+ Tи используйте mountкоманду, чтобы найти имя раздела.
  4. Смонтируйте раздел. Создайте новую папку в вашей медиа-папке. sudo mkdir /media/ubuntu, Затем просто подключите раздел к этой папке. sudo mount /dev/sdxx /media/ubuntuгде xxиз sdxxопределяется на шаге 3.
  5. Свяжите следующие каталоги из корневого каталога вашего 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
    
  6. Измените корневой каталог на тот, что находится в вашем разделе Ubuntu. sudo chroot /media/ubuntu/

  7. Сделав вышеизложенное, установка GRUB 2 снова установит его в корневой каталог вашего дистрибутива Ubuntu, а не в дистрибутив live CD / USB. Так что давай, бегиsudo grub-install /dev/sdx

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

ноль
источник
6

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

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

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

Шашанк Сингх
источник
Спасибо за вашу помощь. Я думаю, что моя проблема, возможно, заключалась в том, что мой загрузочный каталог находится в / dev / sdb, а не в / dev / sda. Но boot-repair исправил это автоматически, поэтому мне не пришлось ничего делать дальше.
user53817
3

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

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

  1. Загрузите Ubuntu:

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

    так как ваша Ubuntu установлена ​​в 6 правильно?

  2. запустить терминал:

    sudo -i *to access root*
    grub-install --root-directory=/mnt/ /dev/sda
    sudo update-grub
    sudo grub-install /dev/sda
    
Фрэнсис
источник
Спасибо за ваш ответ, но я исправил мой grub, используя инструмент восстановления загрузчика, прежде чем вы опубликовали ответ. Я обновил этот пост своим решением. Хотел бы я попробовать и твой метод.
user53817
2

Установите Boot-Repair в Ubuntu

  1. Загрузите свой компьютер с Ubuntu live-CD или live-USB.

  2. Выберите «Попробуйте Ubuntu»

  3. Подключить интернет

  4. Откройте новый терминал ( Ctrl+ Alt+ T), затем введите:

    sudo add-apt-repository ppa:yannubuntu/boot-repair && sudo apt-get update
    
  5. Нажмите Enter.

  6. Затем введите:

    sudo apt-get install -y boot-repair && boot-repair
    
  7. Нажмите Enter.

Использование Boot-Repair

введите описание изображения здесь

Рекомендуемый ремонт

  1. Запустите Boot-Repair из:

    а. Тире (логотип Ubuntu в верхнем левом углу экрана)

    б. Или Система-> Администрирование-> Меню Boot-Repair (только Ubuntu 10.04)

    с. Или набрав «boot-repair» в терминале

  2. Затем нажмите кнопку «Рекомендуемый ремонт». Когда восстановление будет завершено, запишите URL-адрес (paste.ubuntu.com/XXXXX), который появился на бумаге, затем перезагрузите компьютер и проверьте, восстановили ли вы доступ к своим ОС.

  3. Если восстановление не удалось, укажите URL-адрес людей, которые помогут вам по электронной почте или на форуме.

penreturns
источник
@penreturn Большое спасибо, это сработало чудесно. : D
Джил Шах
0

Другая причина проблемы заключается в том, что файловая система на загрузочном диске может быть сбой в редких случаях. Как упоминалось в других ответах, я изначально использую lsкоманду для вывода списка всех дисков / разделов в приглашении на восстановление GRUB, но все они сообщают об неизвестной ошибке файловой системы . Я наконец исправил проблему в Ubuntu 16.04 (Xenial Xerus), восстановив файловую систему следующим образом:

  1. Загрузка с флешки (попробуйте Ubuntu без установки)

  2. Найдите загрузочный диск (проверьте емкость диска или выполните действия fsckна каждом разделе):

    sudo fdisk -l
    
  3. Восстановите файловую систему:

    sudo fsck /dev/sdb1
    
  4. После исправления и очистки файловой системы перезагрузите компьютер с загрузочного диска.

user84246
источник