Was tun bei Update-Initramfs-Fehlern während des Kernel-Upgrades?


9

Ich bin gerade gelaufen:

sudo apt-get update && sudo apt-get dist-upgrade

Und dies ist die Ausgabe, die ich von den zweiten Befehlen erhalten habe:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed
  linux-headers-4.4.0-38 linux-headers-4.4.0-38-generic
  linux-image-4.4.0-38-generic linux-image-extra-4.4.0-38-generic
  linux-signed-image-4.4.0-38-generic
The following packages will be upgraded:
  linux-generic linux-headers-generic linux-image-generic linux-libc-dev
  linux-signed-generic linux-signed-image-generic
6 to upgrade, 5 to newly install, 0 to remove and 0 not to upgrade.
Need to get 69.3 MB of archives.
After this operation, 296 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Get:1 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-4.4.0-38-generic amd64 4.4.0-38.57 [18.7 MB]
Get:2 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-extra-4.4.0-38-generic amd64 4.4.0-38.57 [39.0 MB]
Get:3 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-generic amd64 4.4.0.38.40 [1,790 B]
Get:4 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-image-generic amd64 4.4.0.38.40 [2,300 B]
Get:5 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-signed-image-4.4.0-38-generic amd64 4.4.0-38.57 [3,990 B]
Get:6 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-signed-generic amd64 4.4.0.38.40 [1,820 B]
Get:7 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-signed-image-generic amd64 4.4.0.38.40 [2,332 B]
Get:8 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-4.4.0-38 all 4.4.0-38.57 [9,948 kB]
Get:9 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-4.4.0-38-generic amd64 4.4.0-38.57 [785 kB]
Get:10 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-headers-generic amd64 4.4.0.38.40 [2,274 B]
Get:11 http://archive.ubuntu.com/ubuntu xenial-updates/main amd64 linux-libc-dev amd64 4.4.0-38.57 [838 kB]
Fetched 69.3 MB in 1min 26s (806 kB/s)                                         
Selecting previously unselected package linux-image-4.4.0-38-generic.
(Reading database ... 248254 files and directories currently installed.)
Preparing to unpack .../linux-image-4.4.0-38-generic_4.4.0-38.57_amd64.deb ...
Done.
Unpacking linux-image-4.4.0-38-generic (4.4.0-38.57) ...
Selecting previously unselected package linux-image-extra-4.4.0-38-generic.
Preparing to unpack .../linux-image-extra-4.4.0-38-generic_4.4.0-38.57_amd64.deb ...
Unpacking linux-image-extra-4.4.0-38-generic (4.4.0-38.57) ...
Preparing to unpack .../linux-generic_4.4.0.38.40_amd64.deb ...
Unpacking linux-generic (4.4.0.38.40) over (4.4.0.36.38) ...
Preparing to unpack .../linux-image-generic_4.4.0.38.40_amd64.deb ...
Unpacking linux-image-generic (4.4.0.38.40) over (4.4.0.36.38) ...
Selecting previously unselected package linux-signed-image-4.4.0-38-generic.
Preparing to unpack .../linux-signed-image-4.4.0-38-generic_4.4.0-38.57_amd64.deb ...
Unpacking linux-signed-image-4.4.0-38-generic (4.4.0-38.57) ...
Preparing to unpack .../linux-signed-generic_4.4.0.38.40_amd64.deb ...
Unpacking linux-signed-generic (4.4.0.38.40) over (4.4.0.36.38) ...
Preparing to unpack .../linux-signed-image-generic_4.4.0.38.40_amd64.deb ...
Unpacking linux-signed-image-generic (4.4.0.38.40) over (4.4.0.36.38) ...
Selecting previously unselected package linux-headers-4.4.0-38.
Preparing to unpack .../linux-headers-4.4.0-38_4.4.0-38.57_all.deb ...
Unpacking linux-headers-4.4.0-38 (4.4.0-38.57) ...
Selecting previously unselected package linux-headers-4.4.0-38-generic.
Preparing to unpack .../linux-headers-4.4.0-38-generic_4.4.0-38.57_amd64.deb ...
Unpacking linux-headers-4.4.0-38-generic (4.4.0-38.57) ...
Preparing to unpack .../linux-headers-generic_4.4.0.38.40_amd64.deb ...
Unpacking linux-headers-generic (4.4.0.38.40) over (4.4.0.36.38) ...
Preparing to unpack .../linux-libc-dev_4.4.0-38.57_amd64.deb ...
Unpacking linux-libc-dev:amd64 (4.4.0-38.57) over (4.4.0-36.55) ...
Setting up linux-image-4.4.0-38-generic (4.4.0-38.57) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/dkms 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
update-initramfs: Generating /boot/initrd.img-4.4.0-38-generic

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-4.4.0-38-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-4.4.0-38-generic.postinst line 1052.
dpkg: error processing package linux-image-4.4.0-38-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of linux-image-extra-4.4.0-38-generic:
 linux-image-extra-4.4.0-38-generic depends on linux-image-4.4.0-38-generic; however:
  Package linux-image-4.4.0-38-generic is not configured yet.

