• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]do_purge_kernels?

gm2601

Advanced Hacker
Hallo Gurus,

die Datei ist nach Update zwar da, aber seit geraumer Zeit passiert nichts mehr in der Richtung, sonst wäre das
Code:
ll /boot/vmlinuz-*
-rw-r--r-- 1 root root 10M Aug  3 12:27 /boot/vmlinuz-5.8.0-1.gd3bf2d6-default
-rw-r--r-- 1 root root 10M Aug  4 12:41 /boot/vmlinuz-5.8.0-2.g9bc0044-default
-rw-r--r-- 1 root root 10M Aug 11 11:10 /boot/vmlinuz-5.8.0-3.gd4e7682-default
-rw-r--r-- 1 root root 10M Aug 13 13:00 /boot/vmlinuz-5.8.1-1.ge6658c9-default
-rw-r--r-- 1 root root 10M Aug 14 11:40 /boot/vmlinuz-5.8.1-2.g553537d-default
-rw-r--r-- 1 root root 10M Aug 15 12:57 /boot/vmlinuz-5.8.1-3.g846658e-default
-rw-r--r-- 1 root root 10M Aug 19 15:14 /boot/vmlinuz-5.8.2-1.g71b519a-default
-rw-r--r-- 1 root root 10M Aug 23 10:59 /boot/vmlinuz-5.8.3-1.gbad027a-default
-rw-r--r-- 1 root root 10M Aug 26 15:39 /boot/vmlinuz-5.8.4-1.g64fe492-default
wohl kaum möglich.

Es sollte doch eigentlich reichen, wenn ich den vorletzten und den aktuellen Kernel behalte und den ganzen alten Kram einem manuellen "do_purge_kernels" unterziehe.
 

susejunky

Moderator
Teammitglied
Hallo gm2601,

was ergibt
Code:
# zypper se purge-kernels-service
und
Code:
# systemctl status purge-kernels.service

Welche Werte werden den Parametern multiversion = und multiversion.kernels = in der Datei /etc/zypp/zypp.conf zugewiesen?

Kannst Du mit
Code:
# zypper purge-kernels
die nicht mehr gewünschten Kernels löschen?

Viele Grüße

susejunky
 
OP
gm2601

gm2601

Advanced Hacker
susejunky schrieb:
Hallo Sauerland, hallo susejunky,

da ihr beide danach fragtet:
Code:
# systemctl status purge-kernels.service
● purge-kernels.service - Purge old kernels
   Loaded: loaded (/usr/lib/systemd/system/purge-kernels.service; enabled; vendor preset: enabled)
   Active: inactive (dead)
Condition: start condition failed at Fri 2020-08-28 11:24:44 CEST; 40min ago
Nun die anderen:
Code:
# zypper se purge-kernels-service
Loading repository data...
Reading installed packages...

S | Name                  | Summary                                                           | Type
--+-----------------------+-------------------------------------------------------------------+-----------
i | purge-kernels-service | The service for removing old kernels when multiversion is enabled | package
  | purge-kernels-service | The service for removing old kernels when multiversion is enabled | srcpackage

Code:
# cat /etc/zypp/zypp.conf | grep -i multiversion
##  
multiversion = provides:multiversion(kernel)
## ...
multiversion.kernels = latest,latest-1,running
Das klingt ja wie gewünscht, nur das obige "Active: inactive (dead)" passt anscheinend nicht.

Kannst Du mit [...] die nicht mehr gewünschten Kernels löschen?
Das habe ich noch nicht probiert, ist mir zu heiß. Ist das mit der Option
Code:
# zypper purge-kernels -D
ohne Angstschweiß machbar?
 

Sauerland

Ultimate Guru
Was sagt denn:
Code:
ls -al /boot

Der purge-kernels.service wird bei einem reboot nur ausgeführt, wenn die Datei /boot/do_purge_kernels vorhanden ist.
Dann wird das Script /sbin/purge-kernels gestartet, welches die Kernel lt /etc/zypp/zypp.conf nicht löscht und den Rest löscht.
 

susejunky

Moderator
Teammitglied
gm2601 schrieb:
... Das habe ich noch nicht probiert, ist mir zu heiß. Ist das mit der Option
Code:
# zypper purge-kernels -D
ohne Angstschweiß machbar?
> zypper purge-kernels --help
purge-kernels [OPTIONEN]

Automatische Löschungen von installierten Kerneln gemäß der Liste an Kerneln, die von
/etc/zypp/zypp.conf behalten werden sollen: multiversion.kernels, die als <Version>,
aktuellster(-N), laufend, ältester(+N) gegeben sein können.

Kommandooptionen:

--details Ausführliche Installationsübersicht anzeigen. Default: false
-D, --dry-run Nichts ändern. Nur berichten, was gemacht worden wäre. Eine sinnvolle
Dateikonflikt-Überprüfung kann nur ausgeführt werden, wenn sie zusammen
mit '--download-only' verwendet wird. Default: false
>
Nun, wer wagt, der gewinnt ...

