109 lines
3.7 KiB
Markdown
109 lines
3.7 KiB
Markdown
# 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
|
||
|
||
```bash
|
||
./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.
|