Швидкий рятувальний рядок, ремонт грязі


30

Нещодавно я переділив свій жорсткий диск і пошкодив GRUB на своїй системі. Під час завантаження я отримую рятувальний рядок GRUB, і для нормального завантаження я повинен пройти наступні кроки:

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

(Ці кроки були знайдені в іншій публікації тут!).

Я дуже втомився повторювати це під час кожного завантаження, як я назавжди виправити GRUB?


1
Дві можливості: (1) Ремонт завантаження (2) Супер рятувальний диск Super Grub Дивіться: http://linuxnorth.wordpress.com/2012/02/07/repairing-grub/
CentaurusA

1
Кроки, перелічені у питанні до завантаження, працювали для мене. Слід пам'ятати правильно розділ Linux.
TheCrazyProgrammer

1
Як говорили інші, оновлення grub, а потім grub-install / dev / sda вирішує проблему.
TheCrazyProgrammer

Дивіться відповідь Картіка на "файл не знайдено": askubuntu.com/questions/443241/…
samis

Відповіді:


12

Щоб виправити рятування, виконайте такі дії:

  • По-перше, ми повинні запустити нашу ОС тільки потім, після того як ми зможемо виправити гріх.

    #to start OS-->
    error: unknown filesystem.
    Entering rescue mode...
    grub rescue>

    Коли ви побачите таку помилку, ми повинні перевірити, чи "Filesystem" є ext2 "

    grub rescue> ls        # type 'ls' and hit enter to see drive partition.
    (hd0) (hd0,msdos6) (hd0,msdos5) (hd0,msdos4) ...   # you will see such things 

це наші накопичувачі, тепер ми повинні перевірити, який з них є ext2.

grub rescue>ls (hd0,msdos6)
error: disk 'hd,msdos6' not found.

перейдіть на інші диски, поки не отримаєте "Filesystem is ext2".

grub rescue>ls (hd0,msdos5)
error: disk 'hd,msdos5' not found.
grub rescue>ls (hd0,msdos2)
(hd0,msdos2): Filesystem is ext2        # this is what we want

тепер встановити шлях

grub rescue>set boot=(hd0,msdos2)
grub rescue>set prefix=(hd0,msdos6)/boot/grub
grub rescue>insmod normal
grub rescue>normal
  • Тепер просто виправте grub, дотримуючись команди на будь-якому Ubuntu

    sudo grub-install /dev/sda
    sudo apt-get update
    # to update grub
    sudo apt-get upgrade

переконайтеся, що ви повинні оновити grub після входу в ОС


1
ОП вже знає, як завантажуватися в свою ОС. Ця відповідь могла бути більш стислою.
Старійшина Гік

1
Ця відповідь мені була корисною. Моя проблема не була точно такою, як оригінальне запитання, тому додаткова інформація стала корисною.
ретро

1
+1 Це виправлено через проблеми при невдалій установці KDE Neon.
Даррен Льюїс

помилка: файл '/boot/grub/i386-pc/normal.mod' не знайдено Що робити?
BhushanDhamale

7

Я б спробував запустити update-grub, щоб будувати grub.conf/ grub.cfgзнову.

Можна спробувати також використовувати grub-install, але я думаю, що це не допоможе.

Якщо ви хочете прочитати більше, перевірте, яку версію ви маєте (GRUB 1 або 2), запустивши:

dpkg -l | grep grub

Якщо у вас є GRUB 2, ви можете скористатися наступним посібником: http://www.dedoimedo.com/computers/grub-2.html

Звичайно, будьте уважні до роботи з GRUB, оскільки ми говоримо про процес завантаження, який є чутливим механізмом.


2
grub-install <correct-drive, i.e. /dev/sda>і update-grub2нарешті зробив це для мене на Ubuntu 15.04
Грег Краміда,

6

Мені здається, що update-grubзбирає grub.cfg, але вам також потрібно (повторно) запустити grub-install(або grub-setup?) Для оновлення секторів MBR / boot з базовою інформацією - на якому розділі знайти grub.cfgфайл і, мабуть, ці модулі.


4

Коли ви отримуєте рятувальний запит GRUB, це означає, що завантажувач GRUB не може знайти свої модулі з розділу, який їх містить /boot/grub. Причиною цього є те, що код, який вписується в запис MBR накопичувача, є крихітним, і тому його основна мета - знайти та завантажити решту коду завантажувача. Після завантаження модулів він може представити меню GRUB і обробляти решту процесу завантаження. Якщо він не може знайти модулі, він представляє дуже обмежений рятувальний рядок.

