Comment pourrais-je réinstaller le chargeur de démarrage grub-efi sur Fedora Linux?

12

J'ai récemment installé Fedora 18 en utilisant le démarrage EFI. Comme les autres distributions Linux actuelles, il configure GRUB2 pour moi.

J'ai de l'expérience avec la réinstallation de la version BIOS de GRUB lorsque les choses tournent mal. Je sais par exemple comment démarrer un disque de secours, chrooter dans le système installé, exécuter grub-installet éventuellement update-grub/ grubby/ grub-mkconfig.

Comment réinstaller la version EFI de GRUB en cas de problème? (Je sais que les choses vont mal se passer: je les brise).

sourcejedi
la source
Pourquoi avez-vous posé une vague question et y avez-vous immédiatement répondu? Bien que la réponse fournisse des informations utiles, la question a vraiment besoin d'être élucidée: savoir que vous avez changé quelque chose n'est pas suffisant. Comprendre précisément ce qui a été changé est vraiment nécessaire pour fournir une bonne réponse à la question.
Rod Smith,
@RodSmith merci d'avoir répondu à mon email sur EFI plus tôt :). Et pour avoir ajouté votre commentaire aux votes négatifs. La question avec laquelle j'ai commencé était littéralement la suivante. J'ai de l'expérience avec la réinstallation de grub-pc. Je veux avoir le même niveau de confiance, que je sais récupérer un système EFI. J'ai édité la question une fois pour souligner qu'il s'agissait de réinstaller grub ... Je suppose que je devrais réessayer et être plus explicite sur mon motif.
sourcejedi
Pourquoi utilisez-vous grub si vous avez UEFI? Quel avantage offre le chaînage des deux chargeurs de démarrage?
Marco
@Marco UEFI n'est pas le chargeur de démarrage pris en charge par aucune distribution Linux que je connaisse! Fedora met à jour GRUB automatiquement lorsqu'il installe un nouveau noyau et installe les options de démarrage nécessaires comme root =. Cela ne fait pas cela pour EFI. Je pourrais abandonner la prise en charge de la distribution et utiliser l'analyse automatique de REFIND avec les options du noyau dans refind.conf , mais cela continuerait de chaîner le chargeur / gestionnaire de démarrage! Et Microsoft ne signe pas les pilotes GPL, donc Secure Boot doit aller SHIM-> chargeur de démarrage-> Linux de toute façon, et vous voulez vraiment un menu de démarrage après la partie UEFI-> SHIM.
sourcejedi
Après avoir installé un nouveau noyau, un seul appel à efibootmgrest suffisant pour mettre à jour l'entrée dans le menu UEFI. Je ne connais pas rEFInd ou SHIM. Personnellement, je ne chaîne pas plusieurs chargeurs de démarrage. Tous les systèmes d'exploitation sont ajoutés au menu de démarrage UEFI et cela fonctionne parfaitement bien.
Marco

Réponses:

9

Tout d'abord, vous aurez besoin d'un système Linux démarré par EFI . Si vous avez toujours votre support d'installation d'origine (CD / DVD / clé USB), cela devrait généralement inclure un système de secours adéquat. Il pourrait même avoir une option de réparation en un clic :).

Alternativement, la communauté Ubuntu fournit une image de réparation de démarrage automatique . Il prétend soutenir Fedora. Si vous voulez savoir ce qu'il fait réellement, je vous suggère de lire cette explication tierce à l'avance.

Cependant, j'ai utilisé un système de sauvetage à usage général avec des outils de console. En plus de prendre en charge le démarrage EFI, je me suis assuré qu'il efibootmgrfigure dans la liste des packages . Il s'appelait justement GRML et était basé sur Debian. Voici les informations sur les outils de console et grub-efi que j'ai découvert lors du sauvetage de mon système Fedora:

  1. Lorsque vous exécutez un système Fedora 18 démarré par EFI, ne l'exécutez pasgrub2-install . Il revendiquera le succès, mais il brise le système de démarrage Fedora grub-efi.

    • Le fichier /boot/EFI/fedora/grub.efiest installé par le package grub-efi. Si vous ne souhaitez réinstaller, utilisez yum reinstall grub-efi. (Pour ce faire , à partir d' un système de secours générique, vous pouvez le faire après mountING et chrooting dans votre système Fedora installé). Fedora grub-efi utilise le fichier de configuration /boot/EFI/fedora/grub.cfg(probablement généré par grubby). Fedora sur EFI ne générera pas de fichier à /boot/grub2/grub.cfg. L'exécution grub2-installremplacera grub.efi par une image qui essaie de lire /boot/grub2/grub.cfg, et échouera donc.

    • grub2-installinstalle une entrée de démarrage EFI pour grub.efi. Cependant, si vous n'avez pas désactivé le démarrage sécurisé dans votre micrologiciel certifié Windows 8, cette entrée ne démarrera pas. Vous devez shim.efiplutôt démarrer (ignorer shim-fedora.efi, je ne sais pas exactement ce que c'est). Voir ci-dessous.

  2. Vous pouvez perdre votre entrée de démarrage EFI pour Fedora si les paramètres de votre firmware sont réinitialisés. (Manuellement, ou par mise à niveau du firmware, ou parce que le firmware est buggé - ce dernier a été signalé dans la nature). Voici comment créer manuellement une entrée de démarrage EFI pour Fedora avec un démarrage sécurisé:

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

    Cet exemple utilise la partition numéro 100 sur le premier disque standard reconnu par Linux. Vous devez ajuster les options -d /dev/sdaet -p 100identifier le système de fichiers sur lequel Fedora se monte /boot/efi. Il s'agit d'une partition système EFI. Le programme d'installation de Fedora aura créé un ESP dédié pour votre installation Fedora, distinct des ESP utilisés par tout autre système d'exploitation. ( Ceci est différent d'Ubuntu et d'OpenSUSE ).

    Notez que la efibootmgrcommande nécessite que vous l'exécutiez à partir d'un système démarré par EFI.

