Я недавно установил арку (надеюсь, успешно) на моей машине. Когда я пошел, чтобы перезагрузить, однако, у меня была проблема. У меня черный экран с надписью
Grub loading.
Welcome to GRUB!
error: file '/grub/i386-pc/normal.mod' not found.
Entering rescue mode...
grub rescue>
С тех пор я гуглил в поисках ответа. Я почти нашел его здесь на форумах Ubuntu, но затем я увидел один из комментариев, в котором говорилось, что это неправда. Есть и другой ответ, но я не уверен, хочу ли я установить с live CD из-за боязни испортить вещи.
Вы бы поняли мой страх, если бы вы потратили 7 часов на его настройку после постоянных проблем с разделами, командами, учебными пособиями и проблемами системы. Какая радость
Кто-нибудь знает простое решение, чтобы заставить работать grub?
grub-install
. Вам не нужно повторять какие-либо шаги, просто используйте их в качестве руководства для получения привязки с liveCD.Ответы:
Действительно раздражающая вещь ...
Поскольку каталог / boot / grub / i386-pc, по-видимому, просто не был на месте, я наконец решил эту проблему, скопировав весь / usr / lib / grub / i386-pc в / boot / grub. Это все.
источник
Я нахожусь в середине подобной проблемы (между прочим также на арке)
Grub не может найти этот файл и запустить, потому что он использует неправильный «префикс»
Вот что ты делаешь. Вы загружаетесь в режим grub rescue, затем просто выясняете, как заставить его загрузиться.
Сначала вы запустите set, в нем будут перечислены переменные, например, моя
Теперь префикс - это переменная, в которой grub ищет файл normal.mod. В моем случае hd1, msdos3 такой же, как / dev / sdb3 (аналогично, hd0, msdos1 будет / dev / sda1), что вы можете сделать, чтобы увидеть список допустимых разделов, типа ls
Теперь, в моем случае, снова, grub был установлен в / dev / sdb1, который был смонтирован как / boot в моем разделе arch, поэтому правильный префикс будет (hd1, msdos1) / grub
Поэтому для загрузки мне нужно сделать следующее:
В вашем случае вам придется либо вспомнить, либо угадать, на какой раздел вы установили grub. Вы можете угадать неправильно, это не принесет никакого вреда, команда insmod просто потерпит неудачу, и вы можете повторить попытку с другим разделом.
После этого grub загружается как обычно, и я могу выбрать из списка, что я хочу загрузить. Обычно, когда происходит такой беспорядок, переустановка grub на ваш mbr (с помощью grub-install ) должна исправить это навсегда, чтобы вам не приходилось делать это каждый раз при загрузке. Однако мне очень трудно понять, что делать, если исправить это не так просто (или я поделюсь с вами тем, что вы должны сделать).
Только если это не удается (например, если префикс правильный, но вы все еще не можете загрузиться), вы должны прибегнуть к использованию живых или спасательных компакт-дисков, чтобы обойти проблему (лучше всего этого избежать)
источник
ls
, затем попробовал их один за другим, пока не нашел правильную комбинацию :-)У меня только что была эта проблема сегодня после новой установки Mint 15.
Установщик создал
/boot/grub/x86_64-efi
модули, но не обычные/boot/grub/i386-pc
модули.Переустановка Grub с Live CD исправила проблему.
Замените / dev / sda и / dev / sda1 вашим загрузочным устройством и загрузочным разделом и выполните следующие команды с Live CD:
источник
Спасибо за ваш пост. Я решил почти идентичное сообщение об ошибке - «файл» /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 были удалены.
Вот мои шаги:
Загрузитесь с моего установочного компакт-диска Centos 5 в режиме восстановления («linux rescue»).
Смонтируйте локальный диск: chroot / mnt / sysimage
Переключиться в однопользовательский режим: su
Обновите установку CentOS: обновление yum
Используйте редактор 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 .)
Попытка обновить MBR: grub-install / dev / hda
Перезагрузитесь с неизвестной ошибкой GRUB, при которой процессор завис после отображения «GRUB».
Перезагрузитесь с исходного установочного диска Windows Vista (или другого диска восстановления Windows) и выберите вариант восстановления диска. Получите сообщение, что MBR был восстановлен.
Перезагрузитесь правильно в Windows Vista.
Я уверен, что существуют более элегантные решения, но это сработало для меня. Я также попытался загрузить пакет миграции с GRUB на GRUB2, как описано на сайте http://help.ubuntu.com/community/Grub2/Upgrading , попытавшись:
Но он не смог найти посылку. Возможно, я должен был просто попытаться
yum install grub
.источник
Добавление к flittermice ...
Если вы загружаетесь с USB-диска и у вас есть папка i386, вы можете открыть папку i386 в поврежденном разделе как root, а затем скопировать рабочую папку i386 с usb.
источник
Я попал в мою систему CentOS 6.7 в два этапа. Во-первых, я последовал совету flittermice выше, загрузился с live CD, подключил мой / dev / sda2 как / mnt и просто скопировал папку i386-pc из / mnt / usr / ... (вы можете найти, где находится ваш по
find /|grep i386
) в / boot / grub и перезагрузился.Это дало мне grub> вместо grub rescue> ;-).
Затем я следовал руководству здесь [ 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] для подготовки раздела перед установкой.
источник
Переустановите Ubuntu. Перейти к "сделать что-то еще". Выберите установочный раздел Windows в качестве места, где он должен установить загрузчик.
Если у вас есть существующая установка Windows, вы должны установить grub в тот же раздел; в противном случае у вас будет проблема, увиденная в вопросе.
Это актуально для 14, 15, 16, 17 Ubuntu всех версий и, возможно, более ранних версий. Когда вас спросят, где установить загрузчик, не создавайте и не выбирайте раздел / boot; вместо этого используйте раздел Windows.
Спасибо.
источник
Попробуйте live grub cd: http://ccm.net/faq/2677-super-grub-disk-live-cd Тогда терминал: cp -r / usr / lib / grub / i386-pc / boot / grub был Единственное, этот метод работал для меня.
источник