Отже, те, що ви бачите, є цілком нормальним, якщо ви перерозподілилися, тим самим порушивши посилання, яку завантажувач мав на розділ, що містить завантажувальні модулі.

Оскільки ви можете завантажуватись вручну, найпростіший виправлення - це вручну завантажити та перевстановити завантажувач у MBR, щоб він мав правильне посилання на ваш розділ. Спосіб зробити це:

sudo grub-install /dev/sda

Це передбачає завантаження з /dev/sda(у більшості випадків, але якщо ні, замініть його на правильний диск).

Це рішення набагато простіше, ніж використання boot-repair, але якщо ви не впевнені, це може бути більш підходящим.


1
+1 для пояснення того, що відбувається в простих для розуміння термінах.
монотакер

2

Найпростішим способом було б:

sudo apt-get purge grub-pc grub-pc-bin

Потім:

sudo apt-get install grub-pc grub-pc-bin

2
Це підхід кувалди, який, ймовірно, спрацює, але простіше просто перевстановити завантажувач, щоб оновити посилання на розділ (який було порушено перерозподілом).
bcbc

1

Вирішіть остаточний випадок виходу з ладу врятування: проблеми: 1. i386-ПК не знайдено **** нормальний режим не працює cp не працює search.file не працює . Все можна вирішити за допомогою наступних команд, також працює з Ubuntu 18.04. Крок 1. Знайдіть кореневу папку, що містить каталог.

ls

Наприклад, якщо коренева папка знаходиться в (hd0, gpt4), тоді введіть

ось як це виглядає

ls (hd0, 4)/

Ви побачите деякі файли чи папки:

мій кореневий файл знаходиться в (hd0, gpt4)

Тепер, якщо вам пощастило, зробіть наступне:

set root=(hd0, 4)
set prefix=(hd0, 4)/boot/grub/
insmode normal
normal

Якщо вам пощастить, то це вирішить вашу проблему. Іноді люди мають такі проблеми, як не вдається знайти папку 1386 ПК. У такому випадку ви повинні шукати, де знаходиться ваша папка grub. Якщо у вас є така проблема, як:

boot / grub / i386-pc / normal.mod не знайдено

У цьому випадку потрібно знайти папку grub2. Якщо у вас є grub2 і всередині цієї папки, у вас може бути папка i386-pc. Потім потрібно набрати

prefix=(hd0, 4)/grub2/

це спрацює. Якщо у вас немає grub2 і не вдалося знайти папку i386-pc, виконайте наступні дії:

grub rescue>set root=(hd0, 4)
grub rescue>set prefix=(hd0, 4)/usr/lib/grub
grub rescue>insmode normal
grub rescue>normal

після виконання цієї команди ваш режим порятунку з грубу перейде в меню grub . Тепер ви можете виконати команду linux.

linux comand

grub>set root =(hd0, 4)
grub>set prefix= (hd0, 4)/boot
grub>insmaod linux
grub>linux vmlinuz.....-generic
grub>intrd (hd0, 4)/boot/...-generic
grub>boot

Він переведе вас у режим відновлення. Звідти ви можете обрати кілька варіантів відновлення. Якщо це не допомагає, вам потрібно завантажити os ubuntu, наприклад ubuntu 18.04. Ви можете завантажити за наступним посиланням: посилання ubuntu

Зробіть завантажувальний диск і відкрийте свій комп'ютер із цим живим диском. Це не зашкодить жодним вашим документам. Дивіться відео про те, як це зробити. Тепер ви повинні знайти свою папку i386-ПК. Це буде в

rootContainingDirectory-usr-lib-grub

Тепер скопіюйте i386-pc для завантаження / grub / folder. у вас може виникнути проблема з дозволом для подолання цього типу наступної команди:

sudo nautilus

Тепер клацніть правою кнопкою миші на цій директорії та змініть власника на користувача ubuntu live session

слідкуйте за відео: зміна дозволу

Тепер після того, як ви вставите його в папку boot / grub, перезавантажте та вийміть USB-накопичувач. Цього разу використовуйте 1-й набір команд, він спрацює. Якщо команда cp працює, то це можна зробити і з меню grub.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.