J'ai 200 Mo assignés pour la /boot
partition. Chaque fois que j'essaie de mettre à jour le noyau, je reçois un message d'erreur indiquant en gros que le message /boot
est plein.
Que puis-je faire pour /boot
nettoyer et supprimer / sauvegarder les anciens noyaux?
kernel
boot-partition
koba101
la source
la source
Réponses:
Méthode en ligne de commande:
Tout d’abord, vérifiez la version de votre noyau pour ne pas supprimer l’image du noyau en cours d’utilisation:
Maintenant, lancez cette commande pour obtenir la liste des noyaux installés:
et supprimez les noyaux dont vous ne voulez plus / n'avez plus besoin en lançant ceci:
Remplacez VERSION par la version du noyau que vous souhaitez supprimer.
Lorsque vous avez terminé de supprimer les anciens noyaux, vous pouvez le lancer pour supprimer tous les paquets dont vous n’avez plus besoin:
Et enfin, vous pouvez exécuter ceci pour mettre à jour la liste du noyau grub:
la source
sudo dpkg --list 'linux-image*' | grep ^ii
il est un peu plus facile de voir uniquement les noyaux installés. De plus, je pense queupdate-grub
c'est inoffensif mais pas strictement nécessaire, c'est-à-dire qu'il s'exécute automatiquement lorsque vous désinstallez un noyau.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 avecsudo apt-get remove
.head -n -3
est utilisé pour conserver les 3 noyaux les plus récents dans le système.apt-get remove `dpkg --list 'linux-image*' |grep ^ii | awk '{print $2}'\ | grep -v \`uname -r\``
sudo apt-get autoremove
devrait suffire (vous laissant généralement avec les 3 derniers noyaux)/boot
est saturé et qu'ilapt-get
va donc échouer avec un code d'erreur ou autre. La réponse ci - dessous est un peu « hackier » (je dois avouer que je devais me acier à émettre querm -rf
dans/boot
) , mais le seul qui est susceptible de travailler dans cette situation.NOTE: Ceci est seulement si vous ne pouvez pas utiliser apt à nettoyer en raison d'un / boot 100% complet
Si apt-get ne fonctionne pas parce que votre / boot est à 100%, vous devrez d'abord nettoyer / boot. Cela a probablement attrapé une mise à niveau du noyau lors d’une installation partielle, ce qui signifie qu’apt a presque complètement gelé et continuera à vous dire d’exécuter,
apt-get -f install
même si cette commande échoue.Obtenez la liste des images du noyau et déterminez ce que vous pouvez faire sans. Cette commande affichera les noyaux installés, à l'exception de ceux 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 inquiéter à propos de la course car elle n'est pas listée ici. Vous pouvez vérifier cela avecuname -r
.Créez une commande pour supprimer tous les fichiers dans / boot pour les noyaux qui ne comptent pas pour vous en utilisant le développement d'accolade pour vous garder sain d'esprit. N'oubliez pas d'exclure les images du noyau actuelles et les deux plus récentes. 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
nettoyer ce qui rend grogny à propos d’une installation partielle.Si vous rencontrez une erreur comportant une ligne du type "Erreur interne: impossible de trouver une 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
effacez les anciens paquets d’images du noyau qui ont été rendus orphelins par le nettoyage manuel au démarrage.Suggestion, exécutez
sudo apt-get update
etsudo apt-get upgrade
prenez en charge les mises à niveau éventuellement sauvegardées en attendant la découverte de la partition / boot complète.Suggestion2, consultez la page https://help.ubuntu.com/community/AutomaticSecurityUpdates et envisagez de définir la valeur Unattended-Upgrade :: Remove-Unused-Dependencies sur true dans /etc/apt/apt.conf.d/50unattended-upgrades. Ce sera l'équivalent d'exécuter autoremove après chaque mise à jour de sécurité pour vous assurer de nettoyer les noyaux inutilisés, mais supprimera également d'autres éléments qu'il pense inutilisés pour vous éviter ce problème à l'avenir.
la source
dpkg --purge
un démarrage complet, vous obtiendrez ce qui suit$ 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
df -i
j'ai découvert que je manquais aussi d'inodes à/
cause de la quantité énorme de fichiers pour le code source des noyaux plus anciens dans/usr/src
Il existe une documentation à ce sujet à l' adresse https://help.ubuntu.com/community/RemoveOldKernels.
En résumé: utiliser
L'
purge-old-kernels
outil peut être installé viasudo apt install byobu
. Voici la description de sa page de manuel:Si vous souhaitez une solution de copier-coller, ReSearchIT Eng a suggéré ce qui suit:
la source
apt-get autoremove --purge
devrait être suffisant, cependant.J'ai trouvé qu'il est beaucoup plus facile d'abandonner la petite partition et de passer
/boot
à la racine. Cela évite également les problèmes de manque d'espace à l'avenir.Déplacez d'abord vos données de la partition de démarrage vers la racine (exécutez en tant que
sudo -s
):Supprimer (ou commenter) l'
/boot
entrée dans/etc/fstab
:Mettez à jour grub et assurez-vous que tout est correct:
apt
devrait maintenant être en mesure de mettre à niveau sans problèmes.Cela laisse une partition inutilisée de 200 Mo (que vous pouvez utiliser pour autre chose si vous trouvez que cela en vaut la peine).
la source
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
Puis courir
la source
sudo apt-get autoremove
Cela supprime tous les noyaux sauf les 2 derniers. Testé sur Ubuntu 16.04 LTS lorsqu'il
/boot
était à 100% de sa capacité etapt-get upgrade
qu'il a échoué lors de la dernière mise à niveau du noyau. Le retrait automatique du noyau est itératif, donc si vous avez plusieurs noyaux, ils seront supprimés un par un. Alors soyez patient.la source
Pourquoi le faire à la main quand on peut le faire avec un outil? Vous savez que vous en aurez de nouveau besoin dans 30 secondes, car il leur faut 30 secondes pour publier une nouvelle mise à jour kernal ces jours-ci = P
Je recommande d'utiliser cet outil, bootnukem
ensuite
Supprimez
--dry-run
une fois que vous confirmez qu'il semble en sécuritéla source