Files
2025-06-21 01:06:34 +02:00

109 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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.