La première, c'est que, pour être utilisable dans un contexte de BIOS où le code primaire de démarrage doit être tout petit (512 octets), GRUB utilise l'approche suivante :
le firmware charge et exécute le secteur d'amorçage contient une amorce vers l'image principale de GRUB ;
cette image principale est construite sur mesure à l'installation pour pouvoir lire le système de fichier où est situé /boot/grub, et installée là où GRUB peut trouver une place pour la mettre : dans l'espace intersticiel entre la table et la première partition pour BIOS/MBR, dans une partition dédiée pour BIOS/GPT, dans une partition EFI pour UEFI/GPT ;
l'image principale charge dynamiquement depuis /boot/grub les modules supplémentaires dont elle a besoin pour faire son travail : png, gfxterm, linux.
L'image principale de GRUB, que l'on peut comparer à un noyau Linux sans initrd, est donc construite sur mesure, de façon à :
intégrer les modules nécessaires pour accéder à /boot/grub, par exemple : biosdisk, part_gpt, lvm, ext2 ;
ne pas intégrer de modules inutiles pour ne pas peser trop lourd parce qu'elle doit être installée dans un endroit potentiellement étroit.
Conséquence de cela, si l'image principale de GRUB doit être signée, cela ne peut être fait qu'à l'installation, sur la machine de l'utilisateur.
La deuxième chose, c'est que GRUB 2 est sous licence GPLv3, qui a été entre autre conçue pour empêcher les tentatives de verrouillage des logiciels, selon une technique nommée tivoïsation, historiquement introduite par Tivo mais plus connue par son déploiement massif de la part d'Apple. Selon cette licence, il est donc permis de distribuer un GRUB 2 signé pour un ordinateur qui n'accepterait de démarrer que des binaires signés, à condition de distribuer également à l'utilisateur de quoi signer lui-même ses propres versions modifées.
[^] # Re: Il ne manque plus qu'une clé pour le secure boot.
Posté par 🚲 Tanguy Ortolo (site web personnel) . En réponse au journal Sortie de Grub 2.00. Évalué à 10.
Deux choses.
La première, c'est que, pour être utilisable dans un contexte de BIOS où le code primaire de démarrage doit être tout petit (512 octets), GRUB utilise l'approche suivante :
/boot/grub, et installée là où GRUB peut trouver une place pour la mettre : dans l'espace intersticiel entre la table et la première partition pour BIOS/MBR, dans une partition dédiée pour BIOS/GPT, dans une partition EFI pour UEFI/GPT ;/boot/grubles modules supplémentaires dont elle a besoin pour faire son travail : png, gfxterm, linux.L'image principale de GRUB, que l'on peut comparer à un noyau Linux sans initrd, est donc construite sur mesure, de façon à :
/boot/grub, par exemple : biosdisk, part_gpt, lvm, ext2 ;Conséquence de cela, si l'image principale de GRUB doit être signée, cela ne peut être fait qu'à l'installation, sur la machine de l'utilisateur.
La deuxième chose, c'est que GRUB 2 est sous licence GPLv3, qui a été entre autre conçue pour empêcher les tentatives de verrouillage des logiciels, selon une technique nommée tivoïsation, historiquement introduite par Tivo mais plus connue par son déploiement massif de la part d'Apple. Selon cette licence, il est donc permis de distribuer un GRUB 2 signé pour un ordinateur qui n'accepterait de démarrer que des binaires signés, à condition de distribuer également à l'utilisateur de quoi signer lui-même ses propres versions modifées.