Як я можу встановити завантажувач grub-efi на Fedora Linux?


12

Нещодавно я встановив Fedora 18 за допомогою завантажувача EFI. Як і інші поточні дистрибутиви Linux, він встановлює для мене GRUB2.

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

Як я можу перевстановити EFI- версію GRUB, коли все піде не так? (Я знаю, що все піде не так: я їх порушую).


Чому ви задали неясне запитання, а потім негайно відповіли на нього? Хоча відповідь надає корисну інформацію, питання справді потребує з'ясування: знаючи, що ви щось змінили , недостатньо. Розуміння того, що було змінено, дійсно необхідно, щоб дати хорошу відповідь на питання.
Род Сміт

@RodSmith дякую за те, що відповів на мій електронний лист про EFI раніше :). І для того, щоб додати свій коментар до коротких записів. Питання, з якого я почав, було буквально таким. Я маю досвід перевстановлення grub-pc. Я хочу мати той самий рівень впевненості, що я знаю, як відновити систему ІФІ. Я відредагував це питання один раз, щоб підкреслити, що мова йшла про перевстановлення grub ... Я думаю, я повинен спробувати ще раз і бути більш чітким щодо мотивів.
sourcejedi

Чому ви користуєтеся крупою, якщо у вас є UEFI? Яку перевагу забезпечує ланцюжок двох завантажувачів?
Марко

@Marco UEFI не завантажувач, який підтримується будь-яким дистрибутивом Linux, який я знаю! Fedora автоматично оновлює GRUB, коли він встановлює нове ядро ​​та встановлює необхідні параметри завантаження, такі як root =. Це не робить для ІФІ. Я міг би відмовитися від підтримки розподілу & використовувати автоматичне сканування REFIND в ж опціях / ядра в refind.conf , але це все одно буде зчеплення завантажувача / менеджерів! І Microsoft не підписувати драйвера GPL, так що безпечна завантаження має йти шім-> завантаження Loader-> Linux в будь-якому випадку, і ви дійсно хочете завантажувальний меню після UEFI-> SHIM частини.
sourcejedi

Після встановлення нового ядра достатньо одного дзвінка efibootmgr, щоб оновити запис у меню UEFI. Я не знаю про rEFInd чи SHIM. Я особисто не зв'язую кілька завантажувачів. Всі операційні системи додані до меню завантаження UEFI, і це працює чудово.
Марко

Відповіді:


9

По-перше, вам знадобиться система Linux з завантаженням EFI . Якщо у вас все ще є оригінальний носій для встановлення (флешка 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. Однак якщо ви не відключили захищене завантаження у прошивці з сертифікатом 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.


"Зверніть увагу, що команда efibootmgr вимагає запустити її із системи, завантаженої EFI." - у такому випадку як ви "завантажуєте" систему, завантажену EFI? (мій поточний USB не завантажується під час вибору опції UEFI)
jozxyqk

1
Встановлення медіа - це підтримуваний спосіб завантаження системи. Я думаю, ви також повинні мати можливість завантажувати систему EFI, не встановлюючи змінні вбудованого програмного забезпечення EFI, це передбачає створення /EFI/boot/bootx64.efi(якщо вважати 64-бітний UEFI). Саме так працює носій USB для встановлення (крім CD-дисків / DVD-дисків). Копіювати shim.efi там може бути достатньо, але я не впевнений, налаштовано це на роботу чи ні.
sourcejedi

5

Якщо ви використовуєте подвійне завантаження з UEFI Windows, є ще одна можливість. якому не потрібен диск для відновлення.

Ви можете завантажитися в Windows, відкрити командний рядок з правами адміністратора та виконати таку команду:

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

Це замінить запис завантаження Windows в UEFI, таким, який завантажується в GRUB. Якщо припустимо, що меню GRUB включає в себе робочий запис для Windows, тепер у вас працює подвійний завантажувач :-). Сподіваємось, це все повинно працювати, не вимикаючи безпечну завантаження.

Я просто повинен був зробити це сам після оновлення Windows, і, здається, зробив свою справу.

Джерело та додаткова інформація: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/ .


Крім того, див. Два рішення, описані на сторінці askubuntu.com/a/799734/462004 (за допомогою EasyUEFI або про те, як змінити порядок завантаження, використовуючи bcdedit.exeзамість запису Windows, як це робить ваша команда).
phk

1

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

dnf reinstall grub2-efi grub2-efi-modules shim

(якщо припустимо, що у вас вже встановлені ці пакети та існує попередня конфігурація)


Спасибі! "Створіть меню меню завантаження: TL; DR: Це повинно відбуватися автоматично" - yay.
sourcejedi

О так, це так: grub2-mkconfig -o /boot/grub2/grub.cfg(або в системі (U) EFI це було б щось на кшталт grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg. Не працювало?

Вибачте, я мав на увазі, що вікі означає, що повторна інсталяція пакету grub знову створює змінні EFI, необхідні для завантаження GRUB (які, можливо, потрібно буде відтворити, наприклад, якщо ви чомусь скинули налаштування "BIOS"). Я не думаю, що я намагався dnf reinstall, і якщо це правда, це звучить досить чудово.
sourcejedi

0

Просто щоб зробити це просто, це все, що ви робите:

yum reinstall grub2-efi

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

Крім того, ви можете оновити конфігурацію grub, якщо ви перейшли на нові диски або ваш розділ / макет змінили за допомогою:

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

Приємно прочитати якесь підтвердження :). Я запропонував редагувати, що показує, як слід використовувати grub2-mkconfig -o. Мені незрозуміло, наскільки корисна проста відповідь - не те, що моя суворо корисніша, але це передбачає, що ти все ще можеш як-небудь завантажувати систему Fedora, або ти помітив, що помилився, перш ніж вимкнутися. (У моїй відповіді ручні хвилі щодо загальних рятувальних дисків, але AFAIK вам потрібно вступити в інсталяцію, переконуючись, що потрібно монтувати будь-які файлові системи ... це приємна річ у спеціалізованій системі порятунку, як установник Debian, вона робить mount + chroot для вас).
sourcejedi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.