... und wenn Du verlierst: https://bugzilla.opensuse.org/index.cgi

Viele Grüße

susejunky
 
OP
gm2601

gm2601

Advanced Hacker
Sauerland schrieb:
Was sagt denn:
Code:
ls -al /boot
Wie oben erwähnt, ist die Datei "/boot/do_purge_kernels" nach einen Kernelupdate stets vorhanden, wird aber bei einem reboot offenbar nicht mehr ausgeführt, obwohl sie danach weg ist.
Obiges Kommando würde also momentan mittlerweile "nur" neunmal die interessanten Files in /boot zeigen.
Soll ich?
 

Sauerland

Ultimate Guru
Wie oben erwähnt, ist die Datei "/boot/do_purge_kernels" nach einen Kernelupdate stets vorhanden, wird aber bei einem reboot offenbar nicht mehr ausgeführt, obwohl sie danach weg ist.
Die Datei wird nicht ausgeführt, das ist nur ein Platzhalter/Dummy um dem Service anzuzeigen: Jetzt musst du starten.......

Ich würde jetzt mal in Yast---Software alle kernel bis auf die letzten 2 deinstallieren.....
Und dann beim nächsten Mal aufpassen.

Aber:
wenn du z.B. den Nvidia Treiber selber aus der run-Datei baust, musst du ja neu starten und in Runlevel 3 wechseln.
Dann wird der purge-kernels.service zwar ausgeführt, aber dieser Service dauert länger als die Installation des Nvidia Treibers.
Dadurch bleiben die kernel in /boot vorhanden.

Ich behelfe mir da mit einem top bis kein dracut usw. mehr auftaucht.
 

josef-wien

Ultimate Guru
gm2601 schrieb:
ohne Angstschweiß machbar?
Solange Du nicht neu startest, funktioniert Dein System auch dann, wenn Du sämtliche Kernel-Pakete entfernst. Also laß das "-D" weg, und schau dann nach, ob wie vorgesehen die jüngsten zwei Kernel-Pakete vorhanden sind (und wenn das wider Erwarten nicht der Fall ist, installierst Du sie wieder).

Außerdem könnte ein openSUSE-Kundiger herausfinden, ob bzw. wo die fragliche Funktion etwas protokolliert, denn irgendeinen Grund für das Nicht-Löschen (trotz aktivem Dienst und vorhandener "Steuerdatei") muß es ja geben.
 
OP
gm2601

gm2601

Advanced Hacker
Sauerland schrieb:
Ich würde jetzt mal in Yast---Software alle kernel bis auf die letzten 2 deinstallieren.....
Und dann beim nächsten Mal aufpassen.
Das hat geklappt, danke!

Aber:
wenn du z.B. den Nvidia Treiber selber aus der run-Datei baust, musst du ja neu starten und in Runlevel 3 wechseln.
Dann wird der purge-kernels.service zwar ausgeführt, aber dieser Service dauert länger als die Installation des Nvidia Treibers.
Dadurch bleiben die kernel in /boot vorhanden.
Du kannst sicher sein dass ich KEINE Driver baue, wenn ich nicht dazu gezwungen bin, und selbst dann würde ich das nur unter eurer Anleitung machen.

josef-wien schrieb:
denn irgendeinen Grund für das Nicht-Löschen (trotz aktivem Dienst und vorhandener "Steuerdatei") muß es ja geben.
Es geschehen noch Zeichen und Wunder:
Code:
# systemctl status purge-kernels.service
● purge-kernels.service - Purge old kernels
   Loaded: loaded (/usr/lib/systemd/system/purge-kernels.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Sat 2020-08-29 10:38:42 CEST; 18min ago
 Main PID: 1053 (code=exited, status=0/SUCCESS)

Aug 29 10:38:40 Emil4 systemd[1]: Starting Purge old kernels...
Aug 29 10:38:42 Emil4 zypper[1053]: Installierte Pakete werden gelesen...
Aug 29 10:38:42 Emil4 zypper[1053]: Säuberung von veralteten Kerneln wird vorbereitet...
Aug 29 10:38:42 Emil4 zypper[1053]: Konfiguration: latest,latest-1,running
Aug 29 10:38:42 Emil4 zypper[1053]: Kernel Release läuft: 5.8.5-1.gf0adcb3-default
Aug 29 10:38:42 Emil4 zypper[1053]: Kernel arch läuft: x86_64
Aug 29 10:38:42 Emil4 zypper[1053]: Paketabhängigkeiten werden aufgelöst...
Aug 29 10:38:42 Emil4 zypper[1053]: Keine auszuführenden Aktionen.
Aug 29 10:38:42 Emil4 systemd[1]: Started Purge old kernels.

Mein Dank an alle Engagierten!
 
Oben