"Le volume du démarrage ne dispose que de 0 octet d'espace disque"

32

Après une récente mise à jour, je reçois une alerte disant:

The volume boot has only 0 bytes disk space remaining

Mais mon ordinateur dispose de beaucoup d’espace HD libre. Est-ce que quelqu'un sait comment je résous ceci? (Si cela est pertinent, j'utilise toute la fonctionnalité de chiffrement de disque de l'image d'installation alternative pour Ubuntu 12.04).

utilisateur924731
la source
Cela dépend vraiment de la manière dont vous avez installé Ubuntu sur votre machine. Pouvez-vous "sudo fdisk -l" dans le terminal et vérifier s’il existe une petite partition presque pleine?
Paulius Šukys
4
Mieux encore, lancez la commande 'df -H -x tmpfs -x devtmpfs' sans les guillemets et collez le résultat ici.
fabricator4
Cette question et ses réponses sont liées au problème et peuvent aider.
Elomage
apparemment un problème connu pour la partition cryptée. answer askubuntu.com/a/230942/231504 is great - travaille pour moi. Aussi, veuillez augmenter le nombre d'utilisateurs affectés dans le suivi d'ubuntu: bugs.launchpad.net/ubuntu/+source/unattended-upgrades/+bug/…
pestophagous

Réponses:

48

Pour lister tout le noyau:
dpkg --get-selections | grep "linux-image-[[:digit:]].*" | tr "\t" ";" | cut -d ";" -f1

Le résultat ressemble un peu à ceci:

linux-image-3.19.0-7-generic 
linux-image-3.18.0-13-generic  
linux-image-3.16.0-23-generic

Ne supprimez pas tous les noyaux, seulement les anciens!

Ensuite, retirons le noyau 3.16,
sudo apt-get purge linux-image-3.16.0-23-generic

puis tous les paquets inutilisés du système:
sudo apt-get autoclean && sudo apt-get autoremove

Paradiesstaub
la source
J'ai extraaussi appelé , par exemple les deux linux-image-3.13.0-40-genericet linux-image-extra-3.13.0-40-generic. Puis-je supprimer ceux avec extra?
Mads Skjern
Cela a été extrêmement utile, mais n'a pas complètement résolu mon problème (la purge d'un ancien noyau échouait toujours). J'ai dû supprimer manuellement certains anciens fichiers du noyau. J'ai trouvé quelques gros qui utilisent find /boot/ -type f | xargs du | sort -n. Mon noyau est en cours d' exécution 3.13.0-66-generic, donc je fais attention de ne rien suppression lié à cela, mais je l' ai fait enlever ce qui suit: sudo rm /boot/initrd.img-3.13.0-63-generic /boot/initrd.img-3.13.0-65-generic /boot/vmlinuz-3.13.0-65-generic /boot/vmlinuz-3.13.0-63-generic. Enfin, la purge sur un ancien noyau réussit.
Blong
4
si vous avez vraiment 0 octet libre, cela ne fonctionnera pas comme @blong a dit. vous devez supprimer manuellement un ancien fichier vmlinuz avant, car le processus de purge doit créer certains fichiers et, s'il ne reste plus que 0 octets, cela échoue.
Pomarc
1
Comment savoir quels noyaux sont vieux? Ma sortie est linux-image-4.10.0-42-générique linux-image-4.13.0-26-générique linux-image-4.13.0-32-générique linux-image-4.13.0-37-générique linux-image -4.13.0-38-générique linux-image-4.13.0-39-générique linux-image-4.13.0-41-générique linux-image-4.13.0-43-générique linux-image-4.8.0-36 -générique
jacob
25

La cause était en effet de vieilles images du noyau.
Pour nettoyer tout ce que je devais faire était de lancer une ligne:

sudo apt-get autoclean && sudo apt-get autoremove

Cela reconnaissait automatiquement les anciens noyaux et les supprimait.

Selah
la source
9

Il se peut que votre /bootpartition ait accumulé trop de versions du noyau lors de mises à niveau au fil du temps. Cette partition est susceptible d'être séparée de votre grande partition de disque (montée en tant que /). Vous pouvez vérifier l' /bootespace de la partition comme ceci (recherchez la ligne avec / boot):

df -h

Il y a une belle page sur la façon de supprimer les vieux noyaux .

En bref, vérifiez votre version actuelle du noyau, obtenez la liste de ce qui est installé, puis apt-get supprimez les anciennes versions. Il existe également une commande "magique" sur une page sur la page qui fera tout cela pour vous. Mais utilisez-le à vos risques et périls.

Instructions plus en détail:

  1. Obtenez la version actuelle du noyau, celle que vous voulez conserver :

    uname -r
    
  2. Obtenez la liste de tous les noyaux installés:

    dpkg -l | grep linux-image-
    
  3. Exécutez apt-get remove sur les noyaux que vous souhaitez supprimer. Pas sur le dernier ! Par exemple:

    sudo apt-get remove linux-image-2.6.32-22-generic
    

Plus de notes:

  • dpkg -lvous indiquera le statut du paquet (noyau) avant le nom du paquet. Par exemple:

    rc  linux-image-3.13.0-39-generic  ...
    ii  linux-image-3.13.0-40-generic  ...
    
    • signifie « rc » que le paquet est r emoved et a c onfiguration fichiers. Celles-ci, vous n’avez plus besoin de les enlever.
    • des moyens « II » que le paquet est marqué pour i nstallation et est i nstallé

    Sur cette base, vous pouvez répertorier uniquement les packages du noyau installés:

    dpkg -l | grep "ii.*linux-image-"
    

Solution alternative , en utilisant l'outil graphique Ubuntu Tweak .

Installez et accédez à Computer Janitor, vérifiez les paquets Système-> Ancien noyau et Système-> Unneeded, puis appuyez sur Nettoyer.

élomage
la source
3

Utilisez ce script pour supprimer tous les anciens noyaux de la version actuelle et précédente (la dernière version du noyau)

KERNELMAGES=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-image/g'`

KERNELHEADERS=`ls -lRt /boot/vmlinuz-*| awk -F/ '{print $3}' | grep -v $(uname -r) | sed 1d | sed -e 's/vmlinuz/linux-headers/g'`

for PURGEKERNEL in `echo $KERNELMAGES $KERNELHEADERS`; do

apt-get autoremove -y && apt-get purge $PURGEKERNEL -y

done
PKumar
la source
A travaillé parfaitement, même quand je ne pouvais pas faire la réponse de "Paradiesstaub" à partir de la ligne de commande.
bulltorious
Je reçois une "permission refusée" ...
Richard Hardy