Question Comment puis-je libérer plus d'espace dans / boot?


ma /boot la partition est presque pleine et je reçois un avertissement chaque fois que je redémarre mon système. J'ai déjà supprimé les anciens paquets du noyau (linux-headers ...), en fait je l'ai fait pour installer une nouvelle version du noyau fournie avec les mises à jour automatiques.

Après avoir installé cette nouvelle version, la partition est à nouveau presque pleine. Alors, que puis-je supprimer? Y a-t-il d'autres fichiers associés aux anciennes images du noyau?

Voici une liste des fichiers qui sont sur mon /boot cloison:

:~$ ls /boot/
abi-2.6.31-21-generic         lost+found
abi-2.6.32-25-generic         memtest86+.bin
abi-2.6.38-10-generic         memtest86+_multiboot.bin
abi-2.6.38-11-generic         System.map-2.6.31-21-generic
abi-2.6.38-12-generic         System.map-2.6.32-25-generic
abi-2.6.38-8-generic          System.map-2.6.38-10-generic
abi-3.0.0-12-generic          System.map-2.6.38-11-generic
abi-3.0.0-13-generic          System.map-2.6.38-12-generic
abi-3.0.0-14-generic          System.map-2.6.38-8-generic
boot                          System.map-3.0.0-12-generic
config-2.6.31-21-generic      System.map-3.0.0-13-generic
config-2.6.32-25-generic      System.map-3.0.0-14-generic
config-2.6.38-10-generic      vmcoreinfo-2.6.31-21-generic
config-2.6.38-11-generic      vmcoreinfo-2.6.32-25-generic
config-2.6.38-12-generic      vmcoreinfo-2.6.38-10-generic
config-2.6.38-8-generic       vmcoreinfo-2.6.38-11-generic
config-3.0.0-12-generic       vmcoreinfo-2.6.38-12-generic
config-3.0.0-13-generic       vmcoreinfo-2.6.38-8-generic
config-3.0.0-14-generic       vmcoreinfo-3.0.0-12-generic
extlinux                      vmcoreinfo-3.0.0-13-generic
grub                          vmcoreinfo-3.0.0-14-generic
initrd.img-2.6.31-21-generic  vmlinuz-2.6.31-21-generic
initrd.img-2.6.32-25-generic  vmlinuz-2.6.32-25-generic
initrd.img-2.6.38-10-generic  vmlinuz-2.6.38-10-generic
initrd.img-2.6.38-11-generic  vmlinuz-2.6.38-11-generic
initrd.img-2.6.38-12-generic  vmlinuz-2.6.38-12-generic
initrd.img-2.6.38-8-generic   vmlinuz-2.6.38-8-generic
initrd.img-3.0.0-12-generic   vmlinuz-3.0.0-12-generic
initrd.img-3.0.0-13-generic   vmlinuz-3.0.0-13-generic
initrd.img-3.0.0-14-generic   vmlinuz-3.0.0-14-generic

Actuellement, j'utilise le 3.0.0-14-generic noyau.


524
2017-12-22 10:06


origine


Il convient de mentionner que toutes les installations d'Ubuntu n'auront pas une partition / boot séparée - souvent, il ne s'agira que d'une seule grande partition. Cette réponse s'applique à ceux qui ont une partition / boot séparée. Ceux qui utilisent LVM ou le cryptage "full disk" ont besoin d'un démarrage séparé, sinon cela peut être facultatif. - thomasrutter
Si quelqu'un d'autre a le même problème que moi: après que / boot n'ait plus d'espace disponible, "apt-get upgrade" échouera lors de la recréation des fichiers initrd pour les noyaux installés ou que le script update-initramfs pense qu'ils sont installés. contenu de / var / lib / initramfs-tools. Dans cette situation, il est impossible de supprimer les anciens noyaux en utilisant apt-get car la partition fscking / boot ne dispose plus d’espace sur le périphérique. On peut le faire en utilisant "dpkg -P" suivi par le nettoyage de l'entrée correspondante dans / boot (dans l'espace libre) et / var / lib / initramfs-tools (l'image initrd ne sera pas générée). - wojci
Un point clé pour des réponses correctes est qu'elles vous disent de supprimer le paquets contenant les anciennes versions du noyau. De nombreuses pages Web traitant de ce problème recommandent de supprimer directement la des dossiers dans la partition / boot; cela peut fonctionner pendant un certain temps, mais vous pouvez éventuellement mettre à jour un paquet qui recrée des fichiers manquants pour les versions de noyau qui ont des paquets, vous faisant ainsi perdre de la place. - kgrittn
help.ubuntu.com/community/RemoveOldKernels - jarno


