2025-06-11 00:24:24 +02:00
2025-06-21 01:06:34 +02:00

Dokumentation: Proxmox VE Kernel Cleaner Script


Übersicht

Dieses Bash-Script hilft beim Aufräumen von alten Proxmox VE Kernel-Paketen auf einem System. Es zeigt Systeminformationen an, listet installierte Kernel auf, erlaubt das interaktive Entfernen älterer Kernel und erstellt auf ZFS-Systemen vor der Kernelentfernung Snapshots zur Sicherung. Außerdem unterstützt es einen Testmodus.


Features & Funktionen

1. Systeminformationen anzeigen (kernel_info)

  • Erkennung des Boot-Modus (EFI oder Legacy BIOS).
  • Anzeige des Betriebssystems (aus /etc/os-release).
  • Anzeige von Speicherplatzinformationen der Boot-Partition oder ZFS Boot-Pool.
  • Anzeige des aktuell laufenden Kernels.
  • Auflistung aller installierten Proxmox-Kernel inkl. Anzahl.
  • Warnung, falls der laufende Kernel kein PVE-Kernel ist (mit Bestätigungsabfrage).

2. Interaktive Benutzerabfrage

  • Abfrage, wie viele Kernel behalten werden sollen (Standard: 1).
  • Anzeige der zu entfernenden Kernel.
  • Bestätigungsabfrage vor tatsächlicher Entfernung.

3. Kernel-Entfernung (remove_old_kernels)

  • Sammelt alle installierten PVE-Kernel (Paketnamen proxmox-kernel-*-pve-signed).
  • Entfernt alle außer der angegebenen Anzahl neuerer Kernel.
  • Führt die Entfernung mit apt-get purge für Kernel und zugehörige Header durch.
  • Aktualisiert nach der Entfernung den Bootloader (GRUB oder proxmox-boot-tool).

4. ZFS Snapshot-Management (create_snapshot)

  • Erkennung, ob das System auf ZFS installiert ist (über konfigurierbare Datasets).
  • Vor der Kernelentfernung wird ein Snapshot mit Tag pve-kernel-cleaner-<timestamp> erstellt.
  • Automatisches Entfernen älterer Snapshots, um maximal MAX_SNAPSHOTS zu behalten (Standard: 5).
  • Snapshot-Aktionen werden nur bei tatsächlicher Kernelentfernung ausgeführt, nicht bei Abbruch oder im Testmodus.

5. Testmodus (-t Option)

  • Führt keine Änderungen durch.
  • Zeigt an, welche Aktionen (Kernel-Entfernung, Snapshot-Erstellung, GRUB-Update) durchgeführt würden.

Einstellungen

  • MAX_SNAPSHOTS=5 Maximale Anzahl von Snapshots, die behalten werden.
  • ZFS_DATASETS=("rpool/ROOT/pve-1") Zu sichernde ZFS-Datasets.
  • SNAPSHOT_TAG="pve-kernel-cleaner" Tag für Snapshots.
  • dry_run Variable, die im Testmodus gesetzt wird, um Änderungen zu simulieren.

Verwendung

./pve-kernel-cleaner.sh [-k NUM] [-t] [-h]


./pve-kernel-cleaner.sh [-k NUM] [-t] [-h]
-k NUM: Anzahl der Kernel, die behalten werden sollen (Standard: 1).

-t: Testmodus, keine Änderungen werden ausgeführt.

-h: Zeigt die Hilfe an.

Beispiel-Ausgabe (gekürzt)

Systeminformationen:
─────────────────────────────
Boot-Modus: EFI
Betriebssystem: Debian GNU/Linux 12 (bookworm)
ZFS Boot-Pool (rpool/ROOT/pve-1): benutzt 14.4G, verfügbar 188G
Aktueller Kernel: 6.8.12-11-pve

Installierte Proxmox-Kernel (7):
 - proxmox-kernel-6.8.12-5-pve-signed
 ...
─────────────────────────────

Wie viele Kernel möchtest du behalten? [1]: 2

Es werden alle außer den 2 neuesten Kernel entfernt...
Gefundene Kernel: 7
[-] PVE kernel search complete!
Folgende Kernel werden entfernt:
 - proxmox-kernel-6.8.12-5-pve-signed
 ...

[!] Would you like to remove the 5 selected PVE kernels listed above? [y/N]: y

Erstelle ZFS Snapshot: rpool/ROOT/pve-1@pve-kernel-cleaner-2025-06-20-14-30-00
Snapshot erfolgreich erstellt.
Gefundene Snapshots mit Tag 'pve-kernel-cleaner': 6
Entferne 1 alte Snapshots...

[*] Entferne 5 alte PVE Kernel...
[-] Entferne Kernel: proxmox-kernel-6.8.12-5-pve-signed... DONE!
...

[*] Aktualisiere GRUB...
GRUB aktualisiert.

[*] Kernel-Entfernung abgeschlossen.
S
Description
No description provided
Readme 44 KiB
Languages
Shell 100%