Ma partition / boot a atteint 100% et maintenant je ne peux pas mettre à jour. Ne peut pas enlever les vieux noyaux pour faire de la place

136

Mon premier problème a été lorsque j'ai essayé de apt-get update ou apt-get upgrade . Lors de la mise à niveau, j'obtiens l'erreur suivante:

You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not installed
E: Unmet dependencies. Try using -f.

J'ai essayé d’exécuter apt-get install -f et c’était le résultat (après avoir dit oui à l’invite)

(Reading database ... 186183 files and directories currently installed.)
Unpacking linux-image-3.2.0-27-generic (from .../linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb) ...
Done.
dpkg: error processing /var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb (--unpack):
 failed in write on buffer copy for backend dpkg-deb during './boot/System.map-3.2.0-27-generic': No space left on device
 No apport report written because the error message indicates a disk full error
                                                                          dpkg-deb:    error: subprocess paste was killed by signal (Broken pipe)
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.2.0-27-generic   /boot/vmlinuz-3.2.0-27-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.2.0-27-generic /boot/vmlinuz-3.2.0-27-generic
Errors were encountered while processing:
/var/cache/apt/archives/linux-image-3.2.0-27-generic_3.2.0-27.43_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

J'ai essayé de faire tourner apt-get autoremove et cela me donne la même erreur que apt-get upgrade .

Quand j'exécute df , j'obtiens ceci pour /boot :

/dev/sda1                    233191     230297         0 100% /boot

Alors, j'ai lu ailleurs que je devrais essayer de purger les vieux noyaux. J'ai vérifié pour quels noyaux j'avais:

$ dpkg -l linux-image-\* | grep ^ii
ii  linux-image-2.6.38-13-server  2.6.38-13.52  Linux kernel image for version 2.6.38 on x86_64
ii  linux-image-3.0.0-13-server   3.0.0-13.22   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-14-server   3.0.0-14.23   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-15-server   3.0.0-15.26   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-16-server   3.0.0-16.29   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.0.0-17-server   3.0.0-17.30   Linux kernel image for version 3.0.0  on x86_64
ii  linux-image-3.2.0-24-generic  3.2.0-24.39   Linux kernel image for version 3.2.0  on 64 bit x86 SMP
ii  linux-image-3.2.0-25-generic  3.2.0-25.40   Linux kernel image for version 3.2.0  on 64 bit x86 SMP
ii  linux-image-3.2.0-26-generic  3.2.0-26.41   Linux kernel image for version 3.2.0  on 64 bit x86 SMP

Lorsque j'essaie de supprimer le plus ancien avec ceci:

$ sudo apt-get purge linux-image-2.6.38-13-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these:
The following packages have unmet dependencies:
linux-image-server : Depends: linux-image-3.2.0-27-generic but it is not going to be     installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Comment puis-je libérer ou étendre le démarrage sans endommager mon installation?

    
posée Strifey16 02.08.2012 - 17:17
la source

11 réponses

113

Libérer de l’espace sur le système de fichiers racine

Pour libérer de l’espace sur le système de fichiers racine, vous pouvez essayer d’exécuter apt-get clean .

Si cela ne fonctionne pas, vous pouvez aller dans /var/cache/apt/archives et supprimer manuellement quelques fichiers du cache pour récupérer de l'espace, par exemple:

sudo rm linux-headers-*

Il ne sera pas difficile de supprimer tous les fichiers .deb si vous en avez besoin - c'est ce que fait apt-get clean . Ils seront automatiquement re-téléchargés par apt s'ils sont à nouveau nécessaires.

Libérer de l’espace sur le système de fichiers / boot

L'affiche originale a une partition /boot distincte, et c'est ce qui est plein et empêche le système apt de fonctionner. Il lui faudra libérer de la place là-bas.

S'il y a assez d'espace, allez à /boot et supprimez un ou deux fichiers de configuration:

sudo rm config-3.2.0-19-generic-pae

