[UEFI] Bootloaders

Questions et astuces concernant l'installation et la configuration d'archlinux
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

[UEFI] Bootloaders

Message par Moviuro »

Plop,

J'ai l'impression que l'on attend de gummiboot beaucoup trop comparé à ce qu'il est utile de lui faire faire. D'où ce post. (benjarobin, c'est à toi que je pense, notemment)

J'essaye de recenser ici les différents avis sur gummiboot et GRUB ainsi que les avantages/inconvénients de chaque. Je laisserai à des utilisateurs de GRUB le soin de compléter, puisque je ne l'utilise pas.
Ce n'est en rien un topic troll avec "gummiboot ça ne sait rien faire" et "GRUB c'est trop compliqué pour ce que ça fait".

UEFI, c'est une spec qui définit comment un ordinateur moderne doit démarrer :
  • charger un fichier EFI et lui laisser la main
  • émuler l'ancienne méthode complètement déconnante et décoiffante de boot IBM-like ("BIOS")
Gummiboot
Quelques explications :
  • Gummiboot est la contrepartie directe du bazar windowsien dans /boot/bootx64 : c'est un programme qui sait comment démarrer un noyau et un OS qui va avec.
  • Le chaînage, c'est une mauvaise idée (autant charger directement le bon fichier EFI, puisque le firmware sait le faire)
gummiboot est un fichier EFI qui se place dans la partition ESP (EFI system partition) à la position /efi/gummiboot/gummibootx64.efi, la configuration des différents couples OS/noyau se fait dans le même style que syslinux et a l'air de :

Code : Tout sélectionner