Réponses:


Vous avez beaucoup de noyaux inutilisés. Supprimez tous les noyaux sauf les derniers avec:

sudo apt-get purge linux-image-{3.0.0-12,2.6.3{1-21,2-25,8-{1[012],8}}}

Ceci est un raccourci pour:

sudo apt-get purge linux-image-3.0.0-12 linux-image-2.6.31-21 linux-image-2.6.32-25 linux-image-2.6.38-10 linux-image-2.6.38-11 linux-image-2.6.38-12 linux-image-2.6.38-8

Enlever le linux-image-x.x.x-x paquet va également supprimer linux-image-x.x.x-x-generic.

Les en-têtes sont installés dans /usr/src et sont utilisés lors de la construction de modules de noyau hors arborescence (comme le pilote nvidia et virtualbox propriétaires). La plupart des utilisateurs doivent supprimer ces paquets d’en-tête si le paquet de noyau correspondant (linux-image-*) N'est pas installé.

Pour répertorier tous les noyaux installés, exécutez:

dpkg -l linux-image-\* | grep ^ii

Une seule commande pour afficher tous les noyaux et en-têtes pouvant être supprimés, à l'exception du actuel noyau en cours d'exécution:

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

Il sélectionne tous les paquets nommés en commençant par linux-headers-<some number> ou linux-image-<some number>, imprime les noms de paquet pour les paquets installés et exclut ensuite le noyau actuellement chargé / en cours d'exécution (pas nécessairement le dernier noyau!). Cela correspond à la recommandation de tester un noyau plus récent avant de supprimer les anciens noyaux connus.

Ainsi, après la mise à niveau des noyaux et le redémarrage pour le tester, vous pouvez supprimer tous les autres noyaux avec:

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

600
2017-12-24 14:34



Réponse fantastique Une autre information vous aiderait: comment pouvez-vous dire (avec certitude) lequel des noyaux que vous utilisez? Je suppose que vous ne pouvez pas simplement supposer que c'est le dernier ... modifier: Et cela regards comme la réponse est uname -a. Probablement le meilleur pour vous assurer de ne pas avoir un redémarrage en attente vers le nouveau noyau d’installation (comme je l’ai fait; mais j’ai remarqué l’incompatibilité entre uname -a et le "dernier" noyau). - T.J. Crowder
@freddyb Fait. Notez que la commande imprime / supprime noyaux autres que celui chargé / démarré. - Lekensteyn
Si apt-get purge échoue à cause de dépendances non satisfaites, vous pouvez suivre les conseils de askubuntu.com/questions/171209/… - svandragt
Réponse très complète et fonctionne toujours… et encore nécessaire en 2014. Un peu ridicule que cela ne soit toujours pas fait automatiquement par les outils graphiques. - allprog
@ byf-ferdy Le noyau est une partie essentielle du système d'exploitation, si la version la plus récente ne fonctionne pas complètement avec votre matériel, vous pouvez toujours en sélectionner une autre pour démarrer. Une fonctionnalité intéressante serait probablement quelque chose qui supprime tous les noyaux installés automatiquement âgés de plus d'un mois (à l'exception des deux derniers). - Lekensteyn


Votre partition de démarrage est pleine. Comme il s'agit d'une mise à jour du noyau, ces fichiers seront copiés sur la partition de démarrage, vous devez donc les nettoyer. Voici une article de blog cela vous montrera comment effacer les anciennes images du noyau avec une seule commande. Je vais donner un synopsis de base de la méthode. Utilisez cette commande pour imprimer la version actuelle de votre noyau:

uname -r

Ensuite, utilisez cette commande pour imprimer tous les noyaux que vous avez installés et qui ne sont pas votre nouveau noyau:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]'

