ubuntuusers.de

Skripte/Kernel_entfernen

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |
Dieses Thema ist die Diskussion des Artikels Baustelle/Skripte/Kernel_entfernen.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10393

Wohnort: Münster

Berlin_1946 schrieb:

[…] Dank eurer Posts (Ruth-Wies und kB) bin ich der Meinung der Beitrag sollte ins Archiv.

Das hilft nur begrenzt. Wenn der 1000-Tatzelwurm unsauber arbeitet (was ich jedenfalls befürchte), ändert sich das nicht durch seine Verbannung ins Archiv. Eine Warnung bleibt erforderlich.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10393

Wohnort: Münster

Berlin_1946 schrieb:

[…] Das finde ich so interessant. Habe ich noch nicht als Tipp im Wiki gefunden.

Nicht alles, was man im Kopf der Ausgabe von dpkg lesen kann, muss auch im Wiki wiederholt werden:

$ LANG= dpkg -l 'linux-*generic*'
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                             Version             Architecture Description
+++-================================================-===================-============-=========================================
ii  linux-generic-hwe-24.04                          7.0.0-42.42~24.04.1 amd64        Complete Generic Linux kernel and headers
rc …

rc kennzeichnen also bei der gewünschten Entfernung (remove) des Paketes zurückgebliebene Konfigurationsdateien, in der Regel ohne Wert.

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 1011

Wohnort: im Exil ;(

a) Es ist verkehrt, den Artikel als fehlerhaft zu deklarieren, weil man die Einzeiler und ihr Zusammenwirken nicht versteht.

Die Erzeugung der Liste ist nur ein Teil der Aufgabe, die von dem ersten Einzeiler erledigt wird. Das richtig spannende erfolgt mit dem zweiten Einzeiler, indem man die erzeugte Liste der Paketverwaltung übergibt. Das scheint sich keiner getraut zu haben. 😢 (ggf. aus gutem Grund – s. u.)

b) Ich greife meinen Gedanken von 9514437 auf, denn er ist dem Kern auf der Spur. Sollte man eine älteren Kernel im GRUB ausgewählt und gestartet haben, dann werden über uname -r … eben dieser aktive Kernel bei der Erstellung der Liste heraus genommen. Der Einzeiler weiß ja nicht, dass dieser Kernel nicht der aktuelle ist, sondern nur dass dieser aktiv ist.

Nachdem nun nur der aktive Kernel heraus gefiltert wurde, verbleiben sämtliche anderen, installierten Kernel in der Liste und würden zur Deinstallation an den zweiten Einzeiler manuell weitergereicht. Weil nun aber der aktuelle Kernel entfernt werden soll, wird die Paketverwaltung auch die Metapakete entfernen, weil deren Abhängigkeit(en) nicht mehr erfüllt sind. Es ist also völlig egal, ob man bei der Erstellung der Liste die Metapakete herausfiltert oder nicht.

Fazit:
Die Bezeichnung als „Alte Kernel entfernen“ ist nur unter der Prämisse richtig, dass man den aktuellen Kernel gestartet hat (auch wenn dies der kosmische Normalfall sein sollte). Richtiger und ohne Einschränkung formuliert sollte der Artikel „Alle Kernel außer dem aktiven entfernen“ heißen.

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10867

kB schrieb:

Eine Warnung bleibt erforderlich.

👍

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10393

Wohnort: Münster

Ruth-Wies schrieb:

[…] Die Bezeichnung als „Alte Kernel entfernen“ ist nur unter der Prämisse richtig, dass man den aktuellen Kernel gestartet hat (auch wenn dies der kosmische Normalfall sein sollte). Richtiger und ohne Einschränkung formuliert sollte der Artikel „Alle Kernel außer dem aktiven entfernen“ heißen.

Ich habe das Wort „Alte“ aus dem Titel entfernt.

Nun Baustelle.

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10867

Ruth-Wies schrieb:

Alle Kernel außer dem aktiven entfernen“ heißen.

das finde ich eine super Idee.

Deine Gedanken im Fazit

sind doch eigentlich dann berücksichtigt wenn das

Zuerst ermittelt man den aktiven Kernel, damit dieser nicht versehentlich entfernt wird:

Durch das ersetzt wird: "Zuerst ermittelt man, ob der aktive/laufende Kernel auch der neueste installierte Kernel ist.

echo "Laufender Kernel: $(uname -r)" && echo "Neuester installierter Kernel: $(dpkg -l | grep -E '^ii  linux-image-[0-9]' | awk '{print $2}' | sed 's/linux-image-//' | sort -V | tail -n1)"

"Fehler"

