web-dev-qa-db-fra.com

Pas assez d'espace disque disponible lors de la mise à niveau

Je reçois une erreur dans le programme de mise à jour du logiciel lorsque j'essaie de faire mes mises à jour quotidiennes. ça dit:

The upgrade needs a total of 25.3 M free space on disk `/boot`.
Please free at least an additional 25.3 M of disk space on `/boot`.
Empty your trash and remove temporary packages of former installations 
using `Sudo apt-get clean`.

J'ai essayé de taper Sudo apt-get clean dans le terminal mais je reçois toujours le message. Toutes les pages que j'ai lues semblent être destinées aux Ubuntuers expérimentés. J'utilise Ubuntu 12.10. Je souhaite passer à la version 13.04 mais je comprends que je dois d'abord terminer ces tâches.

Voici le résultat de la saisie de cat /etc/fstab dans le terminal:

# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a
# device; this may be used with UUID= as a more robust way to name devices
# that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
/dev/mapper/ubuntu-root /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda1 during installation
UUID=fa55c082-112d-4b10-bcf3-e7ffec6cebbc /boot           ext2    defaults        0       2
/dev/mapper/ubuntu-swap_1 none            swap    sw              0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
matty@matty-G41M-ES2L:~$ 

Sortie de df -h:

Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/ubuntu-root  915G   27G  842G   4% /
udev                     984M  4.0K  984M   1% /dev
tmpfs                    397M  1.1M  396M   1% /run
none                     5.0M     0  5.0M   0% /run/lock
none                     992M  1.8M  990M   1% /run/shm
none                     100M   52K  100M   1% /run/user
/dev/sda1                228M  222M     0 100% /boot
matty@matty-G41M-ES2L:~$ 

Et dpkg -l | grep linux-image donne:

ii linux-image-3.5.0-17-generic 3.5.0-17.28 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-18-generic 3.5.0-18.29 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-19-generic 3.5.0-19.30 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-21-generic 3.5.0-21.32 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-22-generic 3.5.0-22.34 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-23-generic 3.5.0-23.35 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-24-generic 3.5.0-24.37 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-25-generic 3.5.0-25.39 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
ii linux-image-3.5.0-26-generic 3.5.0-26.42 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
iF linux-image-3.5.0-28-generic 3.5.0-28.48 i386 Linux kernel image for version 3.5.0 on 32 bit x86 SMP
139
carmatt95

Remarque: cette réponse est censée être davantage une "explication" que la meilleure façon/la plus simple de supprimer les anciens noyaux. Pour le meilleur moyen/le plus simple de supprimer les anciens noyaux, veuillez consulter les autres réponses.

D'accord, donc d'après la sortie de /etc/fstab, il semble que votre /boot soit monté sur une partition distincte et à la sortie de df -h , cette partition est pleine. En effet, de vieux noyaux installés ne sont plus nécessaires. vous pouvez le savoir en regardant le résultat de dpkg -l | grep linux-image que vous avez posté, où vous pouvez voir plus d'un "linux-image" avec différentes versions. Nous devons supprimer les anciennes versions.

Premièrement, je veux que vous exécutiez la commande uname -r dans un terminal, cela vous montrera la version du noyau que vous utilisez actuellement. Nous ne voulons jamais supprimer cette version du noyau. La commande dira quelque chose comme ceci 3.5.0-26-generic. Prenez note de ce numéro, 26! Les commandes suivantes supposeront que c'est le noyau que vous utilisez.

La commande pour supprimer une ancienne version du noyau est la suivante:

Sudo apt-get purge linux-image-x.x.x-xx-generic

... où les x caractères sont des nombres. Donc, dans votre cas, comme vous avez beaucoup d'anciennes versions (17, 18, 19, etc ...), nous devrions exécuter cette commande pour chacune des versions, comme ceci:

  • Sudo apt-get purge linux-image-3.5.0-17-generic
  • Sudo apt-get purge linux-image-3.5.0-18-generic
  • Sudo apt-get purge linux-image-3.5.0-19-generic

...etc. Mais, il y a un moyen de faire tout cela avec une commande. La commande est la suivante (NE PAS LANCER LA COMMANDE ENCORE! Lisez ce qui suit.):

Sudo apt-get purge linux-image-3.5.0-{17,18,19,21,22,23,24}-generic

Cette commande supprimera les versions mentionnées entre crochets. Je n'ai pas inclus les versions 25, 26 et 28 pour les raisons suivantes:

  • N’a pas inclus évidemment 26 parce que c’est la version du noyau que vous utilisez actuellement! C'est la version que nous avons obtenue avec la commande uname -r, tu te souviens? Nous ne voulons jamais enlever ça!
  • N'a pas inclus 28 parce que c'est celui que votre mise à niveau essayait de mettre à niveau (vous pouvez le savoir à partir du statut iF qui le suit, ce qui signifie qu'il est "à moitié configuré").
  • N'incluez pas 25, car il est généralement recommandé de laisser au moins une ancienne version. Donc, puisque vous utilisez 26, nous en garderons 25, nous ne l'inclurons donc pas dans la commande ci-dessus.

Donc, si le dernier numéro de uname -r est 26 (ou 28, voire 25), vous pouvez alors exécuter la commande ci-dessus en toute sécurité. Entrez votre mot de passe lorsque vous y êtes invité, puis tapez y lorsque vous y êtes invité. Cela montrera un tas de lignes, et retournera éventuellement à la commande Invite (dans votre cas, matty@matty-G41M-ES2L:~$), espérons sans erreurs. Quand c'est fait, faites df -h et regardez la dernière ligne, celle qui commence par /dev/sda1. Vous devriez constater qu'il dispose désormais de plus d'espace et que le pourcentage utilisé est inférieur à 100% comme avant. Vous pouvez maintenant procéder à votre mise à jour à nouveau.

191
Alaa Ali

Vous pouvez installer Ubuntu-Tweak.Pour installer, suivez les étapes suivantes:

Ouvrez le terminal. Ajoutez le référentiel requis avec la commande:

Sudo add-apt-repository ppa:tualatrix/ppa

Mettez à jour la liste de logiciels avec la commande:

Sudo apt-get update

Enfin, installez Ubuntu Teak avec la commande:

Sudo apt-get install ubuntu-Tweak

Après cela, ouvrez le tableau de bord et tapez "Ubuntu Tweak".

Ensuite, allez à l’onglet janitor et sélectionnez les cases à cocher Apps, Personal et System et cliquez sur clean bouton en bas à droite.

42
αғsнιη

Un moyen rapide de supprimer tous les noyaux et en-têtes inutilisés (à l'exception du noyau en cours d'exécution) a été signalé par @Lekensteyn dans son réponse à la question Comment puis-je libérer de l'espace dans/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]+//')") 

