main
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 purgefü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_SNAPSHOTSzu 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.
Description
Languages
Shell
100%