sourcejedi
la source
"Notez que la commande efibootmgr nécessite que vous l'exécutiez à partir d'un système démarré par EFI." - dans ce cas, comment "bootstrap" un système démarré par EFI? (mon USB actuel ne démarre pas lors de la sélection de l'option UEFI)
jozxyqk
1
Le support d'installation est le moyen pris en charge pour démarrer votre système. Je pense que vous devriez également pouvoir démarrer un système EFI sans installer de variables de firmware EFI, cela implique de créer /EFI/boot/bootx64.efi(en supposant UEFI 64 bits). C'est exactement ainsi que fonctionnent les supports d'installation USB (autre chose que les CD / DVD). Il pourrait être suffisant de copier shim.efi là-bas, mais je ne sais pas si cela est configuré pour fonctionner ou non.
sourcejedi
5

Si vous effectuez un double démarrage avec Windows UEFI, il existe une autre possibilité. qui ne nécessite pas de disque de récupération.

Vous pouvez démarrer sous Windows, ouvrir une ligne de commande avec des privilèges d'administrateur et exécuter la commande suivante:

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

Cela remplacera l'entrée de démarrage Windows dans UEFI, par une qui démarre dans GRUB. En supposant que votre menu GRUB comprend alors une entrée fonctionnelle pour Windows, vous avez maintenant un double démarrage fonctionnel :-). Espérons que cela devrait fonctionner sans désactiver le démarrage sécurisé.

Je viens de devoir le faire moi-même après une mise à jour Windows et cela semble avoir fait l'affaire.

Source et plus d'informations: http://nwrickert2.wordpress.com/2013/05/13/notes-on-uefi-windows-and-linux/ .

ternaryOperator
la source
Alternativement, consultez les deux solutions décrites sur askubuntu.com/a/799734/462004 (en utilisant EasyUEFI ou comment changer l'ordre de démarrage en utilisant à la bcdedit.exeplace de l'entrée Windows comme votre commande le fait).
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

(en supposant que ces packages sont déjà installés et qu'une configuration précédente existe)


la source
Merci! "Créez une entrée du menu de démarrage: TL; DR: Cela devrait se produire automatiquement" - yay.
sourcejedi
Oh oui, c'est le cas: grub2-mkconfig -o /boot/grub2/grub.cfg(ou sur un système (U) EFI, ce serait quelque chose comme ça grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg.
Désolé, je voulais dire que le wiki implique que la réinstallation du package grub recrée les variables EFI qui sont nécessaires pour démarrer GRUB (qui pourraient avoir besoin d'être recréées par exemple si vous réinitialisez les paramètres "BIOS" pour une raison quelconque). Je ne pense pas avoir essayé dnf reinstall, et si c'est vrai, ça sonne plutôt bien.
sourcejedi
0

Pour faire simple, voici tout ce que vous faites:

yum reinstall grub2-efi

N'exécutez PAS grub2-install, cela cassera votre système en vous présentant un menu de démarrage grub vide (c'est parce que grub2-install vous donnera un fichier .efi incorrect / générique qui essaie de charger grub.cfg à partir du mauvais emplacement.

De plus, vous pouvez mettre à jour votre grub-config si vous avez migré vers de nouveaux disques ou si votre partition / disposition a changé avec:

grub2-mkconfig -o /boot/EFI/fedora/grub.cfg
Areeb Soo Yasir
la source
Agréable de lire une confirmation :). J'ai proposé une modification montrant comment utiliser grub2-mkconfig -o. Je ne sais pas à quel point la réponse simple est utile - pas que la mienne soit strictement plus utile, mais cela suppose que vous êtes toujours en mesure de démarrer le système Fedora d'une manière ou d'une autre, ou vous avez remarqué que vous aviez fait une erreur avant de fermer. (Ma réponse fait signe de la main sur les disques de secours génériques, mais AFAIK vous devez chrooter dans l'installation, en vous assurant de monter tous les systèmes de fichiers nécessaires ... c'est la bonne chose à propos d'un système de sauvetage spécialisé comme l'installateur Debian, il fait le montage + chroot pour vous).
sourcejedi