Mettre à jour la liste de boot de Grub 2

\"LinuxPour peu qu\’on ait un dual-boot géré par Grub 2, la liste des noyaux proposée au démarrage s\’allonge au fur et à mesure des nouvelles versions. Dans la version précédente de Grub, l\’édition du fichier /boot/grub/menu.lst permettait de personnaliser cette liste et en particulier de supprimer de l\’affichage les noyaux antérieurs pour ne garder par exemple que les deux derniers.

Grub 2, lui, génère automatiquement cette liste en fonction des versions du noyau présentes dans /boot. Du coup, pour s\’éviter une liste à rallonge au démarrage, la procédure est la suivante :

  1. Créez dans /boot un dossier old
    $ sudo mkdir /boot/old
    
  2. Déplacez les anciennes versions des noyaux pour ne garder que la dernière (celle fournie par uname -r), le memtest et éventuellement l\’avant-dernière version par sécurité. Dans la commande suivante, nous ne garderons que la dernière version du noyau et le memtest :
    $ sudo mv `find /boot -maxdepth 1 -type f ! -name *$( uname -r )* ! -name memtest*` /boot/old
    

    Petite explication : on déplace (mv) les fichiers trouvés (find) dans /boot en spécifiant :

    • -maxdepth 1 pour ne parcourir que /boot et pas les dossiers sous-jacents
    • -type f pour ne trouver que des fichiers (pas de dossier)

    On ajoute ensuite des ! -name qui permettent de tout sélectionner hormis le(s) fichier(s) déduit(s) du paramètre. On spécifie donc qu\’on exclu le memtest mais aussi tous les fichiers contenant dans leur nom la version courante du noyau (d\’où le *$( uname -r )*).

    Pour conserver par exemple la version 2.6.32-23 du noyau, il suffit de rajouter après le memtest* quelque chose comme ! -name *2.6.32-23*.

  3. Mettez à jour la configuration de Grub
    $ sudo update-grub
    

Un redémarrage devrait vous permettre d\’admirer le résultat! Il ne reste plus qu\’à mettre tout ceci dans un script et l\’exécuter quand nécessaire.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>