У мене налаштована багатозавантажена система. У системі три приводи. Multiboot налаштовано з Windows XP, Windows 7 та Ubuntu - все це на першому диску. У мене було багато нерозподіленого місця на диску, і я резервував його для додавання інших ОС і для зберігання файлів у майбутньому.
Одного разу я зайшов і завантажив майстра розділів і створив логічний розділ NTFS з Windows 7, все ще залишився нерозділений простір. Все працювало чудово, поки я не перезавантажив комп’ютер через кілька днів.
Тепер я отримую:
error: unknown filesystem.
grub rescue>
Перш за все, я був здивований, що не знайшов будь-якої команди довідки, намагаючись:
help
, ?
, man
, --help
, -h
, bash
, cmd
І т.д.
Тепер я застряг із системою, що не завантажується. Я почав досліджувати проблему і виявив, що зазвичай люди рекомендують завантажуватися на Live CD і виправляти проблему звідти. Чи є спосіб виправити цю проблему в межах рятівного порятунку, не потребуючи Live CD?
ОНОВЛЕННЯ
Виконуючи кроки з команд Персист, набраних до рятувальної роботи GRUB , я зміг завантажитися у підказку initramfs. Але ніде далі, ніж це.
Поки що не читав посібник з порятунку з грубу , я зміг побачити свої диски та розділи за допомогою 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
Я не міг зрозуміти, чому наступне не виправляє гріш:
sudo update-grub
sudo grub-install /dev/sda
Тому я завантажив завантажувальний ремонт на основі відповіді з https://help.ubuntu.com/community/Boot-Repair post. Це, здавалося, зробило трюк після того, як я вибрав варіант "Рекомендований ремонт (виправлення найчастіших проблем)".