Cela devrait libérer suffisamment d’espace pour la mise à niveau.

17
marianoju

Il existe un rapport de bogue sur le problème ici: https://bugs.launchpad.net/ubuntu/+source/update-manager/+bug/1183692

N'hésitez pas à indiquer si "ce bogue vous concerne aussi", afin d'attirer davantage l'attention.

6
alci

Sur mon système Ubuntu personnel, je suis une méthode similaire à celle affichée, mais elle est un peu plus simple et supprime davantage d’en-têtes de noyau, etc.

  1. Je vérifie le noyau que j'utilise tel quel impératif pour ne pas interférer avec cela.

    uname -a
    
  2. Ensuite, je regarde/boot dans le but de supprimer tous les fichiers liés au noyau qui sont pas directement liés au noyau en cours d’exécution. Cela me donne une liste de toutes les versions du noyau que je veux supprimer, par exemple: 3.5.0-17, 3.5.0-18

    ls -l /boot
    
  3. Maintenant, je prends la première version du noyau de ma liste de purge et trouve tous les paquets qui y sont liés.

    dpkg -l | grep 3.5.0-17
    
  4. Les purger du système

    Sudo apt-get purge <list of packages separated by spaces>
    
  5. revenez à 3 et sélectionnez la prochaine version du noyau dans ma liste de purge.

  6. Terminé

3
Kiat

Je recevais cette erreur, cet article a aidé.

J'ai utilisé df -h pour identifier que le démarrage était complet, uname -r pour la version, puis j'ai utilisé la chaîne purge indiquée ci-dessus pour supprimer les anciens noyaux. la purge à noyau unique a fonctionné, mais pas la multi (pour moi).

J'ai trouvé les fichiers dans le truc Windows; Je ne pouvais pas les supprimer, je devais utiliser le terminal, mais cela me montrait les anciennes versions que j'avais.

Je ne sais pas pourquoi/boot (sda2) est partitionné et pourquoi c'est si petit. mais maintenant je peux utiliser Ubuntu Updater à nouveau.

J'ai eu quelques succès mineurs avec Sudo apt-get update, Sudo apt-get upgrade, Sudo apt-get clean, a également essayé le logiciel libre Bleachbit. Utilisez la chaîne de purge mais pas sur votre version actuelle. J'espère que ça aide quelqu'un.

1
Brian P

Vous pouvez essayer avec la commande ci-dessous de supprimer les anciens paquetages d'images du noyau si vous rencontrez ces problèmes.

Sudo apt autoremove

Après cela, vous pouvez faire la mise à jour

0
Dinusha Dilanka

Avez-vous installé d'anciens packages d'image du noyau qui ne sont pas utilisés? Ceux-ci peuvent occuper de l'espace sur/boot. Je vous recommande de passer en revue l'ensemble des packages du noyau installés avec une commande telle que:

dpkg -l "linux-image*" | grep "^i"

Cela devrait fournir une vue d'ensemble de l'ensemble des packages d'images du noyau installés. Pour les linux-image paquets qui ne sont pas utilisés et qui ne seraient probablement pas nécessaires à des fins de récupération - par exemple, par exemple. J'aime conserver au moins une version du noyau derrière la version active installée, pour la récupération - sinon, vous pourriez supprimer tous les paquets inutilisés, en utilisant votre outil d'emballage préféré, tel qu'aptitude.

Je vous recommanderais également de jeter un coup d'œil aux sources inux-headers, linux-image-extras (le cas échéant), ainsi que linux-source , et linux-tools packages, tels qu'ils peuvent être installés avec tous les packages linux-image non utilisés.

0
Sean Champ

Je doute que beaucoup, le cas échéant, se heurteront à ce problème, mais je le cite ici pour la documentation au cas où quelqu'un en aurait besoin.

Mon problème est que je compilais différents noyaux personnalisés jusqu'à ce que je manque d'espace. Pour nettoyer l'espace, je devais entrer dans chaque répertoire du noyau dans lequel je travaillais et exécuter un Sudo make clean.

  • $ cd /usr/src Répertoire où se trouve la source du noyau
  • $ cd linux-image-custom_kernel_name
  • $ Sudo make clean
0
Jacksonkr

La réponse de marianoj a vraiment aidé, sauf que j'ai eu une erreur en utilisant apt purge. Je ne pouvais pas trouver une option de force.

La combinaison du niveau inférieur de dpkg m'a permis de procéder:

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