La plupart des distributions installent un chargeur de démarrage supplémentaire sur un système UEFI. UEFI lui-même est un chargeur de démarrage, il propose un menu pour sélectionner différents systèmes d'exploitation ou noyaux individuels. De plus, les paramètres UEFI peuvent facilement être modifiés avec des outils de l'espace utilisateur comme efibootmgr
.
Les noyaux depuis 3.3 prennent en charge EFI_STUB, ce qui signifie que le noyau peut être chargé directement à partir de l'UEFI. Quelle est la raison pour laquelle les distributions décident d'utiliser un chargeur de démarrage supplémentaire? La plupart des didacticiels sur Linux / UEFI se concentrent principalement sur la façon de configurer le chargeur de démarrage supplémentaire (rEFInd, grub2, ELILO, etc.) au lieu de démarrer Linux avec EFI_STUB.
La seule chose qui manque dans les distributions est le support. Comme la plupart des distributions chaînent un deuxième chargeur de démarrage, le noyau n'est pas ajouté au menu de démarrage UEFI, ni copié sur la partition système EFI.
Trois scripts suffisent pour faire toute la magie. Celui qui copie les initramfs sur l'ESP. Un second copie le noyau dans l'ESP et crée une nouvelle entrée dans le menu de démarrage UEFI. Le troisième script supprime l'ancien noyau et initramfs de l'ESP et supprime l'entrée du menu de démarrage UEFI. Cela permet des mises à jour / purges entièrement automatisées du noyau / initramfs sans interaction de l'utilisateur. J'utilise cette approche depuis plus d'un an et elle a parfaitement fonctionné.
Pourquoi la plupart des distributions utilisent-elles grub au lieu de EFI_STUB?
Liens:
EDIT: Je ne parle pas de supprimer complètement le support de grub, mais d'offrir un choix à ceux qui souhaitent l'utiliser pour diverses raisons. Les distributions pourraient fournir un package grub-efi
pour ceux qui veulent chaîner UEFI et grub et un package efistub-boot
contenant les scripts que j'ai mentionnés ci-dessus.