У меня установлена мультизагрузочная система. Система имеет три привода. Мультизагрузка настроена на 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. Это, похоже, сделало трюк после того, как я выбрал вариант «Рекомендуемый ремонт (ремонт наиболее часто возникающих проблем)».
Существует альтернативная причина этой проблемы. В этом конкретном случае 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.
Использование:
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 с загрузочного компакт-диска является хорошим вариантом.
Забавно, у меня также была та же проблема час назад!
Во всяком случае, это то, что я сделал.
Загрузите 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