web-dev-qa-db-fra.com

La partition d'amorçage est pleine, les anciens noyaux ne sont pas supprimés. Paquets cassés

Désolé de demander ce qui est probablement très simple, mais cela fait maintenant une semaine que je suis sur Google. J'ai essayé beaucoup de choses sans succès.

Pour commencer, je reçois une fenêtre contextuelle chaque fois que je démarre en disant que ma partition/boot est pleine, et le gestionnaire Synaptic dit que linux-image-generic est cassé, mais ne parvient pas à réinstaller l’un d’eux (linux-image-extra- 3.13.0-54-generic et linux-image-generic).

Mon terminal me dit d'essayer d'utiliser install -f pour corriger les problèmes, alors j'ai essayé et c'est ce qui est retourné. Malheureusement, je suis encore en train d'apprendre et je n'ai pas réussi à déchiffrer le code, j'aimerais de l'aide

aksel@aksels-PC:~$ Sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
 linux-image-3.13.0-54-generic
Suggested packages:
 fdutils linux-doc-3.13.0 linux-source-3.13.0 linux-tools
The following NEW packages will be installed:
 linux-image-3.13.0-54-generic
0 upgraded, 1 newly installed, 0 to remove and 344 not upgraded.
5 not fully installed or removed.
Need to get 0 B/14,7 MB of archives.
After this operation, 32,8 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
(Reading database ... 431129 files and directories currently installed.)
Preparing to unpack .../linux-image-3.13.0-54-generic_3.13.0-54.91_i386.deb ...
Done.
Unpacking linux-image-3.13.0-54-generic (3.13.0-54.91) ...
dpkg: error processing archive /var/cache/apt/archives/linux-image-3.13.0-54-generic_3.13.0-54.91_i386.deb (--unpack):
 cannot copy extracted data for './boot/vmlinuz-3.13.0-54-generic' to '/boot/vmlinuz-3.13.0-54-generic.dpkg-new': failed to write (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.13.0-54-generic /boot/vmlinuz-3.13.0-54-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.13.0-54-generic /boot/vmlinuz-3.13.0-54-generic
Errors were encountered while processing:
 /var/cache/apt/archives/linux-image-3.13.0-54-generic_3.13.0-54.91_i386.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
7
Dooblieve

En utilisant linux-purge

J'ai créé un script d'aide à cet effet. Il s’appelle linux-purge et sa page de projet est ici dans Launchpad.net. Dans la section des annonces, vous trouverez des instructions d'installation ici .

Dans ce cas précis, vous courriez

Sudo linux-purge --fix

Méthode manuelle

En guise d'alternative, il existe des instructions sur la manière d'effectuer la tâche manuellement à l'adresse Aide du wiki du public auxquelles j'ai contribué (en tant que jarnos).

Quoi qu'il en soit, voici mes instructions manuelles en tant qu'archive:

Commencez par supprimer les fichiers temporaires restants des mises à jour précédentes du noyau.

Sudo rm -rv ${TMPDIR:-/var/tmp}/mkinitramfs-*

(Il peut y en avoir qui sont dus à bug dans Ubuntu 16.04 et plus ancien.)

Répertoriez les noyaux installés avec succès en excluant le noyau démarré à l'aide de la commande:

dpkg-query -W -f='${Status} ${Package}\n' | awk '/^[^ ]+ ok installed linux-image-[0-9]+/{print $4}' | grep -Fv $(uname -r)

Supprimez le fichier initrd.img d’un noyau inutile (à cause de bug ); la version du noyau choisie est la version 4.2.0-23-generic:

Sudo update-initramfs -d -k 4.2.0-23-generic

Purger le noyau par

Sudo dpkg --purge linux-image-extra-4.2.0-23-generic linux-image-4.2.0-23-generic

pour libérer de l'espace dans/boot. Si la commande échoue, certains packages installés dépendent du noyau. La sortie de dpkg indique le nom du paquet. Purgez-le d'abord.

Vous pouvez également purger le paquet d'en-tête correspondant

Sudo dpkg --purge linux-headers-4.2.0-23-generic

et même le paquet en-tête commun

Sudo dpkg --purge linux-headers-4.2.0-23

si aucun autre colis n'en dépend; sinon, la commande échouera, mais son exécution est sûre.

Puis courir

Sudo apt-get install -f

pour réparer la dépendance cassée. Si cela échoue en raison d'un espace disque insuffisant, vous devez supprimer un autre noyau comme indiqué ci-dessus.

Notez qu’il reste peut-être trop de noyaux installés sur votre système, mais vous devriez maintenant pouvoir purger les noyaux supplémentaires, par exemple. Sudo apt-get purge suivi du nom du package du noyau.

7
jarno

Le moyen le plus rapide et le plus simple de supprimer les anciens noyaux est le suivant:

Sudo apt-get autoremove

Cela réduit normalement le nombre de noyaux installés à deux ou trois. Faites cela après chaque mise à jour logicielle qui installe un nouveau noyau pour éviter que le problème ne se reproduise.

0
Rod Smith