Intro
On reprend les mêmes et on recommence. Le post précédent m’a permis d’obtenir un temps de boot raisonnable. Mais il se trouve que depuis le dernier update de mon système, l’interface GRUB a ressurgi de nulle part avec un timeout de 30s… ne nous énervons pas… Je n’ai rien contre GRUB mais comme je n’ai que Ubuntu 18.04 d’installé sur ma machine, je ne vois pas trop l’intérêt d’un timeout aussi long. J’ai cru que j’allais changer ça en 2 minutes, naïf que j’étais…
La solution qui ne marche pas
Après une rapide recherche sur le Web, car rappelons le je suis un admin du dimanche qui ne se souvient jamais de ce genre de trucs (contrairement à à peu près tous les slogans publicitaires des années 80), j’ai édité le fichier /etc/default/grub
pour ramener la valeur de la variable GRUB_TIMEOUT
à 0
. Un petit update de tout cela comme suit
$ sudo update-grub
Un petit reboot et … horreur, GRUB est toujours là avec son timeout de 30s !!!
À la recherche du timeout perdu
Les moultes recherches effectuées sur le Web m’ont obligé à regarder de plus près certains fichiers et notamment celui qui est généré par la commande update-grub
. Il s’agit du fichier /boot/grub/grub.cfg
. En y recherchant la chaine de caractères timeout
, je suis tombé sur les lignes suivantes:
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
Hum, il faut donc remonter à ce recordfail
… Plus haut dans le fichier, on trouve alors ceci:
function recordfail {
set recordfail=1
# GRUB lacks write support for lvm, so recordfail support is disabled.
}
Venant de me taper la résolution d’un problème lié à lvm
, je tombe sur un autre truc en lien avec ça (je suis preneur d’une explication de ce message)… restons calme…
Comment modifier la valeur de cette variable recordfail
ou comment modifier son timeout associé?
Après plusieurs tentatives infructueuses, j’ai finalement édité le fichier /etc/grub.d/00_header
et repéré les lignes suivantes:
make_timeout ()
{
cat << EOF
if [ "\${recordfail}" = 1 ] ; then
set timeout=${GRUB_RECORDFAIL_TIMEOUT:-30}
else
EOF
Le timeout retrouvé
Au final, j’ai donc identifié la variable GRUB_RECORDFAIL_TIMEOUT
qui permet d’avoir un timeout raisonnable dans le cas où recordfail support is disabled
. Il m’a suffi ensuite d’éditer le fichier /etc/default/grub
d’y rajouter la ligne GRUB_RECORDFAIL_TIMEOUT=1
, de regénérer le tout via sudo update-grub
, de vérifier la nouvelle valeur du timeout dans le fichier /boot/grub/grub.cfg
if [ "${recordfail}" = 1 ] ; then
set timeout=1
else
de redémarrer pour constater que ça marche !!!!
Et comme disait cette pub des années 80 :
Je f’rais pas ça tous les jours !