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


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

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


258
2017-09-14 19:41


origine


Voir le Wiki de la communauté Ubuntu - jarno


Réponses:


Méthode de 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, en 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 / avoir 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 l'exécuter pour supprimer les paquets dont vous n'avez plus besoin:

sudo apt-get autoremove

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

sudo update-grub

312
2017-09-14 20:34



la ligne de commande a fonctionné comme un charme, merci! - koba101
sudo dpkg --list 'linux-image*' | grep ^ii Il est un peu plus facile de voir uniquement les noyaux installés. Aussi je pense que le update-grub est inoffensif mais pas strictement nécessaire, il est exécuté automatiquement lorsque vous désinstallez un noyau. - Nelson
Utilisation sudo dpkg --list 'linux-image*' | grep ^ii | awk '{print $2}' | sort | egrep "[0-9]-generic" | head -n -3 | tr '\n' ' '; echo "" pour obtenir la liste des noms de paquets à utiliser avec sudo apt-get remove. head -n -3 est utilisé pour conserver 3 noyaux les plus récents dans le système. - Sithsu
sudo apt-get autoremove devrait suffire (généralement vous laisser avec les 3 derniers noyaux) - mbx
C'est une bonne réponse, mais je doute que cela puisse fonctionner dans la plupart des cas (sinon tous): le problème est que /boot est plein, donc apt-get échouera avec un code d'erreur ou autre. La réponse ci-dessous est un peu plus "piratée" (je dois avouer que j'ai dû me forger une rm -rf dans /boot) mais le seul susceptible de fonctionner dans cette situation. - Marco


NOTE: Ceci est seulement si vous ne pouvez pas utiliser apt pour nettoyer en raison d'un démarrage à 100%

Si apt-get ne fonctionne pas parce que votre / boot est à 100%, vous devez d'abord le nettoyer / démarrer. Cela a probablement provoqué une mise à jour du noyau dans une installation partielle, ce qui signifie qu'apt a été complètement gelé et continuera de vous dire de courir 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 sauf celui qui est en cours d'exécution sudo dpkg --list 'linux-image*'|awk '{ if ($1=="ii") print $2}'|grep -v `uname -r`. Notez les deux dernières versions de la liste. Vous n'avez pas besoin de vous soucier de celui en cours d'exécution car il n'est pas répertorié ici. Vous pouvez vérifier cela 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'accolade pour vous garder 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 incluant 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 votre version appropriée).

Finalement, sudo apt-get autoremove pour effacer les anciens paquets d’images du noyau devenus orphelins lors du nettoyage manuel.

Suggestion, courir 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, Révision https://help.ubuntu.com/community/AutomaticSecurityUpdates 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 supprimerez également tout ce qui, selon vous, ne sera pas utilisé pour vous éviter ce problème à l'avenir.


254
2018-03-07 16:54



De cette façon, j'ai le dernier pour le prochain redémarrage, puis celui avant, juste au cas où quelque chose serait cassé dans celui-là. Habituellement, j'ai suffisamment de place pour ne pas en avoir quelques-unes et cela satisfait ma paranoïa de ne pas avoir suffisamment d'options de sauvegarde dans un scénario donné. - flickerfly
Je n'ai jamais eu de problème causé par des mises à niveau sans surveillance. Je peux imaginer des scénarios où cela pourrait être un problème principalement lié à la perte de dépendances sur des installations non packagées. Dites que vous installez php, décidez de le désinstaller et installez une nouvelle version à partir de la source. Cette version a des dépendances fournies par l'installation précédente, mais apt n'est pas au courant que cela est toujours nécessaire. La prochaine fois que vous exécuterez la suppression automatique, ces dépendances auront disparu. Si automatisé, cela peut être un peu déroutant. Si vous n'installez pas en dehors des référentiels, je pense qu'il est totalement sûr. - flickerfly
Après avoir vu cela dans nombreuses vsphere virtual servers (où les noyaux étaient automatiquement mis à niveau mais pas supprimés par la suite), j'ai écrit un script python pour automatiser J'aimerais avoir plus d'yeux - EvanK
Si tu utilises dpkg --purge sur un démarrage complet, vous aurez le suivant $ sudo dpkg --purge linux-image-3.13.0-65-generic dpkg: dependency problems prevent removal of linux-image-3.13.0-65-generic: linux-image-extra-3.13.0-65-generic depends on linux-image-3.13.0-65-generic. dpkg: error processing package linux-image-3.13.0-65-generic (--purge): dependency problems - not removing Errors were encountered while processing: linux-image-3.13.0-65-generic - flickerfly
C'est très utile. travaillé pour moi - deepdive


Il y a de la documentation à ce sujet à https://help.ubuntu.com/community/RemoveOldKernels

En résumé: utiliser

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

le purge-old-kernels l'outil 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 --keep  paramètre.

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

43
2017-08-09 09:12



Dans mon cas, apt ne fonctionne pas à cause d'un noyau en attente et le correctif suggéré est un catch-22: - James Bowery
J'ai d'abord dû réparer les paquets cassés avec askubuntu.com/a/304388/284313 Après cela, votre solution a fonctionné. - James Bowery
Je pense que cela devrait être la solution acceptée dès maintenant. - Fran Marzoa
c'est beaucoup plus sûr que la réponse acceptée. je pense apt-get autoremove --purge devrait être suffisant, cependant. - Woodrow Barlow


J'ai trouvé qu'il est beaucoup plus facile d'abandonner la petite partition et de déplacer /boot à la racine. Cela empêche également tout problème de manque d'espace dans le futur.

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) le /boot entrée dans /etc/fstab:

vim /etc/fstab

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

update-grub

apt devrait maintenant être en mesure 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).


6
2018-04-14 07:43



C'est une bonne idée, mais cela ne fonctionne pas si vous souhaitez avoir un chiffrement intégral du disque pour votre partition racine. - Paŭlo Ebermann


Suppression d'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]+//')")

Puis courir

sudo apt-get update

3
2017-08-14 14:09



c'était le seul qui marchait ... une excellente solution - John
Meilleure réponse! C'est la seule solution qui a fonctionné pour moi; autoremove est stupide; il essaie de réinstaller les noyaux avec des dépendances non satisfaites avant de les supprimer officiellement. Je tournais en rond sans cesse. Cette réponse est or. - Lonnie Best


sudo apt-get autoremove

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


2
2017-10-03 16:39





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 mettre à jour une nouvelle mise à jour de leur vie = 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

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


0
2018-05-04 17:28