Nettoyer la liste de Linux kernel headers de Grub (Grub Customizer ou ligne de commande)

Si vous êtes un utilisateur régulier de Linux, vous devez forcément connaître le problème d'accumulation des kernel headers Linux venant encombrer votre liste de démarrage dans Grub. En effet, au fur et à mesure des mises à jour de votre système, cette liste devient de plus en plus longue (même si maintenant, Grub doit les regrouper sur une ligne mais les fichiers sont toujours présents), il est donc nécessaire de faire le ménage de temps en temps.

Recommandation post-manipulations :
Je vous déconseille fortement de supprimer l'avant dernier kernel header avant d'avoir passé quelques semaines jours à utiliser sans problème la nouvelle version installée. En effet, démarrer sur une version antérieure peut s'avérer utile si la récente rend votre système instable. Il est à tout moment possible de réinstaller n'importe quelle version en ligne de commande (si jamais le serveur X ne démarrait plus par exemple) ou via un live CD, mais ces opérations n'étant pas forcément accessibles aux débutants, ces derniers devraient s'abstenir.

Grub Customizer

Ce logiciel vous permet de choisir les kernel headers présents dans la liste de Grub lors du démarrage de votre ordinateur. N'étant pas dans les dépôts, il vous faut tout d'abord ajouter ce ppa (Personal Package Archive) à l'aide des commandes suivantes :

sudo add-apt-repository ppa:danielrichter2007/grub-customizer
sudo apt-get update
sudo apt-get install grub-customizer

Une fois le logiciel lancé :

  • cochez dans la liste proposée la ou les version(s) que vous souhaitez voir apparaître ou décocher celle(s) qui ne vous intéresse(nt) plus
  • au besoin, faites monter ou descendre une entrée à l'aide des flèches
  • sauvegardez

Au prochain démarrage, votre liste devrait être plus légère !

nb : si vous êtes un peu geek curieux, je vous conseille d'aller faire un petit tour dans les préférences, Grub Customizer permet de choisir la résolution dans laquelle s'affiche le menu de sélection, les couleurs d'affichage ainsi que le fond d'écran, le délai d'attente avant le lancement du choix par défaut...

Ligne de commande pour nettoyer sa liste Grub des kernel headers inutiles

Pour ceux qui n'ont que faire d'une interface graphique et souhaitent ne garder que la dernière version, tapez la commande suivante (trouvée sur Ubuntu Genius) dans un terminal et tous les kernel headers excepté celui utilisé actuellement seront supprimés de votre système.

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

Faire de cette commande un script exécutable

Pour ne pas avoir à mémoriser ou à chercher dans votre historique cette commande conséquente , je vous conseille de l'écrire dans un script shell :

  • créez un dossier Scripts à la racine de votre répertoire home (par exemple mais vous pouvez le mettre où bon vous semble, l'essentiel est de s'y retrouver) puis rendez-vous à l'intérieur
  • mkdir ~/Scripts
    cd ~/Scripts

  • utilisez votre éditeur de texte favori pour créer un fichier contenant du shell script (.sh) qui se trouvera dans le dossier précédemment créé
  • nano purgeheaders.sh

  • collez la commande vu plus haut
  • dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

  • sauvegardez et quittez l'édition du fichier
  • rendez-le exécutable
  • chmod +x ./purgeheaders.sh

Il ne vous restera plus qu'à l'exécuter lorsque vous souhaiterez supprimez les kernel headers devenus indésirables à l'aide de la commande suite :

~/Scripts/purgeheaders.sh

En espérant vous avoir été utile.

flattr this!
Commentaires (0) Trackbacks (1)

Réagissez à ce billet en laissant un commentaire :

Recevoir une notification par mail lors des prochains commentaires. Vous pouvez aussi vous abonner sans commenter.