Assurez-vous que votre noyau actuel ne figure pas sur cette liste. Notez que c'est la majorité de la commande finale (ci-dessous). Pour désinstaller et supprimer ces anciens noyaux, vous devez diriger ces arguments vers:

sudo apt-get -y purge

Maintenant, nous pouvons faire tout ce que nous voulons en combinant ces deux dernières commandes dans ce désordre impie:

dpkg -l linux-{image,headers}-"[0-9]*" | awk '/^ii/{ print $2}' | grep -v -e `uname -r | cut -f1,2 -d"-"` | grep -e '[0-9]' | xargs sudo apt-get -y purge

Et cette seule commande prendra soin de tout pour vous. Je vous confirmerai que cela fonctionne parfaitement mais ne faites confiance à personne sur Internet. :) Pour plus d’informations, le billet de blog explique très bien ce que chaque partie de la commande lit si bien que vous êtes convaincu qu’elle fait ce que vous voulez.


200
2018-02-21 03:38



Cela a bien fonctionné, merci. - Michael Durrant
cela correspond aussi à linux-libc-dev: amd64 - Frederick Nord
quelle sera la suppression involontaire de "linux-libc-dev: amd64" cause? - ConfusedStack
@FrederickNord merci pour le heads-up. Corrigé ceci. Il aurait été difficile de compiler des programmes c. - dward
La commande sonne bien, mais quand je l'exécute, j'obtiens la même erreur que lorsque je veux installer quelque chose et elle ne peut pas le faire car le démarrage est complet: --------------- ----------- Les paquets suivants ont des dépendances non satisfaites: linux-image-extra-4.2.0-27-generic: Depends: linux-image-4.2.0-27-generic mais ça ne va pas à installer linux-image-extra-4.2.0-30-generic: Dépend: linux-image-4.2.0-30-generic mais il ne va pas être installé - Alex


sudo apt-get autoremove

Cette commande effectue le travail automatiquement.


94
2017-11-05 05:58



Comme son nom l’indique, apt-get AUTOremove est une opération automatisée dans laquelle le système prend sa "meilleure idée" de ce que vous essayez d’atteindre. Il ne doit pas être utilisé pour remplacer l'administration du système de bon sens. Le problème avec cette approche: si vous (ou une mise à jour) supprime un paquet qui fait partie de cette liste de dépendances, la fonction de suppression automatique veut supprimer tous les autres paquets de la liste de dépendances même avec un système complètement cassé). - Rinzwind
Référence: 1 de nombreuses sources pour ce commentaire ci-dessus: linuxquestions.org/questions/debian-26/… - Rinzwind
Si linux-image-generic est installé et que les nouveaux noyaux ne sont pas installés explicitement, cela supprimera les anciens noyaux. Le bon sens consiste à ne pas accepter de modification du système sans les lire au préalable. Si le bon sens a été utilisé avant d'utiliser cette commande, il n'y aura pas de problème. - mchid
@Rinzwind - Cette commande a vidé 250 Mo de mon espace disque en supprimant les anciens «en-têtes linux» - Chinmaya B
autoremove fonctionne s'il est utilisé avant une condition d'espace insuffisant existe. Cependant, une fois que apt est à court d'espace et abandonne (et l'utilisateur remarque finalement le problème), il est trop tard pour exécuter autremove ou toute autre solution basée sur apt. Si c'est le cas pour vous, essayez l'une des solutions basées sur dpkg. - user535733


