11

Я недавно установил Fedora 18 с помощью загрузки EFI. Как и другие текущие дистрибутивы Linux, он настраивает GRUB2 для меня.

У меня есть опыт переустановки BIOS версии GRUB, когда что-то идет не так. Я знаю, например, как загрузить аварийный диск, выполнить chroot в установленной системе, запустить grub-install и, возможно, update-grub / grubby / grub-mkconfig .

Как мне переустановить EFI версию GRUB, если что-то пойдет не так? (Я знаю, что что-то пойдет не так, я их сломаю).

4 ответа4

9

Во-первых, вам понадобится EFI-загруженная система Linux. Если у вас все еще есть исходный установочный носитель (CD/DVD/USB-флешка), на нем обычно должна быть соответствующая спасательная система. Это может даже иметь возможность ремонта одним щелчком :).

Кроме того, сообщество Ubuntu предоставляет автоматический образ для восстановления загрузки . Он утверждает, что поддерживает Fedora. Если вы хотите знать, что на самом деле делает, я предлагаю вам прочитать это стороннее объяснение заранее.

Однако я использовал спасательную систему общего назначения с консольными инструментами. Помимо поддержки загрузки EFI, я убедился, что efibootmgr находится в списке пакетов. Он называется GRML и основан на Debian. Вот информация об инструментах консоли и grub-efi, которые я обнаружил, когда спасал свою систему Fedora:

  1. При запуске системы Fedora 18, загруженной EFI, не запускайте grub2-install. Он будет претендовать на успех, но сломает загрузочную систему Fedora grub-efi.

    • Файл /boot/EFI/fedora/grub.efi устанавливается пакетом grub-efi. Если вы хотите переустановить его, используйте yum reinstall grub-efi (Чтобы сделать это из общей спасательной системы, вы можете сделать это после mount и chroot в вашу установленную систему Fedora). Fedora grub-efi использует файл конфигурации /boot/EFI/fedora/grub.cfg (предположительно, сгенерированный grubby). Fedora в EFI не будет создавать файл в /boot/grub2/grub.cfg . Запуск grub2-install заменит grub.efi образом, который пытается прочитать /boot/grub2/grub.cfg , и, следовательно, завершится ошибкой.

    • grub2-install устанавливает загрузочную запись EFI для grub.efi . Однако, если вы не отключили Secure Boot в вашей прошивке, сертифицированной для Windows 8, эта запись не сможет загрузиться. Вместо этого вам нужно загрузить shim.efi (игнорируйте shim-fedora.efi , я точно не знаю, что это). Увидеть ниже.

  2. Вы можете потерять свою загрузочную запись EFI для Fedora, если ваши настройки прошивки сброшены. (Вручную, либо путем обновления прошивки, либо из-за того, что прошивка глючит - последнее сообщалось в дикой природе). Вот как вручную создать загрузочную запись EFI для Fedora с безопасной загрузкой:

    $ sudo efibootmgr -c -L Fedora -d /dev/sda -p 100 -l \\EFI\\fedora\\shim.efi
    

    В этом примере используется номер раздела 100 на первом стандартном диске, распознаваемом Linux. Вам следует настроить параметры -d /dev/sda и -p 100 чтобы определить файловую систему, которую Fedora монтирует в /boot/efi . Это системный раздел EFI. Установщик Fedora создаст специальный ESP для вашей установки Fedora отдельно от ESP, используемых любой другой операционной системой. (Это отличается от Ubuntu и OpenSUSE).

    Обратите внимание, что команда efibootmgr требует, чтобы вы запускали ее из системы с загрузкой EFI.

5

Если у вас двойная загрузка с UEFI Windows, есть еще одна возможность. который не требует восстановления диска.

Вы можете загрузиться в Windows, открыть командную строку с правами администратора и выполнить следующую команду:

bcdedit /set {bootmgr} path \EFI\fedora\shim.efi

Это заменит загрузочную запись Windows в UEFI на загрузочную в GRUB. Предполагая, что ваше меню GRUB включает рабочую запись для Windows, теперь у вас есть работающая двойная загрузка :-). Надеюсь, все это будет работать без отключения Secure Boot.

Я только что должен был сделать это сам после обновления Windows, и, похоже, все получилось.

Источник и дополнительная информация: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/.

1

https://fedoraproject.org/wiki/GRUB_2?rd=Grub2#Updating_GRUB_2_configuration_on_UEFI_systems:

dnf reinstall grub2-efi grub2-efi-modules shim

(при условии, что эти пакеты уже установлены и предыдущая конфигурация существует)

0

Просто для простоты вот все, что вы делаете:

yum reinstall grub2-efi

НЕ запускайте grub2-install, это сломает вашу систему, предоставив вам пустое меню загрузки grub (это потому, что grub2-install выдаст вам плохой / общий файл .efi, который пытается загрузить grub.cfg из неправильного места.

Кроме того, вы можете обновить ваш grub-config, если вы мигрировали на новые диски или ваш раздел / макет изменился с помощью:

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .