Apt kann nach einem scheinbar teilweisen Kernel-Upgrade keine neuen Pakete aktualisieren oder installieren. Ich habe versucht, apt-get purge -f linux-image-extra-3.19.0-22-generic
was mit einer sehr ähnlichen Fehlermeldung fehlschlägt. Der Computer stürzt auch beim Booten in die neueste Kernel-Version ab (Standard in Grub), aber frühere Versionen funktionieren einwandfrei.
$ 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)
Ich muss apt wieder zum Laufen bringen und in einen Zustand bringen, in dem zukünftige Kernel installiert werden können. Das korrekte Löschen des 3.19.0-22-Kernels wäre nett, aber unnötig. Fordern Sie weitere Informationen an und bedanken Sie sich im Voraus
--Edits--
Die Antwort von 0x450 funktioniert für alle Pakete, die nicht mit dem Kernel zusammenhängen. Kernel- und Grub-Updates bringen apt und dpkg in einen fehlerhaften Zustand zurück. Ich habe diese wiederkehrende Fehlermeldung bemerkt:
Generating grub configuration file ...
ERROR: cannot determine partition label for rootfs /dev/sda9
Könnte dies ein Problem im Zusammenhang mit Grub-Konfigurationsdateien sein?
sudo apt-get install --reinstall linux-image-extra-3.19.0-22-generic
Ergebnisse in einem sehr ähnlichen Fehlern (die angezeigt werden können hier )
sudo dpkg --configure -a
erzeugt diesen Fehler
sudo apt-get purge linux-image-extra-3.19.0-22-generic
erzeugt diesen Fehler
sudo apt-get install --reinstall linux-image-extra-3.19.0-22-generic
und dann eine Entfernung danach?Antworten:
Ich hatte mit genau dem gleichen Problem zu kämpfen, aber die kaputten Kernel-Pakete waren Version 3.13.0.57.
Überprüfen Sie das Problem:
Überprüfen Sie
dpkg status
die Pakete:Wenn die Ausgangszustände , dass die Pakete in einem schlechten Zustand sind, dh die Hälfte installiert oder nicht vollständig installiert , das bedeutet , dass sie gebrochen haben
apt-get
unddpkg
jeweils.Die Lösung:
Die Einträge der infizierten Kernel - Pakete müssen manuell aus der Statusdatei gelöscht werden ,
dpkg
umapt-get
unddpkg
sich normal funktionieren wieder. Die Schritte sind wie folgt:Stellen Sie sicher, dass Sie eine Sicherungskopie der Statusdatei erstellen, falls etwas schief geht.
sudo cp /var/lib/dpkg/status /var/lib/dpkg/status.backup
Öffnen Sie
/var/lib/dpkg/status
mit Ihrem bevorzugten Texteditor und suchen und löschen Sie NUR die Referenzen der defekten Pakete. Sie dürfen nichts anderes löschen!Führen Sie aus
sudo apt-get update
undsudo apt-get upgrade
stellen Sie sicher, dass alles repariert ist.Dieser Schritt ist optional, da die Pakete nicht mehr von den Paketmanagern verfolgt werden. Wenn Sie möchten, können Sie jedoch Speicherplatz freigeben, indem Sie sie löschen. Sie können sicher alle Einträge der defekten Kernel-Pakete in
/boot
und in manuell entfernen,/usr/src
aber SEHR VORSICHTIG sein . Stellen Sie sicher, dass Sie nur die Dateien / Ordner berühren, die in Ihrem Fall der Version 3.19.0-22 entsprechen .quelle
boot repair
kürzlich verwendet haben, weil ich den Verdacht habe, dass es dieses Problem verursacht, oder zumindest in meinem Fall war es der Verursacher.Generating grub configuration file ... ERROR: cannot determine partition label for rootfs /dev/sda9
. Irgendwelche Ideen, wie man das behebt?Ursache
Das Hauptproblem scheint darin zu liegen, dass
/boot/System.map-3.19.0-22-generic
es fehlt, was eine Neukonfiguration / Entfernung des Pakets verhindert.Lösungsvorschläge
Mein erster Vorschlag war
sudo apt-get install --reinstall linux-image-extra-3.19.0-22-generic
Da dies anscheinend fehlschlägt ("kann nicht zur Hälfte installiert werden"), würde ich vorschlagen, dies etwas energischer zu tun , z. B. mit den folgenden Optionen
sudo dpkg --remove --force-remove-reinstreq linux-image-extra-3.19.0-22-generic
Dieser Vorschlag basiert auf dieser Antwort.
Alternative: Manuelle Reparatur?
Alternativ können Sie auch versuchen, diese Datei manuell zu reparieren? Vielleicht wird es von apt-get entpackt, während versucht wird, es neu zu installieren? Es ist ein bisschen schwierig für mich, auf meinem System zu replizieren
quelle
Ich denke du solltest rennen
gefolgt von dem, was bereits erwähnt wurde:
quelle
Es stellte sich heraus, dass das Problem durch einen Absturz von grub-mkconfig mit der Fehlermeldung verursacht wurde
Generating grub configuration file ... ERROR: cannot determine partition label for rootfs /dev/sda9
(sda9 hielt mein fs-Stammverzeichnis).Apt stürzte ab, weil beim Versuch, neue Kernel zu installieren, grub-mkconfig ausgeführt wurde, um sie dem Startmenü hinzuzufügen. Es war eigentlich kein Problem mit apt, sondern mit grub.
Ich habe es behoben, indem ich ubuntu neu installiert und ext3 anstelle von ext4 für die Partition verwendet habe, die mein Dateisystemstamm enthält. Mein Home-Verzeichnis befindet sich jedoch immer noch in einer eigenen ext4-Partition, sodass es nicht betroffen zu sein scheint.
Die Antwort von 0x450 funktioniert gut als vorübergehende Korrektur, so dass man apt wieder verwenden kann. Das Root-Problem wird dadurch jedoch nicht behoben.
quelle
Sie können remove anstelle von purge verwenden, dann den Kernel aktualisieren und dies in das Terminal eingeben:
Löschen Sie dann die Datei sources.list, geben Sie die Einstellungen ein und aktualisieren und schraffieren Sie die gesamte chanoische Liste und schließen Sie sie erneut.
und installieren Sie dann den neuesten Kernel neu und geben Sie diesen in das Terminal ein:
und es könnte auf diese Weise gut funktionieren.
quelle