par exemple, mais en utilisant le nom de l’une des versions du noyau que vous souhaitez supprimer de toute façon. Cela permettra de libérer un peu d'espace (environ 144K chacun).

Si vous avez besoin de plus d’espace, supprimez les anciens fichiers vmlinuz , initrd , abi et System.map jusqu’à ce que vous ayez suffisamment d’espace (environ 22M pour l’une des versions de mon noyau i386).

Quoi que vous fassiez, ne les supprimez pas tous . Vous devez au moins conserver les deux dernières versions correspondantes de chaque type de fichier, pour chaque type de noyau que vous utilisez.

Ensuite, continuez avec vos commandes apt-get install. Comme mentionné ci-dessus, ils devront peut-être re-télécharger certains des debs que vous avez supprimés, mais si tel est le cas, cela se produira automatiquement. Lorsque vous avez besoin de travailler à nouveau, nettoyez-le en utilisant apt-get pour supprimer les paquets correspondant aux fichiers que vous avez supprimés - donc tout correspond.

Le fichier de configuration dans /boot est la configuration du noyau que a été utilisée par l'équipe du noyau pour construire le noyau du même nom. Il devrait être inoffensif à supprimer, sauf si vous le souhaitez pour référence ou pour vous aider à créer vos propres noyaux.

Enfin, vous supprimez manuellement un ancien package de noyau ou deux de la partition /boot pour libérer encore plus d'espace pour le nouveau.

    
réponse donnée John S Gruber 02.08.2012 - 17:54
la source
60

Dans mon cas, les commandes apt et la commande dpkg n'ont pas pu se terminer et n'ont pas pu être supprimées. La mise à jour automatique a échoué lors de l'installation de 2.6.32-56-server .

Ma première étape a été d’identifier l’espace à utiliser,

cd /boot
du -sk *|sort -n

J'avais environ 30 noyaux et fichiers de support.

J'ai fait un uname -a pour obtenir le noyau en cours d'exécution, J'ai identifié que j'étais sur Linux alternativement 2.6.32-43-server et que j'avais fait tar des 6 versions qui ne fonctionnaient pas et étaient anciennes.

tar -cvf ~username/boot.tar *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

J'ai ensuite fait un rm -rf de ce que j'avais sauvegardé:

rm -rf *2.6.32-44-server *2.6.32-45-server *2.6.32-46-server *2.6.32-47-server *2.6.32-48-server *2.6.32-49-server

Je montre ces commandes comme exemples, vous devrez décider avec quoi vous allez travailler pour votre situation.

Maintenant que j'avais de l'espace sur /boot , j'ai pu courir

apt-get -f install 

Pour nettoyer l’installation échouée de 2.6.32-56-server .

J'ai ensuite fait un

apt-get remove linux-headers-2.6.32-38 linux-headers-2.6.32-38-server linux-image-2.6.32-38-server
apt-get remove linux-headers-2.6.32-39 linux-headers-2.6.32-39-server linux-image-2.6.32-39-server

Cela m'a permis de remettre ce que j'avais sauvegardé.

tar -xf ~username/boot.tar
rm  ~username/boot.tar    

Pour nettoyer, je pouvais alors courir:

apt-get autoremove

J'ai redémarré et je dois maintenant utiliser 4% de /boot .

    
réponse donnée A.G. Russell 20.02.2014 - 17:48
la source
19

Vous pouvez utiliser dpkg au lieu de apt-get pour supprimer les anciens noyaux:

sudo dpkg -r linux-image-3.2.0-29-generic
    
réponse donnée psusi 08.04.2014 - 16:38
la source
9

J'ai remarqué qu'il y avait encore des fichiers des anciennes versions dans le répertoire de démarrage:

$ ls /boot
vmcoreinfo-2.6.31-17-server

Et le gestionnaire de paquets listerait les anciennes versions:

dpkg -l | grep linux-image

J'ai donc utilisé cette commande ( autoremove supprimerait également les images plus récentes que je ne souhaite pas supprimer)