mate-vm-26@mate26-VirtualBox:~$ echo "Laufender Kernel: $(uname -r)" && echo "Neuester installierter Kernel: $(dpkg -l | grep -E '^ii  linux-image-[0-9]' | awk '{print $2}' | sed 's/linux-image-//' | sort -V | tail -n1)"
Laufender Kernel: 7.0.0-38-generic
Neuester installierter Kernel: 7.0.0-42-generic
mate-vm-26@mate26-VirtualBox:~$

OK

mate-vm-26@mate26-VirtualBox:~$ echo "Laufender Kernel: $(uname -r)" && echo "Neuester installierter Kernel: $(dpkg -l | grep -E '^ii  linux-image-[0-9]' | awk '{print $2}' | sed 's/linux-image-//' | sort -V | tail -n1)"
Laufender Kernel: 7.0.0-42-generic
Neuester installierter Kernel: 7.0.0-42-generic
mate-vm-26@mate26-VirtualBox:~$ 

Ein weiterer Vorschlag ist, das hier benutzen

apt policy linux-generic 'linux-generic-hwe-*'

an Stelle von

apt policy linux-generic linux-generic-hwe-22.04 linux-generic-hwe-24.04 linux-generic-hwe-26.04 

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 1011

Wohnort: im Exil ;(

Meine Änderung im Wiki war auf die Schnelle und ist nicht in Stein gemeißelt.

Ein weiterte Vorschla ist das hier benutzen

Das berücksichtigt nur den HWE-Kernel, aber nicht den LTS (der mittlerweile „GA“ heißt).


Da gab es schon mal einen schlanken Ansatz vor drei Jahren:

kB schrieb:

Konkret ermittelt man den aktuell laufenden Kernel und eine Liste aller installierten Kernel ganz einfach mit diesen Befehlen:

uname -r
linux-version list

Die Ausgabe von linux-version list ist soweit ich das beobachtet habe sortiert; Der aktuelle steht bei mir zumindest unten.


Ebenfalls vor drei Jahren:

kB schrieb:

rklm schrieb:

Inwiefern wird das Skript überhaupt gebraucht? Mit auto-remove werden alte Kernel bei mir zuverlässig entfernt.

Der Artikel stammt wohl aus weit zurück liegenden Zeiten, als „auto-remove für alte Kernel“ noch nicht fest in die Aktualisierungsprozedur eingebaut war.

Genau! Es gab auch mal im Paket byobu ein Skript, dass alte Kernel entfernt hat, aber seit ca. 10 Jahren ruft dieses Skript auch bloß autoremove auf.


PS:
Artikel ist seit einer Stunde in der Baustelle, mal sehen was kB daraus macht.

Berlin_1946 Team-Icon

Supporter, Wikiteam

Anmeldungsdatum:
18. September 2009

Beiträge: 10867

Hallo in die Runde.

mein Vorschlag.

mate-vm-26@mate26-VirtualBox:~$ apt policy linux-generic 'linux-generic-hwe-*'| cat

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

linux-generic:
  Installiert:           7.0.0-42.42
  Installationskandidat: 7.0.0-42.42
  Versionstabelle:
 *** 7.0.0-42.42 500
        500 http://de.archive.ubuntu.com/ubuntu resolute-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu resolute-security/main amd64 Packages
        100 /var/lib/dpkg/status
     7.0.0-14.14 500
        500 http://de.archive.ubuntu.com/ubuntu resolute/main amd64 Packages
linux-generic-hwe-24.04:
  Installiert:           7.0.0-42.42
  Installationskandidat: 7.0.0-42.42
  Versionstabelle:
 *** 7.0.0-42.42 500
        500 http://de.archive.ubuntu.com/ubuntu resolute-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu resolute-security/main amd64 Packages
        100 /var/lib/dpkg/status
     7.0.0-14.14 500
        500 http://de.archive.ubuntu.com/ubuntu resolute/main amd64 Packages
linux-generic-hwe-26.04:
  Installiert:           7.0.0-42.42
  Installationskandidat: 7.0.0-42.42
  Versionstabelle:
 *** 7.0.0-42.42 500
        500 http://de.archive.ubuntu.com/ubuntu resolute-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu resolute-security/main amd64 Packages
        100 /var/lib/dpkg/status
     7.0.0-14.14 500
        500 http://de.archive.ubuntu.com/ubuntu resolute/main amd64 Packages
linux-generic-hwe-24.04-edge:
  Installiert:           (keine)
  Installationskandidat: 7.0.0-42.42
  Versionstabelle:
     7.0.0-42.42 500
        500 http://de.archive.ubuntu.com/ubuntu resolute-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu resolute-security/main amd64 Packages
     7.0.0-14.14 500
        500 http://de.archive.ubuntu.com/ubuntu resolute/main amd64 Packages
linux-generic-hwe-26.04-edge:
  Installiert:           (keine)
  Installationskandidat: 7.0.0-42.42
  Versionstabelle:
     7.0.0-42.42 500
        500 http://de.archive.ubuntu.com/ubuntu resolute-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu resolute-security/main amd64 Packages
     7.0.0-14.14 500
        500 http://de.archive.ubuntu.com/ubuntu resolute/main amd64 Packages
mate-vm-26@mate26-VirtualBox:~$ 

Damit ist dann auch zu sehen ob und was gerade geladen und installiert ist.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10393

Wohnort: Münster

Ruth-Wies schrieb:

[…] Die Ausgabe von linux-version list ist soweit ich das beobachtet habe sortiert; Der aktuelle steht bei mir zumindest unten.

Leider kann man sich darauf nicht verlassen. Ich habe hier ein Gegenbeispiel:

$ linux-version list
4.15.0-156-generic
4.15.0-20-generic
4.15.0-213-generic
4.19.101-0419101-generic
4.19.31-041931-generic
4.19.53-041953-generic

Die Ausgabe mag zwar sortiert sein, aber jedenfalls nicht numerisch (woraus man dann auf das Alter schließen könnte), sondern vielleicht lexikographisch (was im Hinblick auf eine Altersbestimmung Murks ist).

Ruth-Wies

Avatar von Ruth-Wies

Anmeldungsdatum:
12. April 2023

Beiträge: 1011

Wohnort: im Exil ;(

Mir ist noch eine Bedingung eingefallen, bei der die bisherige Kombination der Einzeiler ungut arbeitet.

Wenn man gerade erst die Paketquellen aufgefrischt hat und eine Aktualisierung des Kernels ansteht, aber man vor deren Installation noch das Aufräumen nachholen möchte, dann können die Metapakete für den aktuellen HWE-Kernel nicht über uname herausgefilert werden. Dies könnte man durch einen fünften sed-Teil noch abfangen.

'/hwe/d'

.


kB schrieb:

Leider kann man sich darauf nicht verlassen. Ich habe hier ein Gegenbeispiel:

Das erklärt auch, warum in der manpage ein Beispiel für das Sortieren enthalten ist. Vereinfacht würde es dies bedeuten:

linux-version list | linux-version sort

.


In der derzeitigen Fassung des Artikels steht:

Den neusten Kernel sollte man in der Regel auch nicht entfernen, ausgenommen, das ist genau der, welcher nach einem misslungenen Update Probleme verursacht.

Äh, bei Entfernen des neuesten Kernel werden allerdings auch die Metapakete entfernt, weil deren Abhängigkeiten durch diese Paketaktion nicht mehr erfüllt sind. Im Folgenden muss man sich manuell um Aktualisierungen kümmern.

Da sollte man m. E. lieber im GRUB die Reihenfolge ändern, damit man über die Paketverwaltung mitbekommt, wenn die nächste Aktualisierung erfolgt. Danach über GRUB manuell testen und ggf. wieder auf Standard gehen.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10393

Wohnort: Münster

Ruth-Wies schrieb:

[…]

linux-version list | linux-version sort

Wie geil ist das denn? Danke für den Hinweis. Werde ich einbauen, auch wenn ich vermute, dass das zwar besser, aber immer noch nicht perfekt ist.

[…] bei Entfernen des neuesten Kernel werden allerdings auch die Metapakete entfernt, weil deren Abhängigkeiten durch diese Paketaktion nicht mehr erfüllt sind.

Ja, das stimmt. Danke für den Hinweis. Hatte ich bisher übersehen.

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10393

Wohnort: Münster

kB schrieb:

[…] Nun Baustelle

Ich bin fertig mit meiner Überarbeitung und stelle die neue Fassung hiermit zur Diskussion, in der Hoffnung, dass sie nützlicher als die bisherige 1000-Tatzelwurm-Zucht sein möge.

Thomas_Do Team-Icon

Moderator
Avatar von Thomas_Do

Anmeldungsdatum:
24. November 2009

Beiträge: 8975

Der Artikel hat noch den Tag für getestet Bionic. Könnte/sollte weg?

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 10393

Wohnort: Münster

Thomas_Do schrieb:

Der Artikel hat noch den Tag für getestet Bionic.

Ich sehe in den Metadaten so etwas nicht, sondern nur: „getestet: general“

Und das ist so beabsichtigt.

Thomas_Do Team-Icon

Moderator
Avatar von Thomas_Do

Anmeldungsdatum:
24. November 2009

Beiträge: 8975

Vielleicht bin ich ja zu blöd aber ich sehe:

[[Vorlage( Getestet-general-ab, 18.04 ) ]]
Antworten |