Помилка grub: файл '/grub/i386-pc/normal.mod' не знайдено?


17

Нещодавно я встановив арку (сподіваюся успішно) на свою машину. Коли я перейшов до перезавантаження, проте у мене виникла проблема. У мене з’явився чорний екран із текстом

Grub loading.
Welcome to GRUB!
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>

З тих пір я в Google шукала відповіді. Я майже знайшов його тут на форумах Ubuntu, але тоді я побачив один із коментарів, в якому говорилося, що це неправда. Є ще одна відповідь, але я не впевнений, чи хочу я встановити з живого компакт-диска, боячись зіпсувати речі.

Ви зрозуміли б мій страх, якби ви також витратили 7 годин на налаштування цього, після того, як постійно стикалися з проблемами з розділеннями, командами, підручниками та системою. Яка радість.

Хто-небудь знає про просте рішення налагодити роботу з грубкою?


Другу пропозицію (з liveCD та chroot), напевно, варто спробувати. Або варіація на ньому: я не користувач арки, але я встановив її раніше, і, як я пам’ятаю, ви можете поглянути на цю пропозицію стосовно різних етапів установки арки, деякі з яких передбачають chroot. Якщо ви можете повернутись до попереднього кроку, завантаживши арковий компакт-диск, а потім встановіть і встановіть на екран установку, вам слід мати змогу спробувати grub-install. Вам не потрібно повторювати жоден із кроків, просто використовуйте їх як посібник, щоб увійти в нього з liveCD.
goldilocks

Поки я зараз не за комп’ютером, я вважаю, що я спробував встановити груб, і це не спрацювало.
Griffin

@Griffin Це не спрацювало, як у "grub-install" не вдалося, або це не вирішило проблему?
дероберт

@derobert grub-install не була дійсною командою \
Griffin

@goldilocks Другий теж не працює
Гриффін

Відповіді:


9

Дійсно дратівлива річ ...

Оскільки, мабуть, каталог / boot / grub / i386-pc просто не був на місці, я нарешті вирішив проблему, скопіювавши весь / usr / lib / grub / i386-pc в / boot / grub. Це все.

cp -r /usr/lib/grub/i386-pc /boot/grub

Я також це зробив, бо його теж не було. На жаль, це не виправили.
Wolfpack'08

8

Я в середині подібного питання (до речі, також на арці)

Grub не вдається знайти цей файл і запустити, оскільки він використовує неправильний "префікс"

Ось що ви робите. Ви завантажуєтеся в режим рятувальної роботи з грубу, тоді просто вигадуєте, як зробити його завантаженням.

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

cmdpath=(hd0)
prefix=(hd1,msdos3)/boot/grub
root=hd1,msdos3

Тепер префікс - це змінна, де grub шукає файл normal.mod. У моєму випадку hd1, msdos3 - це те саме, що / dev / sdb3 (аналогічно hd0, msdos1 було б / dev / sda1), що ви можете зробити, щоб побачити список дійсних розділів, введіть у ls

Тепер у моєму випадку знову встановлено grub на / dev / sdb1, який було встановлено як / boot у моєму розділі архів , тому правильним префіксом буде (hd1, msdos1) / grub

Тому для завантаження мені потрібно зробити це:

set prefix=(hd1,msdos1)/grub
insmod normal
normal

У вашому випадку вам доведеться або згадати, або здогадатися, на якому розділі ви встановили grub. Ви можете здогадатися неправильно, це не принесе шкоди, команда insmod просто не вдасться, і ви можете спробувати ще раз з іншим розділом.

Після цього гриб завантажується як слід, і я можу вибрати зі списку те, що хочу завантажувати. Зазвичай, коли відбувається такий безлад, перевстановлення grub на ваш mbr (за допомогою grub-install ) має виправити його назавжди, тому вам не доведеться робити це кожного разу при завантаженні. Однак у мене виникають великі труднощі з тим, щоб дізнатися, що робити, якщо виправити це не так просто (або я поділюсь тим, що ви повинні зробити).

Тільки якщо це не вдасться (наприклад, якщо префікс правильний, але ви все ще не можете завантажуватись), вам слід вдатися до живих або врятувати компакт-диски, щоб вирішити проблему (краще цього уникати)


Це може бути трохи старим питанням, але я виявив, що хтось повинен відповісти, як насправді використовувати рятувальну роботу з ґрунту, а не збиватися, використовуючи живі CD та usbs для виправлення речей. У нас не завжди є живі засоби масової інформації, які допомагають нам, і навіть якщо ми це робимо, зазвичай краще працювати в нашому бажаному середовищі.
Cestarian

Чудове пояснення! (Особливо примітка про "здогадування неправильного нічого не зашкодить"). Я зіткнувся з тією ж проблемою із системою подвійного завантаження Windows + Ubuntu, помилково подумавши, що видалення розділу Windows не вплине на Ubuntu. У будь-якому разі ця публікація справді допомогла зрозуміти, як виправити помилку. Оскільки я не міг пригадати, на якому розділі міститься grub, я просто перерахував їх ls, а потім спробував їх по черзі, поки не потрапив у правильну комбінацію :-)
Leigh

@Leigh радий, що це комусь допомогло :)
Cestarian

