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


142

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 cleandans 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 cat /etc/fstabdans 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-imagedonne:

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

1
En outre, le contenu de votre / etc / fstab peut être utile. Il semble que / boot soit monté sur une partition séparée.
Chuck R

1
Comme dit @Githlar, votre fstab peut nous donner des informations sur vos partitions hd.
Ssoto

1
fstab est un fichier contenant des informations sur les partitions montées lors du démarrage de votre ordinateur. Pour afficher le contenu de ce fichier, tapez cat /etc/fstabun terminal. Copiez la sortie et ajoutez-la à votre question (vous pouvez la modifier). Copiez également la sortie de df -het dpkg -l | grep linux-image.
Alaa Ali

1
Votre problème est que tous les linux-image...fichiers supplémentaires de la /bootpartition utilisent beaucoup d’espace - vous n’avez que 6 Mo d’espace libre sur la partition. sudo dpkg -P purge 'older_linux_image_filename'supprimer toutes les versions sauf les dernières versions = 3.5.0-28.48 et 3.5.0-26.42 Cela devrait vous permettre de mettre à jour / mettre à niveau.
Douggro

2
J'ai juste dû courir sudo apt-get autoremovepour résoudre ce problème.
Juampy NR

Réponses:


192

Remarque: cette réponse est davantage une "explication" que le moyen le plus simple et le 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 le résultat de /etc/fstabvotre publication, il semble que votre /bootpartition est montée sur une partition séparée et, à la sortie de df -h, cette partition est saturée. En effet, de vieux noyaux installés ne sont plus nécessaires. vous pouvez le constater en regardant le résultat de dpkg -l | grep linux-imagevotre publication, où vous pouvez voir plus d'une " image de linux " avec différentes versions. Nous devons supprimer les anciennes versions.

Premièrement, je veux que vous exécutiez la commande uname -rdans un terminal, cela vous montrera la version du noyau que vous utilisez actuellement. Nous ne voulons jamais supprimer cette version du noyau. La commande va dire quelque chose comme ça . Prenez note de ce nombre ,! Les commandes suivantes supposeront que c'est le noyau que vous utilisez.3.5.0-26-generic26

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.), il faudrait 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 LANCEZ PAS 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 de 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 iFstatut suivant, 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 uname -rest 26 (ou 28, voire 25), alors vous pouvez exécuter la commande ci-dessus en toute sécurité. Entrez votre mot de passe lorsque vous y êtes invité et tapez ylorsque vous y êtes invité. Cela montrera un tas de lignes, et retournera éventuellement à l'invite de commande (dans votre cas, matty@matty-G41M-ES2L:~$), espérons sans erreurs. Quand c'est fait, df -hregardez 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.


1
Ça a marché!!! Merci beaucoup! Question bonus: lorsque j'ai téléchargé Ubuntu pour la première fois, j’ai accidentellement supprimé le dossier "images" de la région de départ. En raison de cela, il n'y a pas d'onglet "images" sur le côté. J'ai contourné ce problème en créant simplement un dossier appelé "images", mais il n'apparaît pas dans la barre latérale. Savez-vous comment y arriver? J'ai essayé de cliquer et de glisser, mais en vain. @Alaa
carmatt95

3
Vous êtes les bienvenus! Pour l'autre question, créez une autre question et je vais y répondre. De cette façon, les personnes qui recherchent ce problème peuvent le trouver.
Alaa Ali

13
J'aurais aimé pouvoir en faire autant chaque fois que je reviendrais sur cette référence ... il en aurait beaucoup maintenant.
sevenseacat

4
Oui, revenez ici pour faire référence à la même chose. Vous penseriez que je m'en souviendrais maintenant.
Sevenseacat

2
Une commande plus concise pour purger tous les anciens noyaux est la suivante:sudo apt-get autoremove --purge
ctrueden

42

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".

Et puis allez à l' janitoronglet et sélectionnez Apps, Personalet Systemles cases à cocher et cliquez sur le cleanbouton en bas à droite.


9
Bien mieux que de jouer avec la ligne de commande et d’essayer de supprimer tous les noyaux mais pas ceux qui sont actuels quand ils ont même des versions différentes (pas seulement -32 à la fin) et des paquets -extra. Ubuntu tweak m'a sauvé 5 minutes, merci!
POMATu

Beaucoup plus pratique.
Saeed Amiri

Je n'ai pas pu ajouter le PPA, mais j'ai téléchargé le .debdu site Web du projet ubuntu-tweak.com
Luigi Siri

pas besoin d'ajouter PPA sur Ubuntu 14.04
Edward Torvalds

1
@edwardtorvalds Bien sûr, vous pouvez l'installer sans ajouter son PPA le 14.04 et aussi 14.10 par son .debpackage, mais ce n'est pas le plus préférable. La raison pour laquelle vous souhaitez installer cela via son PPA est parce que cela garantit les mises à jour.
αsнιη

17

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 sa réponse à la question Comment libérer de l'espace supplémentaire 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.



3

Sur mon système Ubuntu à la maison, je suis une méthode similaire à celle publié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, car il est impératif de 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 ne 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é


1

Je recevais cette erreur, cet article a aidé.

J'avais l'habitude df -hd'identifier que le démarrage était plein, uname -rpour la version, puis d'utiliser la purgechaîne 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 un certain succès mineur sudo apt-get update, sudo apt-get upgrade, sudo apt-get clean, bleachbit du logiciel libre a également essayé. Utilisez la chaîne de purge mais pas sur votre version actuelle. J'espère que ça aide quelqu'un.


edit: Je ne pense pas que vous deviez ajouter "-generic" à la chaîne de purge
Brian P

0

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 paquets linux-image 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 installée derrière la version active, à des fins de récupération - sinon, vous pouvez supprimer tous les paquets non utilisés, en utilisant votre outil d’emballage préféré, tel que aptitude.

Je vous recommande également de jeter un oeil aux associés en- têtes inux- , linux-image-extras ( le cas échéant), aussi -source linux et linux-outils paquets, par exemple qui peuvent être installés en même temps que les inutilisés linux-image paquets.


0

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 cet espace, il fallait entrer dans chaque répertoire du noyau dans lequel je travaillais et exécuter un sudo make clean.

  • $ cd /usr/src Répertoire où la source du noyau est
  • $ cd linux-image-custom_kernel_name
  • $ sudo make clean

0

La réponse de marianoju a vraiment aidé, sauf que j'ai eu une erreur d'utilisation 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

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

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.