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
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:
uname -r
, tu te souviens? Nous ne voulons jamais enlever ça!iF
qui le suit, ce qui signifie qu'il est "à moitié configuré").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.
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.
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.
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.
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.
Je vérifie le noyau que j'utilise tel quel impératif pour ne pas interférer avec cela.
uname -a
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
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
Les purger du système
Sudo apt-get purge <list of packages separated by spaces>
revenez à 3 et sélectionnez la prochaine version du noyau dans ma liste de purge.
Terminé
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.
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
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.
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
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]+//')")