title   ArchLinux - signed
linux   /vmlinuz-linux.signed
initrd  /initramfs-linux.img
options root=UUID=73b5d405-ed79-474c-bb6a-e6c137eb9dcd rootflags=subvol=__active/root rw acpi_osi=Linux acpi_backlight=legacy quiet elevator=noop
Gummiboot génère quelques entrées par défaut (entre autres, lancer l'interface de gestion du firmware EFI, lancer un shell EFI, etc.)
Ce n'est pas particulièrement beau, mais ça fait son (petit) boulot http://wstaw.org/w/3gSV/

Pourquoi utiliser gummiboot ?
  • fichiers de configuration simples, dans /boot
  • simple, c'est un fichier EFI
  • it just works (TM)
  • Requiert une compréhension minime de EFI (faut pas faire de conneries)
Limitations :
  • Boot linux simple seulement (pas franchement un problème, puisque le firmware sait faire du réseau, possède une liste de boot, etc.)
  • auto-détection de windows (pas toujours fonctionnelle)
  • Assez peu de documentation
  • Requiert une compréhension minime de EFI (faut lire un peu, oui, et évoluer avec le monde autour de nous)
  • Pas de génération automatique de configuration pour un couple noyau/initrd : la configuration est statique
Mais finalement, ces limitations n'en sont pas réellement : gummiboot n'est là que pour permettre à tous les OS Linux d'avoir un bootloader commun, plutôt que l'on doive tous générer un fichier EFI avec noyau + initrd + options de boot à l'intérieur et inscrire dans la conf du firmware de notre machine une entrée de boot EFI pour chacun de ces couples.
Ce n'est pas le job de gummiboot de booter windows (grosse différence avec BIOS) :
  • Le firmware EFI doit avoir une entrée windows
  • Il suffit alors de passer le menu gummiboot avec Q (sortir du programme gummiboot et lancer la seconde option de boot)

GRUB
Pourquoi utiliser GRUB ?
  • La configuration de GRUB se met à jour automatiquement à chaque MAJ : ça permet de ne pas avoir à écrire un fichier de configuration par noyau. Ce n'est cependant pas si critique sous Arch, puisque (banzaï !) nous n'avons qu'un seul noyau disponible dans /boot
Historique :
  • 2015-03-29 : premières infos sur gummiboot et GRUB
[/size]
Dernière modification par Moviuro le dim. 29 mars 2015, 11:38, modifié 2 fois.
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Avatar de l’utilisateur
waitnsea
Maître du Kyudo
Messages : 2114
Inscription : jeu. 15 mars 2012, 05:08

Re: [UEFI] Bootloaders

Message par waitnsea »

Merci Moviuro,

Bonne référence ICI ?
otacon
Chu Ko Nu
Messages : 466
Inscription : sam. 07 sept. 2013, 19:22
Localisation : Limousin

Re: [UEFI] Bootloaders

Message par otacon »

Merci Moviuro,
A noter que gummiboot convient bien à archlinux, qui ne fait vivre qu'un nom de noyau quel que soit sa version, idem pour le LTS.
Si le nom du noyau change en fonction de sa version, gummiboot doit être modifié à la main à chaque mise à jour, là ou grub le fait automatiquement.
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [UEFI] Bootloaders

Message par Moviuro »

waitnsea a écrit :Merci Moviuro,

Bonne référence ICI ?
C'est pas trop mal, mais pas aussi complet que le wiki : https://wiki.archlinux.org/index.php/Gummiboot
otacon a écrit :Merci Moviuro,
A noter que gummiboot convient bien à archlinux, qui ne fait vivre qu'un nom de noyau quel que soit sa version, idem pour le LTS.
Si le nom du noyau change en fonction de sa version, gummiboot doit être modifié à la main à chaque mise à jour, là ou grub le fait automatiquement.
C'est noté et ajouté au premier post ! :chinois:
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
Avatar de l’utilisateur
benjarobin
Maître du Kyudo
Messages : 17617
Inscription : sam. 30 mai 2009, 15:48
Localisation : Lyon

Re: [UEFI] Bootloaders

Message par benjarobin »

Bonjour,
J'ai l'impression de faire face à une attaque personnelle :copain: :pastaper:
A moins que cela ne m'est échappé, je n'ai jamais dit que Gummiboot était moins bien que Grub... J'ai toujours dis que je préférais Grub, c'est tout :-)
Sinon les points que j’apprécie particulièrement et non ce ne sont pas des Troll, c'est réellement mon point de vue personnel !
  • Générer le fichier grub.cfg est très simple, et rajouter des entrées personnalisées l'est tout autant.
  • Il n'y a ici aussi qu'un seul fichier grub.cfg que l'on peut éditer (oui, oui, on peut l'éditer, il faut juste savoir ce que l'on fait)
  • On peut faire un menu relativement jolie et très facilement
  • On peut afficher le menu grub dans la résolution native de l'écran
  • Quand on utilise le driver propriétaire il est inutile de rajouter des options supplémentaires pour être dans la résolution native de l'écran, Grub le fait pour nous
  • On peut configurer Grub pour qu'il se rappel de la dernière entrée saisie, et on peut très bien exclure certaines entrées
  • On peut depuis Linux indiquer à Grub de redémarrer sur une entrée spécifique, via ssh c'est pratique...
  • Grub permet de lancer tout est n'importe quoi, il est relativement complet
  • Grub permet de travailler avec autant de disque dur que l'on veut, il sait trouver la bonne partition de boot du bon disque grâce aux UUID
Sinon je ne vois pas en quoi le chaînage est une mauvaise idée, c'est beaucoup plus "user friendly". Je n'ai pas que cela à faire quand je veux démarrer sous Windows de me taper 2 menus ou d'appuyer sur une touche du clavier pour faire apparaitre un menu supplémentaire.
Zsh | KDE | PC fixe : AMD Ryzen 9900X, Radeon RX 7700 XT
Titre d'un sujet : [Thème] Sujet (état) / Règles du forum
Moviuro
Elfe
Messages : 765
Inscription : dim. 17 juin 2012, 22:49

Re: [UEFI] Bootloaders

Message par Moviuro »