1
Виправити щось завжди добре, але розуміти, як ви це виправили, ще краще :-) Привіт.
Лі

Ви геній
Ашіш Донерія

5

Сьогодні у мене виникла ця проблема після нової установки Mint 15.

Інсталятор створив /boot/grub/x86_64-efiмодулі, але не звичайні /boot/grub/i386-pcмодулі.

Повторна інсталяція Grub з Live CD вирішила проблему.

Замініть / dev / sda та / dev / sda1 вашим завантажувальним пристроєм та завантажуючим розділом та виконайте такі команди з Live CD:

sudo mount /dev/sda1 /mnt
sudo grub-install --boot-directory=/mnt /dev/sda
sudo reboot

1

Дякуємо за ваш пост Я вирішив майже однакове повідомлення про помилку - "файл" /grub2/i386-pc/normal.mod "не знайдено" після нової установки Linux CentOS 5.11 на старий комп'ютер Dell Optiplex з Windows Vista, щоб зробити подвійний -завантажувальна система.

Моя ситуація ускладнила те, що я вже спробував і не зміг встановити новіший дистрибутив Fedora 20, який використовує GRUB2 замість GRUB (LEGACY), на розділи за замовчуванням FEDORA. Потім я спробував встановити CentOS безпосередньо над цим, зберігаючи розділ Windows і перезаписавши розділи FEDORA.

Під час встановлення CentOS я залишив перший (Windows) розділ сам (hd0,0) і створив каталог / boot на другому (завантажувальному) розділі (hd0,1). Тоді я вирішив не змінювати MBR в той час, і натомість вибрав інший варіант (завантажувач на іншому розділі).

Після того, що встановлення виявилося успішним, воно перезавантажилося в помилку, описану вище.

Я підозрюю, що інформація про завантаження на першому розділі постійно вказувала на місце GRUB2. Процесор не зміг знайти normal.mod, можливо, тому, що раніше створені розділи FEDORA00 були видалені.

Ось мої кроки:

  1. Завантажте з мого компакт-диска встановлення Centos 5 в режим порятунку ("порятунок Linux").

  2. Монтуйте локальний привід: chroot / mnt / sysimage

  3. Перехід у режим однокористувача: su

  4. Оновіть встановлення CentOS: yum update

  5. Використовуйте редактор emacs, щоб додати "Microsoft Windows Vista" у файл grub.conf: emacs /boot/grub/grub.conf і зробити Vista для ОС за замовчуванням.

    ( ПРИМІТКА: Див. Www.cyberciti.biz/faq/grubconf-for-windows-vista-or-xp-dual-boot/ та https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/6/html /Installation_Guide/sn-medialess-editing-grub-conf.html .)

  6. Спроба оновити MBR: grub-install / dev / hda

  7. Перезавантажте до невстановленої помилки GRUB, в якій процесор завис після відображення "GRUB".

  8. Перезавантажте систему з оригінального інсталяційного диска Windows Vista (або іншого диска для відновлення Windows) та виберіть опцію для відновлення диска. Отримайте повідомлення про те, що MBR відремонтовано.

  9. Перезавантажте програму Windows Vista.

Я впевнений, що більш елегантні рішення існують, але це працювало для мене. Я також спробував завантажити пакет міграції GRUB to GRUB2, як описано на сторінці http://help.ubuntu.com/community/Grub2/Upgrading , спробувавши:

$ yum install grub-pc

Але пакет не зміг знайти. Можливо, я мав би просто спробувати yum install grub.


0

Додавання до flittermice ...

якщо ви завантажуєтесь із USB та маєте папку i386, ви можете відкрити папку i386 на розбитому розділі як корінь, а потім скопіювати робочу папку i386 з usb.


0

Я потрапив у свою систему CentOS 6.7 в два етапи. По-перше, я дотримувався рекомендації з flittermice вище, завантажився з живого компакт-диска, встановив мій / dev / sda2 as / mnt і просто скопіював папку i386-pc з / mnt / usr / ... (ви можете знайти, де ваш від find /|grep i386) до / завантажувати / grub та перезавантажувати.

Це дало мені grub> замість порятунку від grub> ;-).

Потім я дотримуюся довідника [ https://www.linux.com/learn/tutorials/776643-how-to-rescue-a-non-booting-grub-2-on-linux/], щоб знайти та завантажитися в моя перегородка. Це було (hd0,2), тому що (hd0,1) було взято свопом.

Пізніше я зрозумів, що зробити це завантаження "автоматичним" було неможливо, ймовірно, тому, що мій / boot був на ext4 з розміром inode 256, а старий grub1 вимагає 128. Я спробую виконати деякі команди з [ http: // kb.kristianreese.com/index.php?View=entry&EntryID=113] для підготовки розділу до встановлення.


0

Перевстановіть Ubuntu. Перейдіть на «щось інше». Виберіть інсталяційний розділ Windows як місце, де він повинен встановити завантажувач.

Якщо у вас є наявна установка Windows, ви повинні встановити grub до того ж розділу; інакше у вас виникне проблема, яку ви бачите в питанні.

Це стосується 14, 15, 16, 17 Ubuntu усіх версій та, ймовірно, попередніх версій. На запитання, де встановити завантажувач, не створюйте та не вибирайте розділ / boot; натомість використовуйте розділ Windows.

Дякую.


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