748 votes

Comment supprimer les anciennes versions du noyau pour nettoyer le menu de démarrage ?

Chaque fois que j'installe un nouveau noyau Linux, il est laissé dans le grub_config, rendant le menu de démarrage plus long à chaque fois.

Je sais que je peux rechercher manuellement dans les paquets installés et les supprimer.

Ubuntu propose-t-il un moyen plus simple de les nettoyer ou de les empêcher d'apparaître dans la liste de démarrage ?

0 votes

En plus de supprimer les anciens noyaux, décommentez cette ligne dans le fichier /etc/default/grub si vous voulez vous débarrasser des éléments de "récupération" dans le menu : #GRUB_DISABLE_LINUX_RECOVERY="true"

0 votes

Dans les versions récentes Ubuntu cache les noyaux dans le sous menu de Grub, donc ce n'est pas si gênant. Cependant, il peut être une bonne idée de supprimer les noyaux supplémentaires pour économiser de l'espace, surtout, si vous avez une petite partition /boot séparée.

10 votes

Il existe une commande ubuntu appelée purge-old-kernels pour faire ce travail. Voir mon réponse pour plus d'informations.

17voto

PhilPursglove Points 9758

Afin de supprimer les anciens noyaux d'image Linux, démarrez d'abord dans le noyau que vous souhaitez conserver.

Vous pouvez également vérifier la version du noyau en utilisant la commande uname -r afin de ne pas retirer le mauvais par erreur.

Maintenant, allez dans le gestionnaire de paquets synaptic et recherchez linux-image et supprimez les anciennes versions sauf celle indiquée par la commande supérieure. En général, je préfère aller avec la dernière version.

Maintenant, lorsque vous redémarrez, vous verrez un menu Grub plus propre.

0 votes

C'est probablement la méthode la plus basique pour les utilisateurs qui ont des installations sans Computer Janitor.

1 votes

Depuis Ubuntu 11.04, le menu Grub ne montre que le noyau actuel par défaut, les noyaux plus anciens sont cachés dans le menu 'Previous kernels'. Cette méthode fonctionnera toujours pour nettoyer les plus anciens.

15voto

aksangrav Points 221

Vous pouvez installer ubuntu-tweak puis allez dans Applications -> Outil système -> ubuntu tweak et

enter image description here cliquez sur package cleaner et clean kernels. il n'affiche pas le noyau actuellement utilisé donc vous serez toujours en sécurité.

9voto

maclema Points 5959

Personnellement, j'aime utiliser Synaptic . Cela me permet de me sentir plus sûr de ce qui se passe. La seule application que j'ai utilisée qui a une option pour supprimer les anciens noyaux est Tweak Ubuntu .

Comment retirer les noyaux que vous n'utilisez pas :

  • Ouvrir UbuntuTweak
  • Cliquez sur "Package Cleaner" sous "Applications" dans le volet de gauche.
  • Sur le côté droit de la "vue de nettoyage", cliquez sur "Nettoyer les noyaux".
  • Sélectionnez tous les noyaux - je pense que celui qui est utilisé n'est pas listé mais juste au cas où, vérifiez l'exécution. uname -a dans un terminal

0 votes

Dans Synaptic, vous pouvez filtrer sur 'Components' -> 'Kernel and modules', ce qui inclut tous les noyaux. Et trier par la première colonne : 'S' (Status), ainsi vous obtenez tous les noyaux installés en haut. En effet, update-grub est conseillé.

7voto

arathorn Points 8699

Vous pouvez désinstaller les anciens noyaux ( linux-image-... ) en utilisant Synaptic, et cela les supprimera du menu de démarrage. Faites attention à ne pas supprimer le noyau en cours d'exécution (vous pouvez vérifier sa version avec uname -r ).

N'oubliez pas que le fait de disposer d'une ou deux versions plus anciennes peut vous aider à résoudre les problèmes, si quelque chose ne va pas.

Vous pouvez également modifier/supprimer les entrées manuellement ( gksu gedit /boot/grub/grub.cfg ), mais ils seront générés à nouveau lorsque vous mettrez à jour un noyau plus récent. Si vous envisagez de supprimer recovery mode options - ne le faites pas. Elles peuvent s'avérer utiles si vous cassez quelque chose qui vous empêche de démarrer.


Se référer à cette page.

0 votes

Grub2 construit maintenant son entrée Grub à chaque fois qu'un nouveau noyau est installé. avec update-grub qui va réécrire tous ces noyaux.

5voto

Adam Points 6342

Il s'agit d'une solution en ligne de commande pure.

Générer d'abord une liste de toutes les versions du noyau installées, à l'exception du noyau en cours d'exécution :

dpkg-query -W -f='${Package}\n' |
  grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3 |
    grep -v $(uname -r | cut -d- -f1,2))

Alternativement, générer une liste de toutes les versions du noyau installées, sauf les deux dernières :

dpkg-query -W -f='${Package}\n' |
  grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3 |
    sort -V | head -n -2)

Examinez la liste. Assurez-vous que les versions du noyau que vous souhaitez conserver ne font pas partie de la liste. Utilisez la commande uname -r pour voir la version du noyau en cours d'exécution.

Si vous êtes satisfait des résultats, vous pouvez utiliser apt-get pour supprimer les paquets.

D'abord un essai à blanc (en utilisant le premier générateur comme exemple) :

sudo apt-get --dry-run purge $(
  dpkg-query -W -f='${Package}\n' |
    grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3 |
      grep -v $(uname -r | cut -d- -f1,2)))

Puis une vraie course :

sudo apt-get purge $(
  dpkg-query -W -f='${Package}\n' |
    grep -f <(ls -1 /boot/vmlinuz* | cut -d- -f2,3 |
      grep -v $(uname -r | cut -d- -f1,2)))

Si vous voulez automatiser le processus, ajoutez l'option --yes paramètre :

sudo apt-get --yes purge $(
  ...)

0 votes

@jarno J'apprécie votre effort pour combiner et optimiser ma ligne de commande. J'ai supprimé votre ligne de commande car je préfère la lisibilité et la simplicité. J'ai délibérément adapté ma commande à la lisibilité et à la simplicité. Du moins, une lisibilité et une simplicité pour mon cerveau. Veuillez publier votre ligne de commande dans un commentaire ou dans votre propre réponse.

1 votes

Cela combine deux objectifs : Conserver les deux derniers noyaux et conserver les noyaux plus récents que le noyau actuel. sudo apt-get purge -- $(ls -1U /boot/vmlinuz* | cut -d- -f2,3 | sort -uV | head -n -2 | awk -v c=$(uname -r | cut -d- -f1,2) '($0==c){exit} //' | sed -r -e 's/\./\\./g' -e 's/.*/-&($|-)/') . Il n'y a pas besoin de dpkg-query depuis apt-get peut gérer les expressions régulières. Veuillez noter comment j'échappe les points, et ajoute le préfixe et le suffixe dans l'expression régulière. L'utilisation du script en ma propre réponse vous pouvez également conserver certains noyaux qui sont plus anciens que le noyau actuel.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X