sudo apt-get purge linux-image-2.6.31-17-server

Il me restait encore des en-têtes:

dpkg -l | grep linux-headers

J'ai donc fait ceci:

sudo apt-get purge linux-headers-2.6.32-34

Enfin, il restait un paquetage que je ne pouvais pas supprimer avec apt-get purge:

$ dpkg -l | grep linux-image
rc  linux-image-2.6.28-11-server

Source: Supprimer un paquet marqué comme rc by dpkg

sudo dpkg --purge linux-image-2.6.28-11-server
    
réponse donnée mreiter 24.10.2012 - 15:56
la source
2

C'est ce que j'ai utilisé:

sudo apt-get autoremove linux-image-xxxx

Faites cela pour tous les anciens noyaux et ne conservez que les deux derniers.

Si vous souhaitez supprimer automatiquement les anciens noyaux et mettre à jour GRUB voir ceci: Documentation Ubuntu

    
réponse donnée Samer 22.11.2015 - 18:33
la source
2

Vous ne pouvez pas agir sur les paquets, mais vous pouvez agir sur d’autres fichiers. Tout d'abord, parcourez votre dossier personnel et voyez si vous pouvez supprimer quelque chose . Si ce n'est pas le cas, essayez de déplacer une bonne quantité de fichiers sur une autre partition (ou un lecteur flash), puis essayez sudo apt-get install -f pour nettoyer les problèmes de dépendance (vous avez probablement installé un fichier .deb via dpkg ) purger les vieux noyaux. Une fois que vous avez au moins 10 Mo, essayez de purger les logiciels ou fichiers inutiles.

    
réponse donnée hexafraction 02.08.2012 - 17:20
la source
1

Utilisez le gestionnaire de paquets Synaptic. Il vous suffit de sélectionner le package que vous souhaitez supprimer et il vous invitera également à supprimer les packages qui en dépendent. D'après mon expérience, les paquets du noyau sont toujours groupés par deux (ou plus, selon la façon dont vous comptez) qui sont interdépendants. Vous pouvez généralement trouver les anciens rapidement en utilisant le filtre "local / obsolete".

    
réponse donnée Wegko 03.08.2012 - 04:39
la source
1

Exécuter simplement sudo apt-get -f autoremove a résolu mon problème.

    
réponse donnée ForzaGreen 26.04.2018 - 10:26
la source
1

Vérifiez l’utilisation de /var/tmp avec du -sh /var/tmp/ . Tous les fichiers de ce dossier peuvent être supprimés pour créer de l'espace.

Vous pouvez ensuite exécuter les opérations suivantes pour supprimer les anciens noyaux:

sudo apt-get clean
sudo apt install byobu
sudo purge-old-kernels
sudo apt autoremove
sudo update-grub
    
réponse donnée Tertius 06.11.2017 - 10:29
la source
1

Exécuter ceci:

sudo apt-get autoremove
sudo apt-get --purge remove && sudo apt-get autoclean
sudo apt-get -f install
sudo dpkg-reconfigure -a

Source: Je reçois cette erreur après le lancement. aidez svp

    
réponse donnée Ardi Nusawan 15.02.2017 - 19:41
la source
0

J'ai trouvé que la seule chose qui fonctionnait pour moi était l'utilisation d'Aptitude.

sudo aptitude

Puis, quand il s’ouvre, il dit généralement quelque chose sur les dépendances non satisfaites. Vous pouvez appuyer sur la lettre g pour procéder à la suppression suggérée. Il vous amènera à une page où il répertorie ce qui va se passer.

Il devrait y avoir un moins - à côté des noyaux cassés. Appuyez à nouveau sur g pour supprimer les noyaux cassés. Appuyez sur q pour quitter. Vous devriez alors pouvoir utiliser sudo apt-get autoremove pour vous débarrasser des anciens noyaux et libérer de l'espace.

    
réponse donnée Matthew Swanson 04.04.2017 - 01:29
la source

Lire d'autres questions sur les étiquettes