311 votes

Quel est le moyen le plus sûr de nettoyer la partition /boot ?

J'ai 200 MB assignés pour le /boot partition. Chaque fois que j'essaie de mettre à jour le noyau, je reçois un message d'erreur qui dit en gros ceci /boot est plein.

Que puis-je faire pour nettoyer /boot et supprimer/sauvegarder les anciens noyaux ?

386voto

PeppeDAlterio Points 5282

Méthode en ligne de commande :

Vérifiez d'abord la version de votre noyau, pour ne pas effacer l'image du noyau en cours d'utilisation :

uname -r

Exécutez maintenant cette commande pour obtenir la liste des noyaux installés :

dpkg --list 'linux-image*' | grep ^ii

et supprimez les noyaux dont vous n'avez plus besoin en exécutant ceci :

sudo apt-get remove linux-image-VERSION

Remplacez VERSION par la version du noyau que vous souhaitez supprimer.

Lorsque vous avez fini de supprimer les anciens noyaux, vous pouvez exécuter cette commande pour supprimer tous les paquets dont vous n'avez plus besoin :

sudo apt-get autoremove

Et enfin vous pouvez exécuter ceci pour mettre à jour la liste des noyaux de Grub :

sudo update-grub

306voto

cadrian Points 4102

NOTE : ceci est seulement si vous ne pouvez pas utiliser apt pour nettoyer à cause d'un /boot plein à 100%.

Si apt-get ne fonctionne pas parce que votre /boot est à 100%, vous devrez d'abord nettoyer /boot. Il est probable qu'une mise à jour du noyau ait eu lieu lors d'une installation partielle, ce qui signifie qu'apt s'est complètement figé et qu'il vous demandera sans cesse d'exécuter le processus suivant apt-get -f install même si cette commande continue d'échouer.

Obtenez la liste des images du noyau et déterminez ce dont vous pouvez vous passer. Cette commande affichera les noyaux installés, à l'exception de celui en cours d'exécution. sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r` . Notez les deux versions les plus récentes dans la liste. Vous n'avez pas à vous soucier de la version en cours d'exécution, car elle n'est pas répertoriée ici. Vous pouvez la vérifier avec uname -r .

Créez une commande pour supprimer tous les fichiers dans /boot pour les noyaux qui n'ont pas d'importance pour vous en utilisant l'expansion des accolades pour vous garder sain d'esprit. N'oubliez pas d'exclure l'image actuelle et les deux images les plus récentes du noyau. Exemple : sudo rm -rf /boot/*-3.2.0-{23,45,49,51,52,53,54,55}-* . Vous pouvez également utiliser une plage avec la syntaxe {80..84}.

sudo apt-get -f install pour nettoyer ce qui rend Apt grincheux à propos d'une installation partielle.

Si vous rencontrez une erreur qui inclut une ligne comme "Internal Error : Could not find image (/boot/vmlinuz-3.2.0-56-generic)", exécutez la commande suivante sudo apt-get purge linux-image-3.2.0-56-generic (avec votre version appropriée).

Enfin, sudo apt-get autoremove pour effacer les anciens paquets de l'image du noyau qui ont été rendus orphelins par le nettoyage manuel du démarrage.

Suggestion, courir sudo apt-get update y sudo apt-get upgrade pour s'occuper de toutes les mises à jour qui ont pu être sauvegardées en attendant que vous découvriez la partition /boot complète.

Suggestion2, Revue https://help.ubuntu.com/community/AutomaticSecurityUpdates et pensez à définir Unattended-Upgrade::Remove-Unused-Dependencies à true dans /etc/apt/apt.conf.d/50unattended-upgrades. Cela équivaut à l'exécution d'autoremove après chaque mise à jour de sécurité pour s'assurer que vous nettoyez les noyaux inutilisés, mais cela supprimera également d'autres choses qu'il pense être inutilisées, vous évitant ainsi ce problème à l'avenir.

57voto

Vous trouverez de la documentation à ce sujet à l'adresse suivante https://help.ubuntu.com/community/RemoveOldKernels

En résumé : Utilisez

sudo apt-get autoremove --purge
# and/or:
sudo purge-old-kernels

El purge-old-kernels peut être installé via sudo apt install byobu . Voici la description de sa page de manuel :

Ce programme supprimera les anciens paquets du noyau et de l'en-tête de la base de données de la système, libérant ainsi de l'espace disque. Il ne supprimera jamais le noyau en cours noyau en cours d'exécution. Par défaut, il conservera au moins les 2 derniers noyaux, mais l'utilisateur peut modifier cette valeur à l'aide de l'option --keep paramètre.

Si vous voulez une solution de copier-coller, ReSearchIT Eng suggère ce qui suit :

sudo apt install -y byobu
sudo purge-old-kernels -y --keep 1
sudo apt-get -y autoremove --purge

10voto

laktak Points 540

J'ai constaté qu'il est beaucoup plus facile d'abandonner la petite partition et de déplacer /boot à la racine. Cela permet également d'éviter tout problème de manque d'espace à l'avenir.

Déplacez d'abord vos données de la partition de démarrage à la racine (exécutez en tant que sudo -s ) :

cp -a /boot /boot2
umount /boot
rmdir /boot
mv /boot2 /boot

Supprimez (ou commentez) le /boot entrée dans /etc/fstab :

vim /etc/fstab

Mettez à jour Grub et assurez-vous que tout est correct :

update-grub

apt devraient maintenant être en mesure de mettre à niveau sans problème.

Il reste donc une partition inutilisée de 200 Mo (que vous pouvez utiliser pour autre chose si vous trouvez que cela en vaut la peine).

8voto

Amos Folarin Points 974

Suppression des anciens noyaux (pour libérer de l'espace sur /boot) voir : http://askubuntu.com/questions/89710/how-do-i-free-up-more-space-in-boot

sudo apt-get purge $(dpkg -l linux-{image,headers}-"[0-9]*" | awk '/ii/{print $2}' | grep -ve "$(uname -r | sed -r 's/-[a-z]+//')")

Ensuite, exécutez

sudo apt-get update

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