Apt ne parvient pas à mettre à niveau ou à installer de nouveaux packages après une possible mise à niveau partielle du noyau. J'ai essayé apt-get purge -f linux-image-extra-3.19.0-22-generic
qui échoue avec un message d'erreur très similaire. La machine se bloque également au démarrage dans la version la plus récente du noyau (par défaut dans grub), mais les versions précédentes fonctionnent correctement.
$ Sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages will be REMOVED:
linux-image-3.19.0-22-generic linux-image-extra-3.19.0-22-generic
The following packages will be upgraded:
linux-cloud-tools-common
1 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
2 not fully installed or removed.
Need to get 0 B/24.3 kB of archives.
After this operation, 208 MB disk space will be freed.
Do you want to continue? [Y/n] y
(Reading database ... 453815 files and directories currently installed.)
Removing linux-image-extra-3.19.0-22-generic (3.19.0-22.22) ...
depmod: FATAL: could not load /boot/System.map-3.19.0-22-generic: No such file or directory
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/dkms 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
update-initramfs: Generating /boot/initrd.img-3.19.0-22-generic
grep: /boot/config-3.19.0-22-generic: No such file or directory
depmod: WARNING: could not open /tmp/mkinitramfs_6gldfB/lib/modules/3.19.0-22-generic/modules.order: No such file or directory
depmod: WARNING: could not open /tmp/mkinitramfs_6gldfB/lib/modules/3.19.0-22-generic/modules.builtin: No such file or directory
run-parts: executing /etc/kernel/postinst.d/pm-utils 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/unattended-upgrades 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/update-notifier 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
Generating grub configuration file ...
ERROR: cannot determine partition label for rootfs /dev/sda9
run-parts: /etc/kernel/postinst.d/zz-update-grub exited with return code 1
dpkg: error processing package linux-image-extra-3.19.0-22-generic (--remove):
subprocess installed post-removal script returned error exit status 1
Removing linux-image-3.19.0-22-generic (3.19.0-22.22) ...
Examining /etc/kernel/postrm.d .
run-parts: executing /etc/kernel/postrm.d/initramfs-tools 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
update-initramfs: Deleting /boot/initrd.img-3.19.0-22-generic
run-parts: executing /etc/kernel/postrm.d/zz-update-grub 3.19.0-22-generic /boot/vmlinuz-3.19.0-22-generic
Generating grub configuration file ...
ERROR: cannot determine partition label for rootfs /dev/sda9
run-parts: /etc/kernel/postrm.d/zz-update-grub exited with return code 1
Failed to process /etc/kernel/postrm.d at /var/lib/dpkg/info/linux-image-3.19.0-22-generic.postrm line 328.
dpkg: error processing package linux-image-3.19.0-22-generic (--remove):
subprocess installed post-removal script returned error exit status 1
Errors were encountered while processing:
linux-image-extra-3.19.0-22-generic
linux-image-3.19.0-22-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)
J'ai besoin de pouvoir travailler à nouveau et dans un état où il peut installer les futurs noyaux. Bien purger le noyau 3.19.0-22 serait bien mais inutile. N'hésitez pas à demander plus d'informations, et merci d'avance
- Mesdames--
La réponse de 0x450 fonctionne pour tous les paquets non liés au noyau. Les mises à jour du noyau et de grub ramènent apt et dpkg à un état défectueux. J'ai remarqué ce message d'erreur récurrent:
Generating grub configuration file ... ERROR: cannot determine partition label for rootfs /dev/sda9
Cela pourrait-il être un problème lié aux fichiers de configuration grub?
Sudo apt-get install --reinstall linux-image-extra-3.19.0-22-generic
entraîne une erreur très similaire (qui peut être visualisée ici )
Sudo dpkg --configure -a
crée ceci erreur
Sudo apt-get purge linux-image-extra-3.19.0-22-generic
crée ceci erreur
Il s'avère que le problème a été causé par un crash de grub-mkconfig avec le message d'erreur Generating grub configuration file ... ERROR: cannot determine partition label for rootfs /dev/sda9
(sda9 contenait la racine de mon fs).
Apt s'est écrasé parce que lorsqu'il a essayé d'installer de nouveaux noyaux, il a lancé grub-mkconfig pour les ajouter au menu de démarrage. Ce n'était pas vraiment un problème avec apt mais avec grub.
Je l'ai corrigé en réinstallant ubuntu et en utilisant ext3 au lieu de ext4 pour la partition contenant la racine de mon système de fichiers. Mon répertoire personnel est toujours dans sa propre partition ext4, il ne semble donc pas être affecté.
La réponse de 0x450 fonctionne bien comme solution temporaire, de sorte que l'on peut utiliser apt à nouveau. Cela ne résout pas le problème racine cependant.
Je me suis battu avec exactement le même problème, mais les paquets du noyau cassés étaient la version 3.13.0.57.
Inspectez le problème:
Vérifiez le dpkg status
des packages:
dpkg --status linux-image-3.19.0-22-generic
dpkg --status linux-image-extra-3.19.0-22-generic
Si la sortie indique que les paquets sont en mauvais état, c’est-à-dire que est à moitié installé ou n’est pas complètement installé , cela signifie qu'ils ont cassé apt-get
et dpkg
respectivement.
La solution:
Les entrées des packages de noyau infectés doivent être supprimées manuellement du fichier d'état de dpkg
pour que apt-get
et dpkg
lui-même fonctionne à nouveau normalement. Les étapes sont les suivantes:
Assurez-vous de créer une sauvegarde du fichier d’état au cas où quelque chose se passerait mal.
Sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.backup
Ouvrez /var/lib/dpkg/status
avec votre éditeur de texte préféré et recherchez et supprimez ONLY les références des packages cassés. Vous ne devez rien supprimer d'autre!
Exécutez Sudo apt-get update
et Sudo apt-get upgrade
pour vous assurer que tout est corrigé.
Cette étape est facultative car les packages ne sont plus suivis à partir des gestionnaires de packages, mais vous pouvez également libérer de l'espace disque en les supprimant. Vous pouvez supprimer manuellement et en toute sécurité toutes les entrées des packages de noyau cassés dans /boot
et dans /usr/src
mais soyez TRES ATTENTION. Assurez-vous de ne toucher que les fichiers/dossiers, qui correspondent à la version 3.19.0-22 dans votre cas.
Cause première
Le problème fondamental semble être que /boot/System.map-3.19.0-22-generic
est manquant, ce qui empêche la reconfiguration/suppression du paquet.
Solutions suggérées
Ma suggestion initiale était Sudo apt-get install --reinstall linux-image-extra-3.19.0-22-generic
Comme cela échoue apparemment ("ne peut pas configurer à moitié installé"), je suggérerais de le faire un peu plus avec force , par exemple. avec les options suivantes
Sudo dpkg --remove --force-remove-reinstreq linux-image-extra-3.19.0-22-generic
Cette suggestion est basée sur this answer.
Alternative: réparation manuelle?
Sinon, vous pouvez également essayer de réparer manuellement ce fichier? Peut-être est-il décompressé par apt-get lors d’une tentative de réinstallation? C'est un peu difficile pour moi de répliquer sur mon système en ce moment
Je pense que tu devrais courir
Sudo dpkg --configure -a
suivi de ce qui a déjà été mentionné:
Sudo apt-get purge linux-image-extra-3.19.0-22-generic