У меня настроена мультизагрузочная система. Система имеет три диска. 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 . Это, казалось, сделало трюк после того, как я выбрал опцию «Рекомендуемый ремонт (устранение наиболее частых проблем)».
Ответы:
Я не мог понять, почему следующее не исправить grub:
Таким образом, я загрузил восстановление загрузки, основываясь на ответе команд Persist, набранных на спасательный пост GRUB . Это, казалось, сделало трюк после того, как я выбрал опцию «Рекомендуемый ремонт (устранение наиболее частых проблем)».
Я также использовал Grub Customizer для настройки порядка загрузочных записей.
источник
/dev/sda1
)» , во время загрузки.Существует альтернативная причина этой проблемы. В этом конкретном случае GRUB был каким-то образом поврежден и нуждался в ремонте или переустановке. Однако, как показано в Grub Rescue, происходит ошибка «Восстановление загрузки» с ошибкой «неизвестная файловая система» , также возможно, что корневой раздел, на котором установлен GRUB, может быть поврежден. Чтобы исправить это:
Это возможное решение, но его не следует использовать скорее всего, чтобы ваш корневой раздел не был поврежден. При запуске команды
fsck -t ext4 /dev/sda1
эта программа пытается найти и исправить ошибки в поврежденной файловой системе. Замените sda1 фактическим корневым разделом. Замените ext4 фактической файловой системой; Вы должны знать файловую систему, иначе раздел будет более поврежден. См. Восстановление поврежденной файловой системы для получения дополнительной информации.Несмотря на то, что на этот вопрос есть ответ, есть альтернативный способ решить проблему, которая сработала для меня. Шаги объясняются в болезненном видео Grub Rescue - Руководство для начинающих . Короче говоря, он будет переустанавливать GRUB 2 вместо того, чтобы восстанавливать его.
Поскольку смотреть это видео так больно, я перечислю нижеприведенные шаги (как и следовало бы, независимо от того, насколько больно смотреть видео)
mount
команду, чтобы найти имя раздела.sudo mkdir /media/ubuntu
, Затем просто подключите раздел к этой папке.sudo mount /dev/sdxx /media/ubuntu
гдеxx
изsdxx
определяется на шаге 3.Свяжите следующие каталоги из корневого каталога вашего live CD / USB с корневым каталогом в вашей версии Ubuntu. Каталоги
dev
proc
иsys
. Сделайте это с помощью следующих команд:Измените корневой каталог на тот, что находится в вашем разделе Ubuntu.
sudo chroot /media/ubuntu/
sudo grub-install /dev/sdx
И это как починить GRUB используя live CD / USB. Этот метод был разработан пользователем YouTube crazytechzone.
источник
Использование:
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 с загрузочного CD - хороший вариант.источник
Забавно, у меня тоже была такая же проблема час назад!
Во всяком случае, это то, что я сделал.
Загрузите Ubuntu:
так как ваша Ubuntu установлена в 6 правильно?
запустить терминал:
источник
Установите Boot-Repair в Ubuntu
Загрузите свой компьютер с Ubuntu live-CD или live-USB.
Выберите «Попробуйте Ubuntu»
Подключить интернет
Откройте новый терминал ( Ctrl+ Alt+ T), затем введите:
Нажмите Enter.
Затем введите:
Нажмите Enter.
Использование Boot-Repair
Рекомендуемый ремонт
Запустите Boot-Repair из:
а. Тире (логотип Ubuntu в верхнем левом углу экрана)
б. Или Система-> Администрирование-> Меню Boot-Repair (только Ubuntu 10.04)
с. Или набрав «boot-repair» в терминале
Затем нажмите кнопку «Рекомендуемый ремонт». Когда восстановление будет завершено, запишите URL-адрес (paste.ubuntu.com/XXXXX), который появился на бумаге, затем перезагрузите компьютер и проверьте, восстановили ли вы доступ к своим ОС.
Если восстановление не удалось, укажите URL-адрес людей, которые помогут вам по электронной почте или на форуме.
источник
Другая причина проблемы заключается в том, что файловая система на загрузочном диске может быть сбой в редких случаях. Как упоминалось в других ответах, я изначально использую
ls
команду для вывода списка всех дисков / разделов в приглашении на восстановление GRUB, но все они сообщают об неизвестной ошибке файловой системы . Я наконец исправил проблему в Ubuntu 16.04 (Xenial Xerus), восстановив файловую систему следующим образом:Загрузка с флешки (попробуйте Ubuntu без установки)
Найдите загрузочный диск (проверьте емкость диска или выполните действия
fsck
на каждом разделе):Восстановите файловую систему:
После исправления и очистки файловой системы перезагрузите компьютер с загрузочного диска.
источник