Neue Kernel löschen / Boot voll

8

Wir haben einige Ubuntu 16.04 Server. unattended-upgradeswerden seit 16.04 automatisch aktiviert und die Boot-Partition befindet sich auf einer separaten Partition. Aufgrund der automatischen Sicherheitsupdates geht der Bootpartition mit neuen Kerneln der Speicherplatz aus.

Wir können die Systeme nicht einfach neu starten, sodass der Computer immer noch den vorletzten Kernel verwendet.

Welche Kernel soll ich entfernen? Alle außer dem Strom, dem ältesten und dem neuesten?

Habt ihr ein paar Empfehlungen?

Mir ist auch aufgefallen, dass der neueste Kernel den Status "Half Configured" hat. Dieser Kernel würde wahrscheinlich nicht funktionieren. Sollte ich diesen entfernen und einen älteren Kernel verwenden?

Ausgabe von dpkg -l | grep linux image:

    ii  linux-image-4.4.0-21-generic --> old kernel
    ii  linux-image-4.4.0-34-generic --> current kernel
    ii  linux-image-4.4.0-36-generic --> new kernel
    ii  linux-image-4.4.0-38-generic --> new kernel
    ii  linux-image-4.4.0-42-generic --> new kernel
    ii  linux-image-4.4.0-45-generic --> new kernel
    ii  linux-image-4.4.0-47-generic --> new kernel
    ii  linux-image-4.4.0-51-generic --> new kernel
    ii  linux-image-4.4.0-53-generic --> new kernel
    iF  linux-image-4.4.0-57-generic --> new kernel
user83026
quelle

Antworten:

7

Um den alten Kernel zu löschen, können Sie das purge-old-kernelsBefehlszeilentool verwenden.

Dieses Programm entfernt alte Kernel- und Header-Pakete aus dem System und gibt Speicherplatz frei. Der aktuell ausgeführte Kernel wird niemals entfernt. Standardmäßig werden mindestens die letzten 2 Kernel beibehalten, aber der Benutzer kann diesen Wert mit dem Parameter --keep überschreiben. Alle zusätzlichen Parameter werden direkt an übergebenapt-get

purge-old-kernelsFühren Sie zum Installieren Folgendes aus:

sudo apt install byobu

oder

sudo apt install bikeshed

So behalten Sie den neuesten nKernel bei:

sudo purge-old-kernels --keep n

e, g: n = 2

sudo purge-old-kernels --keep 2

Update grub:

sudo update-grub
GAD3R
quelle
2
byobuwahrscheinlich ist das Paket , das Sie für 16,04 Xenuial wollen: purge-old-kernelswurde von verschoben bikeshedzu byobuirgendwann zwischen Trusty und Xenial, obwohl bikeshedempfiehlt jetzt , byobuso dass Sie immer noch das Programm zu bekommen , es sei denn Sie haben nicht-install-empfiehlt.
Wolfgang
4

Für Ubuntu zeigt Grub2 automatisch den neuesten Kernel an und versteckt die älteren Kernel. Wenn Sie sie sehen möchten, können Sie beim Booten die Umschalttaste drücken.

Bevor Sie ältere Kernel löschen, starten Sie mit dem neuesten verfügbaren Kernel (grub2 lädt ihn standardmäßig beim Booten). Um zu überprüfen, welchen Kernel Sie verwenden, können Sie den folgenden Befehl verwenden:

uname -r

Es wird empfohlen, mindestens zwei oder vorzugsweise drei Kernel einschließlich des neuesten zu behalten. Der Grund dafür ist, dass Sie mindestens einen oder zwei andere Kernel zum Booten haben, wenn Sie nicht mit dem neuesten Kernel booten können.

Um die älteren Kernel zu entfernen, öffnen Sie das Terminal und überprüfen Sie Ihren aktuellen Kernel:

uname -r 

Dann, um alle auf Ihrem System installierten Kernel aufzulisten.

dpkg --list | grep linux-image 

Finden Sie alle Kernel, die niedriger als Ihr aktueller Kernel sind. Führen Sie die folgenden Befehle aus, um den ausgewählten Kernel zu entfernen:

sudo apt-get purge linux-image-x.x.x.x-generic 

Führen Sie abschließend die folgenden Befehle aus, um grub2 zu aktualisieren

sudo update-grub2 

Und starten Sie Ihr System neu.

Dababi
quelle
1
Aus der Frage: "Wir können die Systeme nicht einfach neu starten" . Ihre Antwort erfordert dies zweimal.
Leichtigkeitsrennen im Orbit
3

apt-get autoremove, sollte regelmäßig ausgeführt werden, sollte Ihnen helfen können, das zu erreichen, was Sie wollen. Der laufende Kernel, der vorherige Kernel und die beiden neuesten Kernel sollten ausreichen.

schaiba
quelle
1
Angesichts der Liste der installierten Kernel und der Tatsache, dass der laufende Kernel alt ist, würde ich sagen "der laufende Kernel, der vorherige Kernel und die beiden neuesten Kernel".
Stephen Kitt
2

Starten Sie einen der vorherigen Kernel.

Erster Versuch apt autoremove --purge

Wenn es nicht funktioniert dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d'

Kontrollieren Sie, was deinstalliert werden soll.

dpkg -l 'linux-[ihs]*' | sed '/^ii/!d;/'"$(uname -r | sed "s/\([-0-9]*\)-\([^0-9]\+\)/\1/")"'/d;s/^[^ ]* [^ ]* \([^ ]*\).*/\1/;/[0-9]/!d' | xargs sudo dpkg -P Dadurch wird der Listet-Kernel aus dem folgenden Befehl gelöscht.

sudo apt -f install

und sicher

 sudo update-grub

quelle