dpkg: error processing package linux-image-extra-4.4.0-38-generic (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-image-generic:
 linux-image-generic depends on linux-image-4.4.0-38-generic; however:
  Package linux-image-4.4.0-38-generic is not configured yet.
 linux-image-generic depends on linux-image-extra-4.4.0-38-generic; however:
  Package linux-image-extra-4.4.0-38-generic is not configured yet.

dpkg: error processing package linux-image-generic (--configure):
 dependency problems - leaving unconfigured
Setting up linux-headers-4.4.0-38 (No apport report written because the error message indicates it's a follow-up error from a previous failure.
                                                               No apport report written because the error message indicates it's a follow-up error from a previous failure.
           4.4.0-38.57) ...
Setting up linux-headers-4.4.0-38-generic (4.4.0-38.57) ...
Examining /etc/kernel/header_postinst.d.
run-parts: executing /etc/kernel/header_postinst.d/dkms 4.4.0-38-generic /boot/vmlinuz-4.4.0-38-generic
Setting up linux-headers-generic (4.4.0.38.40) ...
dpkg: dependency problems prevent configuration of linux-generic:
 linux-generic depends on linux-image-generic (= 4.4.0.38.40); however:
  Package linux-image-generic is not configured yet.

dpkg: error processing package linux-generic (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-signed-image-4.4.0-38-generic:
 linux-signed-image-4.4.0-38-generic depends on linux-image-4.4.0-38-generic (= 4.4.0-38.57); however:
  Package linux-image-4.4.0-38-generic is not configured yet.

No apport report written because MaxReports has already been reached
                                                                    No apport report written because MaxReports has already been reached
                                                        dpkg: error processing package linux-signed-image-4.4.0-38-generic (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-signed-image-generic:
 linux-signed-image-generic depends on linux-signed-image-4.4.0-38-generic; however:
  Package linux-signed-image-4.4.0-38-generic is not configured yet.
 linux-signed-image-generic depends on linux-image-extra-4.4.0-38-generic; however:
  Package linux-image-extra-4.4.0-38-generic is not configured yet.

dpkg: error processing package linux-signed-image-generic (--configure):
 dependency problems - leaving unconfigured
No apport report written because MaxReports has already been reached
                                                                    dpkg: dependency problems prevent configuration of linux-signed-generic:
 linux-signed-generic depends on linux-signed-image-generic (= 4.4.0.38.40); however:
  Package linux-signed-image-generic is not configured yet.

dpkg: error processing package linux-signed-generic (--configure):
 dependency problems - leaving unconfigured
Setting up linux-libc-dev:amd64 (4.4.0-38.57) ...
No apport report written because MaxReports has already been reached
                                                                    Errors were encountered while processing:
 linux-image-4.4.0-38-generic
 linux-image-extra-4.4.0-38-generic
 linux-image-generic
 linux-generic
 linux-signed-image-4.4.0-38-generic
 linux-signed-image-generic
 linux-signed-generic
E: Sub-process /usr/bin/dpkg returned an error code (1)

Wie Sie sehen können, hatte ich viele Fehler mit update-initramfs. Ich habe Angst, jetzt neu zu starten, da die Installation so schlecht gelaufen ist.

Das Problem hat mich zu diesem Fehlerbericht geführt , aber ich bin mir immer noch nicht ganz sicher, was ich tun soll, da dies noch nie zuvor passiert ist. Warum passiert das jetzt und wie genau behebe ich es? Es geht darum, dass irgendwo nicht genug Platz ist. Warum ist das so?

Ich verwende Ubuntu GNOME 16.04.1 mit GNOME 3.20.


sudo apt update && sudo apt full-upgrade && sudo apt -f install?
Kaz Wolfe

Ich glaube, egal ob der 4.4.0-38-Kernel richtig eingerichtet ist oder nicht, Sie sollten trotzdem booten können, zumindest indem Sie einen älteren Kernel im GRUB-Menü "Erweiterte Optionen für Ubuntu" auswählen.
Byte Commander


@jarno: Obwohl die Antwort mehr oder weniger gleich ist, ist die Frage etwas anders, da sie mehr als nur das Problem haben, das ich habe. Daher denke ich, dass sie wahrscheinlich immer noch getrennt gehalten werden sollten, da das andere Problem der Schlüssel zu diesem ist, aber hier nicht vorhanden ist.

Antworten:


10

Der Grund könnte sein, dass Ihnen der freie Speicherplatz ausgeht (möglicherweise weil Sie eine zu kleine /bootPartition auf Ihrer Festplatte erstellt haben) und Sie zu viele alte Kernel installiert haben.

Der beste Weg, um alte Kernel vollständig zu bereinigen, besteht darin, sie mit diesem Befehl zu entfernen:

sudo apt purge linux-headers-* linux-headers-*-generic linux-image-*-generic linux-image-extra-*-generic linux-signed-image-*-generic

Um zu überprüfen, welche Kernelversionen derzeit auf dem System installiert sind, führen Sie diesen Befehl aus:

sudo dpkg --get-selections | grep linux  

Ersetzen Sie * durch die Kernelversionen (zum Beispiel :) 4.4.0-36aus der Ausgabe des Befehls.

Beispiel - Dies ist der Befehl zum vollständigen Entfernen aller Traces aus der Kernelversion 4.4.0-36:

sudo apt purge linux-headers-4.4.0-36 linux-headers-4.4.0-36-generic linux-image-4.4.0-36-generic linux-image-extra-4.4.0-36-generic linux-signed-image-4.4.0-36-generic  

Alternativ können Sie byobuDustin Kirkland (Canonical) verwenden, um die älteren Kernel loszuwerden:

sudo apt install byobu  
sudo purge-old-kernels  

Dadurch werden alle älteren Kernel entfernt, aber der aktuelle (natürlich) und der zuvor installierte bleiben erhalten.


Was hat Byobu damit zu tun? Dies ist ein textbasierter Fenstermanager, mit dem Sie mehrere Anwendungen und Shells in einem Terminal, IIRC, ausführen können.
Byte Commander

@ByteCommander: Bitte lesen Sie dies -> blog.dustinkirkland.com/2016/06/purge-old-kernels.html ...! :) Übrigens ... Sie können es auf der Ubuntu 16.04 Server Edition ausprobieren ... byobu ist dort standardmäßig installiert. :)
Cl-Netbox

1
Aha okay. Das ist schön, obwohl ich sagen würde, dass dieses Tool besser separat verpackt werden sollte.
Byte Commander

1
@ByteCommander - System kann so voller Kern sein, purge-old-kernelsund apt purgearbeiten nicht. Dann kann meine Antwort helfen. Ich habe ein Skript mit vollem Funktionsumfang erstellt, das noch leistungsfähiger ist. Ich werde es veröffentlichen, nachdem mein Kopfgeldziel erreicht ist: bountysource.com/issues/…
jarno

7

Ihr Computer hat nicht mehr genügend Speicherplatz.

Befreie einige in /boot.

Führen Sie dann den Befehl erneut aus.

Update: Im Chat haben wir festgestellt, dass die /bootPartition voll war. Hier sollte Speicherplatz freigegeben werden.

Update 2: Dabeils /boot sollten einige vmlinuz-X.XX.XXDateien angezeigt werden . Tun Sie apt-get purge linux-image-X.XX.XX-genericfür jeden. Behalten Sie einfach die neueste, falls die von Ihnen installierte nicht funktioniert. (Vielen Dank an edwinksl für die Anforderung von Informationen dazu).


Können Sie zum Nutzen derer, die nicht wissen, wie man Speicherplatz /bootfreigibt, erläutern, wie man das tun kann?
Edwinksl

@edwinksl sicher.

Sie möchten wahrscheinlich Personen anweisen, sie zu verwenden, apt-get purgeanstatt sie manuell zu entfernen, da die Konfiguration für sie an anderer Stelle nicht funktioniert und Sie möglicherweise Korruption und Verwirrung auf Ihrem System verursachen, wenn Sie sie entfernen, ohne es zu sagen.

Ich würde auch empfehlen, dass die Leute mindestens einen alten Kernel verfügbar halten, falls der neue irgendwie kaputt ist.
IanC

@ IanC True. bearbeitet.

4

Hoffentlich hilft das jemand anderem.

Ich habe vor einigen Monaten versucht, eine neuere Kernel-Version manuell zu installieren, mit ähnlichen Ergebnissen wie OP.
Obwohl /bootes nur zu 30% voll ist, wurde beim Ausführen der gleiche Speicherplatzfehler apt-get autoremoveangezeigt. Es wurde jedoch jedes Mal versucht, die initramfs für den neuen Kernel zu erstellen, was fehlschlug.

Basierend auf dieser AskUbuntu-Frage habe ich die fehlerhafte Kernel-Datei von verschoben /var/lib/initramfs-toolsund konnte apt-get ohne Fehler wieder zum Laufen bringen.


1

Ich habe eine Theorie, warum es in Ubuntu 16.04 passiert ist:

In 16.04 sollen nicht benötigte Kernel automatisch entfernt werden, indem sie unattended-upgradesautomatisch als Cron-Job oder dergleichen ausgeführt werden, damit / boot nie voll wird, aber ich vermute, dass Bug # 1624644 aufgetreten ist. Können Sie den Fehler in Launchpad bestätigen?

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.