benjarobin a écrit :Bonjour,
J'ai l'impression de faire face à une attaque personnelle :copain: :pastaper:
Ça me permet aussi de me réconcilier avec GRUB :mrgreen:
  • Générer le fichier grub.cfg est très simple, et rajouter des entrées personnalisées l'est tout autant.
    Oui et non. La syntaxe est trop spécifique (il n'y a que GRUB pour utiliser sa syntaxe. Tout le reste à ma connaissance utilise la syntaxe syslinux : pxelinux, isolinux, gummiboot, LILO (?)...)
  • Il n'y a ici aussi qu'un seul fichier grub.cfg que l'on peut éditer (oui, oui, on peut l'éditer, il faut juste savoir ce que l'on fait)
    Sur gummiboot: un fichier par entrée de boot. Aussi, le grub.cfg, c'est écrit en gros dedans qu'il faut pas l'éditer à la mano... :|
  • On peut faire un menu relativement jolie et très facilement
    Moi j'ai un zoli splash avec gummiboot (si je le laisse booter par défaut)
  • On peut afficher le menu grub dans la résolution native de l'écran
    gummiboot aussi normalement s'adapte à la résolution de l'écran
  • Quand on utilise le driver propriétaire il est inutile de rajouter des options supplémentaires pour être dans la résolution native de l'écran, Grub le fait pour nous
    Pour ce que j'ai vu de gummiboot, il utilise toujours la résolution native, mais des fois, il n'étant pas sa zone d'affichage (le menu utilise le bon nombre de pixels, mais dans un cadre 800x600 dans un coin de l'écran)
  • On peut configurer Grub pour qu'il se rappel de la dernière entrée saisie, et on peut très bien exclure certaines entrées
    Ah tiens, c'est vrai que je ne sais pas quelle entrée a été bootée avec gummiboot :o
  • On peut depuis Linux indiquer à Grub de redémarrer sur une entrée spécifique, via ssh c'est pratique...
    C'est possible d'utiliser EFI pour faire ça (c'est pas le job du bootloader à mon avis) (efibootmgr -n XXX et changer l'entrée par défaut de gummiboot, mais c'est lourd)
  • Grub permet de lancer tout est n'importe quoi, il est relativement complet
    Je ne vois plus l'intérêt à l'époque de l'EFI
  • Grub permet de travailler avec autant de disque dur que l'on veut, il sait trouver la bonne partition de boot du bon disque grâce aux UUID
    EFI gère les disques, grâce à des UUID aussi je crois ; la syntaxe gummiboot aussi, cf mon exemple ; aussi, je comprends pas vraiment le concept de "travailler" avec plusieurs disques : ça veut dire quoi ?
Sinon je ne vois pas en quoi le chaînage est une mauvaise idée, c'est beaucoup plus "user friendly".
Ça n'est pas naturel comme ça pouvait l'être en BIOS : EFI possède une liste d'options bootable, autant s'en servir et ne pas se reposer sur un logiciel qui fait le boot et le café ;)
Je n'ai pas que cela à faire quand je veux démarrer sous Windows de me taper 2 menus ou d'appuyer sur une touche du clavier pour faire apparaitre un menu supplémentaire.
Appuyer sur la touch Q c'est vrai que c'est dur, dès le matin :P
psycho : Latitude E6430 ; BTRFS over LUKS, UEFI & secureboot
schizo : Acer 8942G ; KDE 4, BTRFS over LUKS ; W7 (prend la poussière)
toxo : i5-6600K, bspwm, VM W10 en PCI-passthrough
deadman : Lenovo Thinkcenter, OpenBSD 6.0-stable
popho.be : Kimsufi KS-3, FreeBSD 11.0
Loi de Murphy : Le jour où tu as besoin d'une backup, tu te dis que tu aurais dû en mettre en place
Venez sur IRC en plus du forum !
jean_no
yeomen
Messages : 285
Inscription : dim. 09 sept. 2007, 12:19

Re: [UEFI] Bootloaders

Message par jean_no »

Salut

Gummiboot n'est pas un «bootloader», mais un boot manager. En UEFI, le «bootloader» est l' EFI...
Sinon, pour ma part, je préfère largement rEFInd comme manager de boot.

A+
otacon
Chu Ko Nu
Messages : 466
Inscription : sam. 07 sept. 2013, 19:22
Localisation : Limousin

Re: [UEFI] Bootloaders

Message par otacon »

J'ai du mal à trouver un interêt à rEFInd.
Répondre