Le gestionnaire de paquets Synaptic peut être utilisé pour sélectionner et supprimer facilement les anciennes images du noyau. Screenshot of Synaptic Package Manager

Si vous n'avez pas déjà installé Synaptic:

sudo apt-get install synaptic

Lancez l'application et sélectionnez les options affichées.

Vous devriez pouvoir mettre en évidence tous les paquets "linux-" avec la version "2.6.x" où x est compris entre 31 et 38 selon les fichiers de votre dossier / boot.

Cliquez avec le bouton droit sur chacun de ces paquets Linux et choisissez l'option "Marquer pour la suppression complète". Enfin, cliquez sur le bouton Appliquer. Cela supprimera tous les fichiers et tous les fichiers associés. Votre /boot Le dossier devrait maintenant être un peu plus net.


38
2017-12-24 14:34



Je suis le 14.04. J'ai géré cette situation par le passé via la ligne de commande, mais j'ai décidé d'essayer cette méthode aujourd'hui ... pour moi, mes images Linux étaient localisées sous installées (manuel), pas installées (locales ou obsolètes) - Ryan
Oh non. Je ne peux pas installer Synaptic car il n'y a pas d'espace sur /boot! - John McGehee
@JohnMcGehee fsck et parted devraient résoudre ce problème pour vous. - FlipMcF


Merci pour votre post détaillé de votre problème, cela m'a permis d'aller dans la bonne direction. Bien qu'il soit utile de conserver les anciens fichiers du noyau, vous pouvez les supprimer tous en une fois, consultez ce post:
Comment supprimer tous les en-têtes, images et modules du noyau Linux non utilisés

Fait via la ligne de commande. Si vous le faites via l'utilisation à distance de quelque chose comme WINSCP pour ouvrir une session de terminal et simplement le coller, cela fonctionne très bien.

Ici, il est copié à partir du lien de l'article, je vous suggère de lire l'article complet:

dpkg -l 'linux-*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\(.*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo apt-get -y purge

24
2018-06-01 12:53





Ceci est une nouvelle réponse à une ancienne question, mais un moyen facile de nettoyer cette chose (et plus encore) est d'installer Ubuntu Tweak. À Installez-le:

sudo add-apt-repository ppa:tualatrix/ppa
sudo apt-get update
sudo apt-get install ubuntu-tweak

alors vous pouvez exécuter Ubuntu Tweak, Aller à l'onglet "concierge", et d'ici il y a trois clics:

Ubuntu tweak janitor for old kernels

Il est préférable de laisser le dernier noyau (on ne sait jamais) ou un noyau de travail bien connu pour la sécurité. mais c'est facilement personnalisable.

Vous pouvez utiliser le même outil pour nettoyer beaucoup de choses - rappelez-vous simplement que si vous nettoyez le cache de vignettes ou le cache TB, le système devra les reconstruire si nécessaire.


22
2017-11-25 13:11



J'ai essayé d'installer Ubuntu tweak et d'aller aussi sur le site Web du référentiel. Il dit que c'est seulement pour 13.10 et avant. Avez-vous une version mise à jour pour 15.04? - JayCouture.com
@ JayCouture.com La version du site est pour 14.04 (le "pour 13.10 et avant" est un lien vers les anciennes versions). J'ignore s'il existe une version pour 14.10 ou 15.04. - Rmano


J'ai pu résoudre le problème en utilisant dpkg pour retirer les paquets directement. Bien que les paquets soient toujours listés dans dpkg -l, les fichiers sont supprimés de /boot, libérant de l'espace.

