Quel est le moyen le plus sûr de nettoyer / démarrer la partition?

254

J'ai 200 Mo affectés à la partition /boot . Chaque fois que j'essaie de mettre à jour le noyau, je reçois un message d'erreur qui indique essentiellement que /boot est plein.

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

    
posée koba101 14.09.2013 - 21:41
la source

7 réponses

305

Méthode en ligne de commande:

Commencez par vérifier la version de votre noyau afin de ne pas supprimer l'image du noyau en cours d'utilisation, exécutant:

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 ne voulez plus / plus besoin en exécutant ceci:

sudo apt-get remove linux-image-VERSION

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

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

sudo apt-get autoremove

Et enfin vous pouvez lancer ceci pour mettre à jour la liste du noyau grub:

sudo update-grub
    
réponse donnée PeppeDAlterio 14.09.2013 - 22:34
la source
247

REMARQUE: Ceci est uniquement si vous ne pouvez pas utiliser apt pour nettoyer en raison d’un démarrage complet / initialisation

Si apt-get ne fonctionne pas parce que votre / boot est à 100%, vous devez d'abord nettoyer / démarrer. Cela a probablement provoqué une mise à niveau du noyau dans une installation partielle, ce qui signifie qu'apt a été complètement gelé et continuera à vous demander d'exécuter apt-get -f install même si cette commande continue à é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 d’un seul sudo dpkg --list 'linux-image*'|awk '{ if (=="ii") print }'|grep -v 'uname -r' en cours d’exécution. Notez les deux dernières versions de la liste. Vous n'avez pas besoin de vous soucier du fonctionnement car il n'est pas répertorié ici. Vous pouvez le vérifier avec uname -r .

Créez une commande pour supprimer tous les fichiers de / boot pour les noyaux qui ne comptent pas pour vous en utilisant l'extension d'accolades pour rester sain d'esprit. N'oubliez pas d'exclure les images du noyau actuelles et deux nouvelles. 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 grincheux une installation partielle.

Si vous rencontrez une erreur comportant une ligne comme "Erreur interne: Impossible de trouver l'image (/boot/vmlinuz-3.2.0-56-generic)", exécutez la commande sudo apt-get purge linux-image-3.2.0-56-generic (avec la version appropriée) ).

Enfin, sudo apt-get autoremove pour effacer les anciens paquets d'images de noyau devenus orphelins lors du nettoyage initial du démarrage.

Suggestion, exécutez sudo apt-get update et sudo apt-get upgrade pour prendre en charge les mises à niveau qui ont pu être sauvegardées en attendant que vous découvriez la partition complète / de démarrage.

Suggestion2, examinez lien et envisagez de définir Unattended-Upgrade :: Remove-Unused-Dependencies sur true dans / etc / apt / apt.conf.d / 50unattended-upgrades. Cela équivaudra à exécuter autoremove après chaque mise à jour de sécurité pour vous assurer que vous nettoyez les noyaux inutilisés, mais supprimez également les autres éléments qui, à votre avis, ne sont pas utilisés pour vous éviter ce problème à l'avenir.

    
réponse donnée flickerfly 07.03.2014 - 17:54
la source
43

Il existe une documentation à ce sujet sur lien

En résumé: Utiliser

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

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

  

Ce programme va supprimer les anciens paquets de noyau et d’en-tête du   système, libérant de l'espace disque. Il ne supprimera jamais le actuellement   noyau en cours d'exécution. Par défaut, il conservera au moins les deux derniers noyaux,   mais l'utilisateur peut remplacer cette valeur en utilisant le paramètre --keep .

Si vous souhaitez une solution de copier-coller, ReSearchIT Eng a suggéré ce qui suit:

sudo apt install -y byobu
sudo purge-old-kernels -y --keep 1
sudo apt-get -y autoremove --purge
    
réponse donnée peq 09.08.2016 - 11:12
la source
6

J'ai trouvé qu'il est beaucoup plus facile d'abandonner la petite partition et de déplacer /boot vers la racine. Cela prévient également les problèmes d’espace à l’avenir.

Commencez par déplacer vos données de la partition de démarrage vers la racine (exécutez-les en tant que sudo -s ):

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

Supprimer (ou commenter) l’entrée /boot dans /etc/fstab :

vim /etc/fstab

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

update-grub

apt devrait maintenant être capable de mettre à jour sans problèmes.

Cela laisse une partition inutilisée de 200 Mo (que vous pourriez utiliser pour autre chose si vous trouvez que cela en vaut la peine).

    
réponse donnée laktak 14.04.2017 - 09:43
la source
3

Suppression d'anciens noyaux (pour libérer de l'espace sur / boot) voir: lien

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

Puis lancez

sudo apt-get update
    
réponse donnée Amos Folarin 14.08.2017 - 16:09
la source
2

sudo apt-get autoremove

Cela supprime tous les noyaux sauf les deux derniers. Testé sur Ubuntu 16.04 LTS lorsque /boot était à 100% de capacité et que apt-get upgrade a échoué lors de la dernière mise à niveau du noyau. Le noyau autoremove est itératif, donc si vous avez plusieurs noyaux, ils seront supprimés un par un. Alors soyez patient.

    
réponse donnée DeepSpace101 03.10.2017 - 18:39
la source
0

Pourquoi le faire à la main quand vous pouvez le faire avec un outil? Vous savez que vous en aurez besoin de nouveau dans 30 secondes, car il leur faut 30 secondes pour lancer une nouvelle mise à jour kernal de nos jours = P

Je recommande d'utiliser cet outil, bootnukem

git clone https://github.com/erichs/bootnukem.git
cd bootnukem
sudo ./install.sh

Alors

sudo bootnukem --dry-run

Supprimez --dry-run une fois que vous confirmez que cela semble sûr

    
réponse donnée Jonathan 04.05.2017 - 19:28
la source

Lire d'autres questions sur les étiquettes