#1 Le 11/03/2012, à 01:29
- Arbiel
[Tuto] Amorcer avec ou sans affichage du menu Grub
On sait paramétrer la création du menu Grub pour qu'il amorce directement, sans affichage du menu, sur une entrée définie par défaut. Mais on a plus de difficultés à modifier ce comportement pour faire amorcer le PC sur une autre entrée du menu. Et en cas de dysfonctionnement, on peut même avoir à amorcer le PC à partir d'un support amovible pour venir modifier les fichiers de gestion de Grub et pour exécuter update-grub.
Ceci m'a amené à écrire un script Grub pour modifier son comportement qui devient alors le suivant :
si la touche "ctrl" est enfoncée, le menu est présenté pour permettre à l'utilisateur de choisir une entrée
sinon, Grub amorce le PC directement avec le système qui a été préalablement défini.
Cette définition du système à utiliser sans affichage du menu nécessite la création du fichier /boot/grub/direct_boot.cfg
set uuid=<uuid_de_la_partition_racine>
set kernel=<chemin_accès_noyau>
set initrd=<chemin_accès_fichier_initrd>
set kernelopt="<paramètres_noyau>"
Les valeurs à utiliser sont celles qui apparaissent dans l'entrée du menu correspondant au système à utiliser
menuentry 'Le système à utiliser' --class ubuntu --class gnu-linux --class gnu --class os {
recordfail
set gfxpayload=$linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
set root='(hd0,msdos7)'
search --no-floppy --fs-uuid --set=root <uuid_de_la_partition_racine>
linux <chemin_accès_noyau> root=UUID=<uuid_de_la_partition_racine> <paramètres_noyau>
initrd <chemin_accès_fichier_initrd>
}
La présence d'espaces dans <paramètres_noyau> explique la présence des doubles " de l'exemple.
Pour changer le système à amorcer par défaut, il suffit de modifier les valeurs enregistrées dans le fichier /boot/grub/direct_boot.cfg, sans avoir à exécuter la commande update-grub.
Pour mettre en oeuvre ce fonctionnement, il faut
a) créer le fichier /etc/grub.d/06_custom avec le contenu ci-dessous
#! /bin/sh
set -e
cat << EOF
if ! keystatus --ctrl ; then
if [ -f $prefix/direct_boot.cfg ]; then
source $prefix/direct_boot.cfg
set gfxpayload=$linux_gfx_mode
insmod gzio
insmod part_msdos
insmod ext2
search --no-floppy --set=root --fs-uuid \${uuid}
linux \${kernel} root=UUID=\${uuid} \${kernelopt}
initrd \${initrd}
boot
fi
fi
EOF
b) marquer le fichier comme exécutable,
c) et exécuter update-grub.
Cependant avant d'exécuter update-grub, il est recommandé
a) de contrôler la bonne exécution par la commande
sudo grub-mkconfig -o fichier_de_contrôle
b) de vérifier le contenu du fichier de contrôle
c) de sauver le contenu actuel de /boot/grub/grub.cfg
d) de vérifier que l'on dispose bien des outils nécessaires pour amorcer le PC à partir d'un support amovible afin de pouvoir réinitialiser /boot/grub/grub.cfg en cas de catatrophe
Arbiel
Dernière modification par Arbiel (Le 11/03/2012, à 01:32)
Arbiel Perlacremaz
LDLC Aurore NK3S-8-S4 Ubuntu 20.04, GNOME 3.36.8
24.04 en cours de tests
Abandon d'azerty au profit de bépo, de google au profit de Lilo et de la messagerie électronique violable au profit de Protonmail, une messagerie chiffrée de poste de travail à poste de travail.
Hors ligne