Posté par Pseudo007 .
En réponse à la dépêche Fedora 31 est sortie !.
Évalué à 4.
Dernière modification le 31 octobre 2019 à 13:43.
(c'est uniquement pour vous mettre l'eau à la bouche)
Ce n'est pas une nouveauté f31, mais f30 ou f29, que j'ai raté car je suis passé de f29 à f31 (oui c'est mal).
Quand on ajoute un noyau à son GNU/Linux chéri, vous savez comment ça se passe, il faut changer grub.cfg. C'est fait, sous Fedora, par une usine à gaz nommée grubby. Si c'est automatisé et que les programmes font bien leur job, ce n'est pas vraiment souci. Mais si vous ajoutez à la main un noyau, etc.
Comment ça marche concrètement ?
Si j'ajoute un noyau (avec son initrd) à ma machine, il me suffit de déposer un fichier qui décrit ce noyau dans /boot/loader/entries/ . Le nom du fichier doit être machineId_CeQueVousVoulez.conf. machineId est à récupérer de /etc/machine-id.
Exemple de fichier :
$ cat /boot/loader/entries/16218b18041341aa845c9ed438f5c154-5.3.7-301.fc31.x86_64.conf
title Fedora (5.3.7-301.fc31.x86_64) 31 (Thirty One) version 5.3.7-301.fc31.x86_64
linux /boot/vmlinuz-5.3.7-301.fc31.x86_64
initrd /boot/initramfs-5.3.7-301.fc31.x86_64.img
options $kernelopts
grub_users $grub_users
grub_arg --unrestricted
grub_class kernel
Si vous supprimez le noyau, il vous suffit de supprimer le ficher pour qu'il n'apparaisse plus dans grub lors du boot.
Un lecteur attentif aura remarqué qu'on n'a pas tout pour pouvoir booter, notamment il manque la partition root. Quand on ajoute un noyau, on ne change pas de root, donc l'information n'a pas à être dans ce fichier. Néanmoins c'est récupéré dans la variable $kernelopts qui est définit dans grub.cfg.
Dans mon grub.cfg j'ai :
set default_kernelopts="root=UUID=033fead8-f5bf-4433-a108-74c7359b96c1 ro rd.md.uuid=8ac3b7b8-1bc9-7973-15a8-1361718c00ae"
Comment grub prend en compte les fichiers dans /boot/loader/entries ?
Il le fait lors du boot et va créer "à la volée" une entrée grub classique (qu'on pourra éditer avec grub au boot si nécessaire) genre :
menuentry 'Fedora 31' ... {
set root=...
linux /boot/vmlinuz-... root=...
initrd /boot/initramfs-...
}
C'est demandé dans le fichier grub.cfg par :
insmod blscfg
blscfg
Et voilà !
C'est une petite chose mais je suis ravi de le voir car avant c'est vraiment "hugly".
# Boot Loader Specification (blscfg de grub2)
Posté par Pseudo007 . En réponse à la dépêche Fedora 31 est sortie !. Évalué à 4. Dernière modification le 31 octobre 2019 à 13:43.
(c'est uniquement pour vous mettre l'eau à la bouche)
Ce n'est pas une nouveauté f31, mais f30 ou f29, que j'ai raté car je suis passé de f29 à f31 (oui c'est mal).
Quand on ajoute un noyau à son GNU/Linux chéri, vous savez comment ça se passe, il faut changer grub.cfg. C'est fait, sous Fedora, par une usine à gaz nommée grubby. Si c'est automatisé et que les programmes font bien leur job, ce n'est pas vraiment souci. Mais si vous ajoutez à la main un noyau, etc.
Donc Fedora utilise maintenant Boot Loader Specification :
https://systemd.io/BOOT_LOADER_SPECIFICATION
Comment ça marche concrètement ?
Si j'ajoute un noyau (avec son initrd) à ma machine, il me suffit de déposer un fichier qui décrit ce noyau dans /boot/loader/entries/ . Le nom du fichier doit être machineId_CeQueVousVoulez.conf. machineId est à récupérer de /etc/machine-id.
Exemple de fichier :
Si vous supprimez le noyau, il vous suffit de supprimer le ficher pour qu'il n'apparaisse plus dans grub lors du boot.
Un lecteur attentif aura remarqué qu'on n'a pas tout pour pouvoir booter, notamment il manque la partition root. Quand on ajoute un noyau, on ne change pas de root, donc l'information n'a pas à être dans ce fichier. Néanmoins c'est récupéré dans la variable $kernelopts qui est définit dans grub.cfg.
Dans mon grub.cfg j'ai :
set default_kernelopts="root=UUID=033fead8-f5bf-4433-a108-74c7359b96c1 ro rd.md.uuid=8ac3b7b8-1bc9-7973-15a8-1361718c00ae"
Comment grub prend en compte les fichiers dans /boot/loader/entries ?
Il le fait lors du boot et va créer "à la volée" une entrée grub classique (qu'on pourra éditer avec grub au boot si nécessaire) genre :
C'est demandé dans le fichier grub.cfg par :
Et voilà !
C'est une petite chose mais je suis ravi de le voir car avant c'est vraiment "hugly".