Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

24.4. Effectuer des Changements persistnats à un menu GRUB 2 par l'outil grubby

L'outil grubby peut être utilisé pour lire des informations, et effectuer des modifications permanentes au fichier grub.cfg. Il nous permet, par exemple, de modifier les entrées de menu GRUB pour préciser les arguments à faire passer au noyau au démarrage du système, ou changer le noyau par défaut.
Dans Red Hat Enterprise Linux 7, si grubby est invoqué manuellement, sans indiquer de fichier de configuration GRUB, il recherchera /etc/grub2.cfg par défaut, qui est un lien symbolic du fichier grub.cfg, dont l'emplacement est dépendant de l'architecture. S'il ne trouve pas ce fichier, il cherchera une valeur par défaut dépendant de l'architecture.

Recherche du Noyau par défaut

Pour trouver le nom de fichier du noyau par défaut, saisir une commande sur ce modèle :
~]# grubby --default-kernel
/boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
Pour trouver le numéro d'indexation du noyau par défaut, saisir une commande sur ce modèle :
~]# grubby --default-index
0

Changer l'entrée de démarrage par défaut

Pour effectuer un changement permanent dans le noyau désigné comme étant le noyau par défaut, utiliser la commande grubby sur le modèle suivant :
~]# grubby --set-default /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64

Visualiser l'entrée de menu GRUB d'un noyau

Pour répertorier toutes les entrées de menu, saisir une commande comme suit :
~]$ grubby --info=ALL
Dans les systèmes UEFI, toutes les commandes grubby doivent être saisies en tant qu'utilisateur root.
Pour visualiser l'entrée de menu GRUB d'un noyau en particulier, saisir une commande sur ce modèle :
~]$ grubby --info /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
index=0
kernel=/boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
args="ro rd.lvm.lv=rhel/root crashkernel=auto  rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet LANG=en_US.UTF-8"
root=/dev/mapper/rhel-root
initrd=/boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
title=Red Hat Enterprise Linux Server (3.10.0-229.4.2.el7.x86_64) 7.0 (Maipo)
Utiliser la saisie semi-automatique pour voir quels noyaux sont disponibles dans le répertoire /boot.

Ajouter ou Supprimer des Arguments d'une entrée de Menu GRUB

L'option --update-kernel peut être utilisée pour mettre à jour une entrée de menu si utilisé en conjonction à--args pour ajouter de nouveaux arguments et --remove-arguments pour supprimer des arguments existants. Ces options acceptent une liste séparée par des espaces avec des guillemets :
grubby --remove-args="argX argY" --args="argA argB" --update-kernel /boot/kernel
Pour ajouter ou supprimer des arguments de l'entrée du menu GRUB, utiliser une commande du modèle suivant :
~]# grubby --remove-args="rhgb quiet" --args=console=ttyS0,115200 --update-kernel /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
Cette commande supprime l’argument de démarrage graphique de Red Hat, rend visible le message boot, et ajoute une console série. Comme les arguments de console seront ajoutés en fin de ligne, la nouvelle console aura préséance sur toutes les autres consoles configurées.
Pour vérifier les changements, utiliser l'option de commande --info comme suit :
~]# grubby --info /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
index=0
kernel=/boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
args="ro rd.lvm.lv=rhel/root crashkernel=auto  rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us LANG=en_US.UTF-8 ttyS0,115200"
root=/dev/mapper/rhel-root
initrd=/boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
title=Red Hat Enterprise Linux Server (3.10.0-229.4.2.el7.x86_64) 7.0 (Maipo)

Mise à jour de tous les Menus de noyau par les mêmes Arguments

Pour ajouter les mêmes arguments de démarrage de noyau à toutes les entrées de menu de noyau, saisir une commande sur ce modèle :
~]# grubby --update-kernel=ALL --args=console=ttyS0,115200
Le paramètre --update-kernel accepte également DEFAULT, ou une liste de numéros d'indexes de noyaux séparés par des virgules.

Changer un argument de noyau

Pour changer une valeur en argument de noyau existant, spécifiez l'argument à nouveau, en changeant la valeur suivant les besoins. Ainsi, pour changer la taille de la police de console, utiliser la commande suivante :
~]# grubby --args=vconsole.font=latarcyrheb-sun32 --update-kernel /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
index=0
kernel=/boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
args="ro rd.lvm.lv=rhel/root crashkernel=auto  rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun32 vconsole.keymap=us LANG=en_US.UTF-8"
root=/dev/mapper/rhel-root
initrd=/boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
title=Red Hat Enterprise Linux Server (3.10.0-229.4.2.el7.x86_64) 7.0 (Maipo)
Voir la page man grubby(8) pour obtenir d'autres options de commande.