Essayez ceci. Exécutez-le en tant que root.
Enregistrez ce script sous, disons ./keep-n-kernels.sh
Passez, comme argument de ligne de commande, le nombre de noyaux les plus récents que vous voulez préserver.
#!/bin/bash
# pass n as a command line argument, and it will find all the installed
# kernels and keep only the n most recent ones => uninstall all older ones
# dpkg -l 'linux-\*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\\(.\*\\)-\\(\[^0-9\]\\+\\)/\\1/")"'/d;s/^\[^ \]\* \[^ \]\* \\(\[^ \]\*\\).\*/\\1/;/\[0-9\]/!d'
# this command gives the list of all packages EXCEPT for the latest kernel.
# source : https://help.ubuntu.com/community/Lubuntu/Documentation/RemoveOldKernels
n=$1
# find the installed kernel versions :
# dpkg-query -W -f='${Version}\\n' 'linux-image-\*' | grep . | sort -n
# gives version numbers, one in each line
# dpkg-query -W -f='${Version}\\n' 'linux-image-\*' | grep . | sed 's/\\...$//g' | grep -v '\\...$'| sort -u
# gives only the ones that appear in linux-image
# suffix, e.g. -generic-pae
# the kind of kernel you boot into
suffix=$(uname -r | sed 's:^\[0-9\]\\.\[0-9\]\\.\[0-9\]\\-\[0-9\]\\{2\\}::g')
command="apt-get purge "
for version in $(dpkg-query -W -f='${Version}\\n' 'linux-image-\*' | grep . | sed 's/\\...$//g' | grep -v '\\...$'| sort -u | head -n -${n})
do
command=${command}"^linux-image-${version}${suffix} "
done
$command
Exemple d'utilisation :
\# ./keep-n-kernels.sh 4 # launch the apt-get command to remove all but the 4 most recent kernels
Si vous voulez [ET À VOTRE PROPRE RISQUE], vous pouvez ajouter un -y (ou un drapeau force) à la commande apt-get et la rendre non-interactive.
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.
29 votes
sudo apt-get autoremove
devrait faire l'affaire sur Ubuntu 14.04+.1 votes
L'accumulation de vieux noyaux est un bogue, dont la correction est en cours : bugs.launchpad.net/bugs/1357093 . Lorsque le correctif sera publié, les anciens noyaux seront supprimés automatiquement par défaut.
1 votes
@hobs La commande ne fait pas l'affaire pour moi dans Ubuntu Studio 14.04, si les noyaux n'ont pas été installés automatiquement, mais par Software Updater.
0 votes
Je ne trouve pas de réponse permettant de supprimer les noyaux de la version précédente après la mise à jour d'Ubuntu vers une version plus récente, même si une question spécifique à ce sujet a été marquée comme un doublon de celle-ci. aquí . Voir aussi rapport de bogue
0 votes
J'ai fait un script qui fait le travail. Je le publierai une fois que mon objectif de prime sera atteint : bountysource.com/issues/
0 votes
aide.ubuntu.com/community/RemoveOldKernels
0 votes
@hobs pourriez vous transformer ce commentaire en réponse
0 votes
Celui qui a lu ceci devrait aussi lire stackoverflow.com/questions/653096/how-to-free-inode-usage Vous pouvez rencontrer une situation où vous devez libérer votre inode en supprimant les anciennes sources du noyau sous /usr/src/. Si vous avez assez d'espace disque en vérifiant df -h mais 100% d'utilisation des inodes. Vous devez absolument lire le lien ci-dessus
2 votes
Je reviens sans cesse à cette page... le commentaire de @hobs ne fonctionne que si vos noyaux ont été auto-installés - cependant vous faites
sudo apt-get autoremove --purge
la réponse en suivant lesapt-mark
des conseils sur https://help.ubuntu.com/community/RemoveOldKernels0 votes
Si /boot est plein, voir askubuntu.com/questions/263363/
0 votes
Résumé utile - gist.github.com/ipbastola/2760cfc28be62a5ee10036851c654600