phrogz@planar:/boot$ sudo dpkg --remove linux-image-2.6.32-30-server
(Reading database ... 145199 files and directories currently installed.)
Removing linux-image-2.6.32-30-server ...
Running postrm hook script /usr/sbin/update-grub.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-35-server
Found linux image: /boot/vmlinuz-2.6.32-34-server
Found initrd image: /boot/initrd.img-2.6.32-34-server
Found linux image: /boot/vmlinuz-2.6.32-33-server
Found initrd image: /boot/initrd.img-2.6.32-33-server
Found linux image: /boot/vmlinuz-2.6.32-32-server
Found initrd image: /boot/initrd.img-2.6.32-32-server
Found linux image: /boot/vmlinuz-2.6.32-31-server
Found initrd image: /boot/initrd.img-2.6.32-31-server
Found memtest86+ image: /memtest86+.bin
done

# Repeat for kernels -31 and -32 and -33, up to (but not including)
# the version listed by `uname -a`

Après ça, apt-get -f install résolu mes problèmes de dépendance, et tout allait bien avec le monde.

Je n'accepterai pas cette réponse, cependant, je dois encore savoir si je devrais augmenter mon /boot taille ou faire autre chose.


17
2017-12-03 18:47



Vous devez soit ne pas avoir de partition distincte / boot en premier lieu, soit augmenter sa taille car 100mb est trop petit. - psusi
Merci, je supprime via: sudo dpkg --remove linux-headers-3.5.0-28* - TiloBunt
et sudo dpkg --remove linux-image-3.5.0-28* pour l'image, vérifié via df -h - TiloBunt


Vous pouvez cesser d'utiliser une partition / boot distincte, vous ne disposerez donc pas d'un espace aussi limité. Pour ce faire, démontez la partition, puis montez-la ailleurs et copiez tous les fichiers dans le répertoire / boot de votre partition racine, puis supprimez l'entrée de / etc / fstab et réinstallez grub. Par exemple (vous devrez utiliser la partition correcte):

sudo -s
umount /boot
mount /dev/sda2 /mnt
cp -a /mnt/* /boot/
umount /mnt
gedit /etc/fstab
grub-install /dev/sda

Vous pouvez ensuite utiliser gparted pour supprimer l'ancienne partition / boot et éventuellement étendre la partition racine pour utiliser cet espace. Pour étendre la partition racine, vous devez démarrer à partir du livecd et l'espace libre doit être immédiatement à droite. Si la partition / boot se trouve actuellement à gauche de la partition racine, vous devrez d'abord déplacer la partition racine vers la gauche, puis l'étendre, mais cela peut prendre très très longtemps. difficulté.


11
2017-12-22 16:38



Déplacer / démarrer sur ma partition principale n'est pas une solution pour moi, car tout, sauf / boot est chiffré. Vous ne pouviez pas le savoir de ma question, désolé. - user6722
C'est une bonne solution si les solutions ci-dessus ne fonctionnent pas car vous n'avez aucun espace sur le volume de démarrage ou si vous avez à plusieurs reprises un problème de "manque d'espace". S'il vous plaît lisez d'abord pourquoi il est parfois nécessaire d'avoir une partition / boot si: (help.ubuntu.com/community/DiskSpace) - svandragt
@svandragt, il n'y a pratiquement aucune raison d'avoir besoin d'une partition / boot ces jours-ci. À propos de la seule qui reste est si votre bios est cassé et ne peut pas voir le disque entier, et toute machine faite dans la dernière décennie n'a pas une telle limitation. Les autres cas hérités, tels que l'utilisation de RAID ou LVM, sont désormais gérés correctement par grub2. - psusi
Il y a quelques raisons pour avoir une partition de démarrage séparée. Mais je ne suis pas sûr que les avantages valent la configuration de la complexité accrue. 1. Le système d'exploitation peut bénéficier d'un démarrage plus rapide via ext2. 2. La sécurité peut être augmentée en montant / démarrant en tant que RO. (rootkits, etc.), ou même ne pas être démonté à l’exécution d’OS. 3. grub (1) a (eu) des problèmes avec ext4 encore. 4. Requis pour exécuter lvm (grubv1). Bien que cela ne s'applique pas à la configuration par défaut d'ubuntu. - David Cahill
lsblk peut être utilisé pour déterminer quelle partition est ce que - Mr Purple