Raspberry Pi 4 (8 GB) als Proxmox VE Test-Node
Diese Anleitung beschreibt die Installation einervon Proxmox-ähnlichenDebian Virtualisierungsumgebung13 (Trixie) ARM64 mit verschlüsselter Root-Partition auf einem Raspberry Pi 4 mit 8 GB RAM.
GrundlageDie istRoot-Partition Debian 13 (Trixie) ARM64wird mit einemLUKS2 Raspberry-Pi-kompatiblenverschlüsselt. Linux-Kernel.Über DieDropbear Proxmox-Komponentenim Initramfs kann die Verschlüsselung beim Start per SSH entsperrt werden. Anschließend werden überdie dasangepassten Proxmox-Pakete des Community-ProjektProjekts Pimox/PXVIRT bereitgestellt.installiert.
1. Voraussetzungen
- Raspberry Pi 4 mit 8 GB RAM
- USB-SSD mit mindestens 32 GB, empfohlen 64 GB oder mehr
- Temporäre microSD-Karte mit mindestens 8 GB
NetzwerkkabelDebian-undoderInternetverbindung- anderer Linux-PC zur Vorbereitung
- LAN-Verbindung zum
VorbereitenRaspberryder SSDPi - Monitor und Tastatur für die Ersteinrichtung
DebianSSH-Client13mitARM64Ed25519-Unterstützung- Bekannte Netzwerkadresse und Gateway
EineAlle USB-SSDadministrativen istBefehle fürwerden Containerals root ausgeführt. Unter Linux erfolgt der Wechsel mit su -.
Aufbau des Datenträgers
Partition | Dateisystem | Verwendung |
|---|---|---|
/dev/sda1 | FAT32 | /boot/firmware, unverschlüsselt |
/dev/sda2 | LUKS2 | Verschlüsselter Root-Datenträger |
/dev/mapper/cryptroot | ext4 | Debian und |
Die deutlichFirmware besser geeignet alsbenötigt eine microSD-Karte.unverschlüsselte Boot-Partition. Das Betriebssystem, Containerdaten und VM-Dateien auf der Root-Partition liegen innerhalb der LUKS-Verschlüsselung.
Diese Konfiguration schützt ruhende Daten, aber nicht vor Manipulationen an der unverschlüsselten Boot-Partition. Eine vollständige Boot-Integritäts- prüfung wird hier nicht eingerichtet.
2. Debian 13Debian-Image herunterladen
Das Debian-Raspberry-Pi-Image fürist denunter Raspberryfolgender PiAdresse wird als TAR.XZ-Archiv bereitgestellt. Eine ISO-Datei wird nicht benötigt.verfügbar:
Debian 13 ARM64 – DownloadverzeichnisRaspberry Pi
Auf dem Linux-PC eindie Terminal öffnen und zu root wechseln:
su -Benötigtebenötigten Werkzeuge installieren:
su -
apt update
apt install curl ca-certificates tar xz-utils tarcoreutils
Arbeitsverzeichnis erstellen:
mkdir -p /root/raspi-pve
cd /root/raspi-pve
Debian-Image herunterladen:
curl -fL --retry 3 -O https://cloud.debian.org/images/cloud/trixie/daily/latest/debian-13-raspi-arm64-daily.tar.xz
Prüfsummen herunterladen:
curl -fL --retry 3 -O https://cloud.debian.org/images/cloud/trixie/daily/latest/SHA512SUMS
DownloadPrüfsumme überprüfen:kontrollieren:
sha512sum --ignore-missing -c SHA512SUMS
NurDie fortfahren,Prüfung wenn die Prüfsummenprüfungmuss erfolgreich abgeschlossensein. wurde.Bei unterschiedlichen oder fehlenden Prüfsummen nicht fortfahren.
Archiv entpacken:
tar -xJf debian-13-raspi-arm64-daily.tar.xzIm Verzeichnis sollte anschließend die Datei disk.raw vorhanden sein.
Hinweis: Für die Debian-13-Images wurde ein Bootproblem auf dem Raspberry Pi 4 gemeldet. FallsDa das Downloadverzeichnis täglich aktualisiert wird, sollten Image nichtund startet,Prüfsummendatei siehevom denselben AbschnittBuild Fehlerbehebung.stammen.
3. DebianTemporäre aufmicroSD-Karte erstellen
Für die SSDEinrichtung schreibender
Dieverschlüsselten USB-SSD anwird denDebian Linux-PCzunächst von einer microSD-Karte gestartet.
microSD-Karte anschließen und alle angeschlossenen DatenträgerLaufwerke anzeigen:
lsblk -o NAME,SIZE,MODEL,TYPE,MOUNTPOINTS
Beispiel:
sda 1.8T Samsung SSD disk
├─sda1
└─sda2
sdb 119.2G USB SSD disk
├─sdb1
└─sdb2Imfolgenden Beispiel ist /dev/sdb die gewünschtemicroSD-Karte. USB-SSD.Die tatsächliche Bezeichnung muss anhand der Ausgabe bestimmt werden.
Achtung:Alle Der folgende Vorgang löscht alle Daten auf dem ausgewählten Datenträger. Die Gerätebezeichnung muss unbedingt stimmen.
Fallseingehängten Partitionen der Ziel-SSD eingehängt sind, dieseZielkarte vor dem Schreiben aushängen.
DasDatenträger Zielgerätnochmals interaktiv auswählen:kontrollieren:
read -r -p "Zieldatenträger (z.B.lsblk /dev/sdb): " ZIEL
test -b "$ZIEL" || exit 1
test "$(lsblk -dn -o TYPE "$ZIEL")" = "disk" || exit 1
lsblk -o NAME,SIZE,MODEL,MOUNTPOINTS "$ZIEL"sdb
NachAchtung: erneuterDer Kontrollenächste dasBefehl Schreibenlöscht bestätigen:
read -r -p "Allevorhandenen Daten auf $ZIEL/dev/sdb.
löschen?Image JAdirekt eingeben:auf "die OKKarte ifschreiben:
tar "$OK"-xOf =debian-13-raspi-arm64-daily.tar.xz "JA"disk.raw ]; then| dd if=disk.raw of="$ZIEL"/dev/sdb bs=4M status=progress conv=fsync
sync
fi
NachSollte erfolgreichemder AbschlussArchivinhalt anders heißen, den Dateinamen vorher mit tar -tJf prüfen.
Schreibvorgang abschließen:
sync
Anschließend die SSDmicroSD-Karte sicherin entfernen und mit demden Raspberry Pi verbinden.einsetzen und Debian starten.
Falls das Debian-Image nicht bootet, zuerst den Fehler untersuchen. Zu den Debian-13- Raspberry-Pi-Images existieren Berichte über Bootprobleme.
4. Debian erstmalsauf startender microSD vorbereiten
SSDNach
amdemRaspberryStartPilokalanschließen.Netzwerkkabelalsverbinden.Monitorrootundanmelden.TastaturBeianschließen.Raspberry Pi einschalten.Debian vollständig starten lassen.
Dieden Debian-Raspberry-Pi-Images ermöglichenkann zunächstdie eineerste lokale Anmeldung als root ohne Passwort.Passwort erfolgen.
Direkt nach der Anmeldung ein eigenes root-Passwort festlegen:setzen:
passwd
System aktualisieren:
apt update
apt full-upgrade
Benötigte PaketeWerkzeuge installieren:
apt install -y \
cryptsetup \
cryptsetup-initramfs \
parted \
dosfstools \
e2fsprogs \
rsync \
git \
curl ca-certificates\
openssh-server \
nano \
less
EinenSysteminformationen normalen Benutzer für SSH anlegen:kontrollieren:
adduser piadminSSH möglichst mit Schlüsselauthentifizierung einrichten. Eine direkte root-Anmeldung per SSH ist für diese Anleitung nicht erforderlich.
Hostname konfigurieren
hostnamectl set-hostname pve-pi4Die Hostdatei bearbeiten:
nano /etc/hostsBeispiel für einen zusätzlichen Eintrag:
192.168.178.50 pve-pi4.home.arpa pve-pi4Die IP-Adresse entsprechend dem eigenen Netzwerk anpassen. Am besten im Router eine feste DHCP-Zuweisung für den Raspberry Pi erstellen.
Architektur und Kernel prüfen
dpkg --print-architecture
uname -r
cat /etc/os-release
ip -br addraddress
ip route show default
Die Architektur muss arm64 sein. Für alle folgenden Schritte muss die Netzwerkverbindung funktionieren.
5. USB-SSD partitionieren
Jetzt die endgültige USB-SSD mit dem Raspberry Pi verbinden.
Alle Laufwerke anzeigen:
lsblk -o NAME,SIZE,MODEL,TYPE,MOUNTPOINTS
Das folgende Beispiel verwendet /dev/sda als Ziel-SSD. Die microSD mit dem laufenden Debian darf keinesfalls überschrieben werden.
Prüfen, dass /dev/sda die richtige SSD ist und keine ihrer Partitionen eingehängt ist:
lsblk /dev/sda
Achtung: Die nächsten Befehle löschen die Partitionstabelle und sämtliche Daten auf der gewählten SSD.
Partitionstabelle erstellen:
parted -s /dev/sda mklabel msdos
Boot-Partition mit 1 GiB erstellen:
parted -s /dev/sda mkpart primary fat32 1MiB 1025MiB
Root-Partition mit dem restlichen Platz erstellen:
parted -s /dev/sda mkpart primary 1025MiB 100%
Boot-Partition markieren:
parted -s /dev/sda set 1 boot on
partprobe /dev/sda
Partitionierung überprüfen:
lsblk /dev/sda
6. LUKS2-Verschlüsselung erstellen
Die Boot-Partition erhält FAT32:
mkfs.vfat -F32 -n PVEBOOT /dev/sda1
Die zweite Partition wird mit LUKS2 verschlüsselt:
cryptsetup luksFormat --type luks2 /dev/sda2
Den Löschvorgang bestätigen und eine lange, einzigartige Passphrase festlegen. Die Passphrase wird beim späteren SSH-Unlock benötigt.
Verschlüsselte Partition öffnen:
cryptsetup open /dev/sda2 cryptroot
Ext4-Dateisystem erstellen:
mkfs.ext4 -L pve-root /dev/mapper/cryptroot
Verschlüsselung prüfen:
cryptsetup status cryptroot
lsblk -f /dev/sda
LUKS2 verwendet den Passwortschutz zur Ableitung des Entschlüsselungsschlüssels. Die Passphrase wird nicht in einer Datei auf der Boot-Partition gespeichert.
7. Debian auf die verschlüsselte SSD übertragen
Die verschlüsselte Root-Partition einhängen:
mkdir -p /mnt/pve-root
mount /dev/mapper/cryptroot /mnt/pve-root
Das laufende Debian von der microSD auf die verschlüsselte Root-Partition kopieren:
rsync -aHAXx --numeric-ids \
--exclude='/dev/***' \
--exclude='/proc/***' \
--exclude='/sys/***' \
--exclude='/run/***' \
--exclude='/tmp/***' \
--exclude='/mnt/***' \
--exclude='/media/***' \
/ /mnt/pve-root/
Dadurch wird das installierte Debian mit Dateirechten, Eigentümern und erweiterten Attributen auf die SSD übertragen. Temporäre Dateisysteme werden ausgelassen.
Benötigte Verzeichnisse erstellen:
mkdir -p /mnt/pve-root/{dev,proc,sys,run,tmp,mnt,media,boot/firmware}
chmod 1777 /mnt/pve-root/tmp
Boot-Partition einhängen:
mount /dev/sda1 /mnt/pve-root/boot/firmware
Firmware und Bootdateien kopieren:
rsync -aH /boot/firmware/ /mnt/pve-root/boot/firmware/
8. Root-Dateisystem konfigurieren
Die UUID der LUKS-Partition ermitteln:
cryptsetup luksUUID /dev/sda2
UUID der Boot-Partition anzeigen:
blkid /dev/sda1
Diese beiden UUIDs werden für die Systemkonfiguration benötigt.
Crypttab der SSD bearbeiten:
nano /mnt/pve-root/etc/crypttab
Folgenden Eintrag hinzufügen:
cryptroot UUID=HIER-LUKS-UUID-EINTRAGEN none luks,initramfs
Den Platzhalter durch die tatsächliche UUID aus ersetzen.arm64cryptsetup luksUUID
Fstab bearbeiten:
nano /mnt/pve-root/etc/fstab
Die alten Einträge für / und /boot/firmware ersetzen:
/dev/mapper/cryptroot / ext4 defaults,noatime 0 1
UUID=BOOT-UUID /boot/firmware vfat defaults,umask=0077 0 2
BOOT-UUID durch die UUID aus blkid /dev/sda1 ersetzen.
Andere alte Root- oder Boot-Einträge dürfen nicht parallel aktiv bleiben.
9. Chroot-Umgebung betreten
Damit Pakete und Initramfs für das neue System vorbereitet werden können, werden die benötigten Systemverzeichnisse eingebunden.
mount --rbind /dev /mnt/pve-root/dev
mount --make-rslave /mnt/pve-root/dev
mount --rbind /proc /mnt/pve-root/proc
mount --make-rslave /mnt/pve-root/proc
mount --rbind /sys /mnt/pve-root/sys
mount --make-rslave /mnt/pve-root/sys
mount --rbind /run /mnt/pve-root/run
mount --make-rslave /mnt/pve-root/run
In das neue System wechseln:
chroot /mnt/pve-root /bin/bash
Die folgenden Befehle werden nun innerhalb der verschlüsselten Debian-Installation ausgeführt.
Benötigte Initramfs-Pakete installieren:
apt update
apt install -y cryptsetup-initramfs dropbear-initramfs initramfs-tools busybox
10. Raspberry-Pi-Boot konfigurieren
Debian verwendet auf dem Raspberry Pi das Paket raspi-firmware zur Erstellung der Bootdateien.
Konfiguration öffnen:
nano /etc/default/raspi-firmware
Die Variable ROOTPART ergänzen beziehungsweise aktivieren:
ROOTPART="/dev/mapper/cryptroot"
Die Option INITRAMFS muss auf auto stehen beziehungsweise darf nicht deaktiviert sein:
INITRAMFS="auto"
In der Initramfs-Konfiguration sollten die erforderlichen Treiber für USB und die Root-Partition enthalten sein.
Datei Community-Projektbearbeiten:
nano /etc/initramfs-tools/initramfs.conf
Folgenden Wert setzen:
MODULES=most
Die USB-SSD muss bereits im Initramfs erkannt werden. Deshalb dürfen benötigte USB- und Storage-Treiber nicht fehlen.
11. Initramfs-Netzwerk einrichten
Dropbear benötigt bereits vor dem Mounten der Root-Partition eine Netzwerkverbindung.
Beispielkonfiguration:
Interface | eth0 |
IP-Adresse | 10.100.0.2 |
Netzmaske | 255.255.0.0 |
Gateway | 10.100.0.1 |
Hostname | pve-pi4 |
Die Beispielwerte müssen an das eigene Netzwerk angepasst werden. eth0 ist der kabelgebundene Netzwerkanschluss des Raspberry Pi in dieser Konfiguration.
Netzwerkinformationen anzeigen:
ip -br address
ip route show default
Initramfs-Konfiguration öffnen:
nano /etc/initramfs-tools/initramfs.conf
Folgende Werte eintragen:
DEVICE=eth0
IP=10.100.0.2::10.100.0.1:255.255.0.0:pve-pi4:eth0:none
Die statische IP-Adresse zusätzlich dauerhaft über die Raspberry-Pi-Kernelparameter setzen.
Datei öffnen oder erstellen:
nano /etc/default/raspi-extra-cmdline
Inhalt:
ip=10.100.0.2::10.100.0.1:255.255.0.0:pve-pi4:eth0:none
Der gesamte Kernelparameter muss in einer einzigen Zeile stehen.
Die Initramfs-IP wird später unabhängig von der regulären Netzwerkkonfiguration des Proxmox-Systems verwendet.
12. SSH-Schlüssel für Dropbear erstellen
Auf dem Linux-Client, von dem die SSD später entsperrt werden soll, einen separaten SSH-Schlüssel erzeugen:
ssh-keygen -t ed25519 -a 100 \
-f ~/.ssh/id_initramfs_unlock_pi4 \
-C "Pi4 LUKS Unlock"
Für den privaten Schlüssel sollte eine eigene Passphrase verwendet werden.
Öffentlichen Schlüssel anzeigen:
cat ~/.ssh/id_initramfs_unlock_pi4.pub
Der private Schlüssel bleibt ausschließlich auf dem Client. Nur der öffentliche Schlüssel wird in Dropbear hinterlegt.
13. Dropbear absichern
Auf dem Raspberry Pi, weiterhin in der Chroot-Umgebung, das Schlüsselverzeichnis vorbereiten:
install -d -m 0700 /etc/dropbear/initramfs
nano /etc/dropbear/initramfs/authorized_keys
Folgenden Aufbau verwenden und SSH-PUBLIC-KEY durch den vollständigen öffentlichen Ed25519-Schlüssel ersetzen:
no-port-forwarding,no-agent-forwarding,no-X11-forwarding,command="/bin/cryptroot-unlock" ssh-ed25519 SSH-PUBLIC-KEY
Die gesamte Zeile muss ohne Zeilenumbruch in der Datei stehen.
Durch den festgelegten Befehl kann der SSH-Schlüssel nur die Entsperrfunktion starten. Er soll keine beliebige Root-Shell im Initramfs eröffnen.
Dateirechte setzen:
chmod 0600 /etc/dropbear/initramfs/authorized_keys
Dropbear-Konfiguration bearbeiten:
nano /etc/dropbear/initramfs/dropbear.conf
Folgenden Eintrag setzen:
DROPBEAR_OPTIONS="-p 2222 -s -j -k -I 120"
Der SSH-Dienst verwendet Port 2222. Passwortanmeldung und SSH-Portweiterleitungen sind deaktiviert.
Für Dropbear sollten eigene SSH-Hostkeys verwendet werden. Diese werden normalerweise bei der Paketinstallation erzeugt.
Vorhandenen Ed25519-Hostkey prüfen:
ls -l /etc/dropbear/initramfs/dropbear_ed25519_host_key
Falls dieser fehlt, erzeugen:
dropbearkey -t ed25519 -f /etc/dropbear/initramfs/dropbear_ed25519_host_key
Den Fingerprint für den späteren Vergleich mit dem SSH-Client anzeigen und sicher notieren:
dropbearkey -y -f /etc/dropbear/initramfs/dropbear_ed25519_host_key
14. Initramfs erzeugen und überprüfen
Nach Abschluss der Konfiguration das Initramfs neu erstellen:
update-initramfs -u -k all
Anschließend die erzeugten Bootdateien kontrollieren:
ls -lh /boot/initrd.img-*
ls -lh /boot/firmware/
Die gewünschte Initramfs-Datei auswählen, beispielsweise anhand des installierten Kernel-Namens:
ls /lib/modules
Beispiel für die Inhaltsprüfung mit dem tatsächlich vorhandenen Kernel-Namen:
lsinitramfs /boot/initrd.img-KERNELVERSION
Im Archiv müssen unter anderem Dropbear, die Schlüsselkonfiguration und cryptroot-unlock enthalten sein.
Die Raspberry-Pi-Bootkonfiguration prüfen:
cat /boot/firmware/config.txt
cat /boot/firmware/cmdline.txt
config.txt muss den Kernel 6.12und das Initramfs laden. cmdline.txt muss die verschlüsselte Root-Partition über root=/dev/mapper/cryptroot referenzieren.
Außerdem muss die konfigurierte statische Netzwerkadresse als ip-Parameter enthalten sein.
Falls die generierten Dateien nicht stimmen, die Konfiguration korrigieren und update-initramfs erneut ausführen. cmdline.txt wird vom Firmwarepaket bei Updates neu erstellt, weshalb dauerhafte Parameter in den dafür vorgesehenen Quelldateien hinterlegt werden.
15. Verschlüsselte Installation starten
Chroot-Umgebung verlassen:
exit
Alle eingebundenen Dateisysteme aushängen:
umount -R /mnt/pve-root
LUKS-Partition schließen:
cryptsetup close cryptroot
Schreibvorgänge abschließen:
sync
Raspberry Pi herunterfahren:
poweroff
Die temporäre microSD-Karte entfernen. Die USB-SSD bleibt am Raspberry Pi angeschlossen.
Für das Booten über USB muss die Firmware des Raspberry Pi 4 USB-Boot unterstützen und entsprechend konfiguriert sein.
Raspberry Pi einschalten. Der Bootvorgang wartet nun auf das Entsperren der LUKS-Root-Partition.
16. Verschlüsselung über SSH entsperren
Sobald Dropbear gestartet ist, sollte der Raspberry Pi unter seiner Initramfs-IP-Adresse über Port 2222 erreichbar sein.
Vom Linux-Client aus verbinden:
ssh -t \
-p 2222 \
-i ~/.ssh/id_initramfs_unlock_pi4 \
root@10.100.0.2
Beim ersten Kontakt den angezeigten SSH-Hostkey-Fingerprint mit dem zuvor notierten Fingerprint vergleichen. Einen unbekannten oder neuerfalschen alsHostkey getestetenicht Grundlage.bestätigen.
Nach einemder Kernel-UpdateAnmeldung denstartet automatisch cryptroot-unlock.
Die LUKS-Passphrase eingeben. Bei erfolgreicher Entsperrung wird der normale Debian-Bootvorgang fortgesetzt.
17. Komfortablen SSH-Zugriff konfigurieren
Auf dem Linux-Client die SSH-Konfiguration öffnen:
nano ~/.ssh/config
Folgenden Host ergänzen:
Host pve-pi4-unlock
HostName 10.100.0.2
User root
Port 2222
IdentityFile ~/.ssh/id_initramfs_unlock_pi4
IdentitiesOnly yes
RequestTTY force
StrictHostKeyChecking yes
UserKnownHostsFile ~/.ssh/known_hosts_initramfs
Die separate Known-Hosts-Datei verhindert Verwechslungen zwischen dem Initramfs-SSH- Server und dem normalen SSH-Dienst von Debian.
SSH-Konfiguration absichern:
chmod 600 ~/.ssh/config
chmod 600 ~/.ssh/id_initramfs_unlock_pi4
Den Hostkey einmal kontrolliert mit dem zuvor notierten Fingerprint bestätigen.
Anschließend genügt beim nächsten Boot:
ssh pve-pi4-unlock
Nun die LUKS-Passphrase eingeben. Danach fährt Debian regulär hoch.
18. Debian nach der Entsperrung prüfen
Am Raspberry Pi neulokal starten:als root anmelden.
Prüfen, ob Root verschlüsselt ist:
rebootfindmnt /
cryptsetup status cryptroot
lsblk -f
findmnt sollte /dev/mapper/cryptroot als Root-Dateisystem anzeigen.
Netzwerkkonfiguration prüfen:
ip -br address
ip route show default
Vor der Installation von Proxmox einen vollständigen Neustart einschließlich SSH-Entsperrung erfolgreich durchführen.
5.19. Proxmox-InstallationPakete vorbereiteninstallieren
Die Proxmox-Paketefolgenden werdenSchritte überverwenden das Community-Projekt Pimox ARM64 RPI Control installiert.Control.
Pimox ARM64 RPI Control – GitHub
AmDas RaspberryProjekt Piinstalliert alsangepasste root anmelden oderProxmox-Pakete aus einerdem normalen SSH-Sitzung mit su - zu root wechseln.PXVIRT-Repository.
Wichtig: Der vollständige Installer build.sh darf hier nicht unverändert ausgeführt werden.
Er enthält einen Schritt zur automatischen Vergrößerung der Root-Partition, der nicht für diese LUKS-Installation vorgesehen ist.
Git-Repository herunterladen:
cd /root
git clone https://github.com/topa-LE/pve-arm64-rpi-control.git
cd pve-arm64-rpi-control
Verwendeten Commit dokumentieren:
git rev-parse HEAD
VorDie gewünschten Skripte vor der InstallationAusführung die Skripte überprüfen, insbesondere Änderungen an Netzwerk, APT-Quellen und Systemdiensten:kontrollieren:
less build.sh
less scripts/02_prepare_system.sh
less scripts/04_configure_network_bridge.sh
less scripts/05_enable_vmbr0.sh
less scripts/06_add_proxmox_repo.sh
less scripts/07_install_proxmox_ve.sh
DerInsbesondere Installerden nutztexternen einAPT-Signaturschlüssel externes PXVIRT-Repository. Außerdem verändert erund die Netzwerkkonfiguration.Paketquelle Deshalbprüfen. wirdFalls der Schlüssel nicht unabhängig verifiziert werden kann, die InstallationPaketquelle hiernicht inals zweivertrauenswürdig Abschnitten durchgeführt.einrichten.
6. Netzwerk-Bridge einrichten
Wichtig: Diesen Abschnitt direkt am Raspberry Pi mit Monitor und Tastatur ausführen. Bei einer SSH-Verbindung kann der Netzwerkzugriff während der Umstellung verloren gehen.
Systemprüfung ausführen:
cd /root/pve-arm64-rpi-control
bash scripts/00_system_check.sh
bash scripts/01_hardware_report.shBasissystem vorbereiten:
bash scripts/02_prepare_system.shDieses Skript installiert Netzwerkwerkzeuge und deaktiviert unter anderem WLAN und Bluetooth.
Netzwerkkonfiguration vorbereiten:
bash scripts/04_configure_network_bridge.shPrüfen, ob die kabelgebundene Schnittstelle tatsächlich eth0 heißt:
ip -br addr
ip routeAnschließend die Bridge vorbereiten. Im folgenden Beispiel wird eth0 verwendet:
IFACE=eth0 bash scripts/05_enable_vmbr0.shDas Skript richtet die Bridge vmbr0 ein und übernimmt die bisherige IPv4-Adresse und das Standardgateway.
Konfiguration kontrollieren:
cat /etc/network/interfacesWenn IP-Adresse, Gateway und Schnittstelle stimmen, den Raspberry Pi neu starten:
reboot
Nach dementsprechender NeustartPrüfung sollte die Management-IP auf vmbr0 liegen.
7. Proxmox-Pakete installieren
Nach dem Neustart erneut als root anmelden.
Netzwerkverbindung prüfen:
ip -br addr
ip route
apt updateDie Installation erst fortsetzen, wenn die Netzwerkverbindung funktioniert.
Inkann das ProjektverzeichnisPXVIRT-Repository wechseln:
cd /root/pve-arm64-rpi-controlPXVIRT-Paketrepository einrichten:werden:
bash scripts/06_add_proxmox_repo.sh
Verfügbare Proxmox-Pakete kontrollieren:prüfen:
apt update
apt-cache policy proxmox-ve
DanachVor der Installation die angepasstengeplanten Proxmox-KomponentenPaketänderungen installieren:simulieren:
bashapt-get scripts/07_install_proxmox_ve.sh-s install proxmox-ve
Dabei darauf achten, dass weder cryptsetup-initramfs noch dropbear-initramfs, raspi-firmware oder der funktionierende Debian-Bootkernel entfernt werden.
Wenn die Paketauflösung kompatibel ist:
apt install proxmox-ve
Nach erfolgreicherder Installation die installierte Version kontrollieren:
pveversion -v
uname -r
RaspberryDer PiRaspberry-Pi-kompatible neuKernel starten:muss weiterhin für den Bootvorgang verwendet werden können.
20. Netzwerk-Bridge für Proxmox einrichten
Proxmox verwendet üblicherweise eine Linux-Bridge namens vmbr0.
Diese wird erst nach erfolgreicher LUKS-Entsperrung verwendet. Dropbear benötigt im Initramfs weiterhin die physische Schnittstelle eth0.
Die folgenden Änderungen lokal mit Monitor und Tastatur durchführen.
Benötigtes Paket installieren:
rebootapt install ifupdown2
Vorher die bestehende Netzwerkkonfiguration sichern und ermitteln, welcher Dienst aktuell eth0 verwaltet.
Für eine reine ifupdown2-Konfiguration kann /etc/network/interfaces beispielsweise folgendermaßen aussehen:
auto lo
iface lo inet loopback
iface eth0 inet manual
auto vmbr0
iface vmbr0 inet static
address 10.100.0.2/16
gateway 10.100.0.1
bridge-ports eth0
bridge-stp off
bridge-fd 0
Die Werte müssen zum eigenen Netzwerk passen. Die Konfiguration gehört in:
/etc/network/interfaces
Konkurrierende Netzwerkmanager dürfen eth0 nicht gleichzeitig konfigurieren. Den Wechsel deshalb erst nach Prüfung des vorhandenen Netzwerkdienstes durchführen.
Die Initramfs-Konfiguration bleibt unverändert auf eth0. Nach dem Unlock übernimmt das normale Betriebssystem mit vmbr0.
8.21. Initramfs nach Änderungen aktualisieren
Nach Kernel-, Cryptsetup- oder Dropbear-Updates sollte die Bootkonfiguration erneut kontrolliert werden.
Initramfs regenerieren:
update-initramfs -u -k all
Bootdateien prüfen:
cat /boot/firmware/config.txt
cat /boot/firmware/cmdline.txt
Die Root-Referenz, Initramfs-Einträge und statische IP-Konfiguration müssen erhalten bleiben.
Vor einem unbeaufsichtigten Betrieb mindestens einen vollständigen Neustart einschließlich erfolgreicher SSH-Entsperrung durchführen.
22. Proxmox-Weboberfläche
Nach demerfolgreichem NeustartDebian-Start und funktionierender Proxmox-Installation kann die Weboberfläche übergeöffnet Port 8006 aufgerufen werden.
Beispiel:werden:
https://192.168.178.50:10.100.0.2:8006
Login:Anmeldedaten:
- Benutzer: root
- Passwort:
Das zuvor gesetzteroot-Passwort des Debian-Systems - Realm: Linux PAM
DieBeim Weboberflächeersten verwendetAufruf anfangskann möglicherweiseder einBrowser selbstsigniertesvor einem selbstsignierten TLS-Zertifikat.Zertifikat warnen. Den Zertifikatsfingerprint vor der Freigabe überprüfen.
9.23. SystemLUKS-Header überprüfensichern
Proxmox-VersionDer anzeigen:LUKS-Header enthält wichtige Informationen für die Entschlüsselung. Bei einer Beschädigung können sämtliche Daten verloren gehen.
Zur Sicherung die LUKS-Partition identifizieren:
pveversionlsblk -vf
KernelAnschließend prüfen:den Header auf einem geeigneten externen Backup-Datenträger sichern. Beispiel:
unamecryptsetup luksHeaderBackup /dev/sda2 \
-r-header-backup-file /PFAD/ZUM/SICHEREN-BACKUP/pi4-luks-header.img
WeboberflächeDer kontrollieren:
systemctl status pveproxy --no-pagerNetzwerk anzeigen:
ip -br addrKVM-Verfügbarkeit prüfen:
ls -l /dev/kvmArbeitsspeicher und Datenträger prüfen:
free -h
df -h /
lsblkFalls das Root-Dateisystem nicht die volle SSD-Kapazität verwendet,Zielpfad muss dieauf Partitionierungeinen separattatsächlich geprüfteingehängten, undgeschützten beiBackup-Datenträger Bedarfzeigen. erweitertNicht werden.auf der verschlüsselten SSD selbst speichern.
10.
Den HinweiseHeader und Fehlerbehebung
Debian startet nicht
Für die Debian-13-Raspberry-Pi-Cloud-Images existiert ein gemeldeter Bootfehlerzusammen mit der PartitionstabellePassphrase beziehungsweise Firmwareeinem geeigneten Wiederherstellungsschlüssel sicher aufbewahren. Header-Backups können Offline-Angriffe auf demPassphrasen Raspberry Pi 4.ermöglichen.
Bei einem Bootproblem zuerst die FehlermeldungSicherheits- und den Stand des Bugs prüfen. Ein erneutes Schreiben desselben Images behebt einen Fehler im Image selbst nicht.
Weboberfläche nicht erreichbar
Zuerst den Netzwerkstatus und den Proxmox-Proxy prüfen:
ip -br addr
ip route
systemctl status pveproxy --no-pagerKernel und Virtualisierung
Den funktionierenden Raspberry-Pi-Boot-Kernel nicht unkontrolliert ersetzen. ARM64-Container eignen sich für erste Tests. Virtuelle Maschinen benötigen passende ARM64-Gastsysteme und gegebenenfalls KVM.
Sicherheit
Betriebshinweise
Port 8006Initramfs-Dropbear nur iminternenvertrauenswürdigenNetzwerkLAN oder Verwaltungs-VLAN erreichbar machen.SSHKeinmöglichstPortforwarding aufSchlüsselanmeldungPortumstellen.2222 ins Internet einrichten.KeineSSH-Private-KeyStandardpasswörternichtverwenden.Community-Paketeaufund Updates vor der Installation prüfen.Vor größeren Änderungen ein Backup erstellen.Denden Raspberry Pinurübertragen.- LUKS-Passphrase
fürnichtTest-in Skripten oder SSH-Konfigurationsdateien speichern. - Den unverschlüsselten Bootbereich gegen Manipulation schützen.
- Die temporäre microSD enthält eine unverschlüsselte Debian-Kopie und
Homelab-Zweckemusseinsetzen.sicher verwahrt oder ausgemustert werden. - Für VM-Datenträger ausschließlich verschlüsselten Speicher verwenden.
- Keinen unverschlüsselten Swap außerhalb von LUKS verwenden.
- Kernel- und Initramfs-Updates vor dem produktiven Einsatz durch einen Neustart testen.
- Recovery-Zugriff über Monitor und Tastatur ermöglichen.
11. Weiterführende25. Dokumentation
- Debian – Raspberry Pi Images
- Debian – Raspberry Pi 4
- Debian – Dropbear
- Debian – Cryptsetup und Remote-Unlock
- Pimox ARM64 RPI Control
- PXVIRT
- Proxmox VE Dokumentation
Stand: Oktober 2026. Community-InstallationswegInstallationskonzept für Testsysteme; auf dem beschriebeneneinen Raspberry Pi 4 mit Debian 13, LUKS2 und Dropbear. Die gesamte Kombination einschließlich Community-Proxmox wurde nicht eigenständigauf der Zielhardware getestet.