Skip to main content

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- undoder Internetverbindung
  • anderer Linux-PC zur Vorbereitung
  • LAN-Verbindung zum VorbereitenRaspberry der SSDPi
  • Monitor und Tastatur für die Ersteinrichtung
  • DebianSSH-Client 13mit ARM64Ed25519-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 virtuelleProxmox

Maschinen

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.xz

Im 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:

Im
sda    1.8T  Samsung SSD       disk
├─sda1
└─sda2
sdb  119.2G  USB SSD           disk
├─sdb1
└─sdb2

Imfolgenden 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:

sämtliche
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

  1. SSD

    Nach amdem RaspberryStart Pilokal anschließen.

  2. Netzwerkkabelals verbinden.
  3. Monitorroot undanmelden. TastaturBei anschließen.
  4. Raspberry Pi einschalten.
  5. 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 piadmin

SSH 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-pi4

Die Hostdatei bearbeiten:

nano /etc/hosts

Beispiel für einen zusätzlichen Eintrag:

192.168.178.50 pve-pi4.home.arpa pve-pi4

Die 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 arm64cryptsetup luksUUID ersetzen.

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.

Das

Datei Community-Projektbearbeiten:

nennt
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

Authorized-Keys-Datei bearbeiten:

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.sh

Basissystem vorbereiten:

bash scripts/02_prepare_system.sh

Dieses Skript installiert Netzwerkwerkzeuge und deaktiviert unter anderem WLAN und Bluetooth.

Netzwerkkonfiguration vorbereiten:

bash scripts/04_configure_network_bridge.sh

Prüfen, ob die kabelgebundene Schnittstelle tatsächlich eth0 heißt:

ip -br addr
ip route

Anschließend die Bridge vorbereiten. Im folgenden Beispiel wird eth0 verwendet:

IFACE=eth0 bash scripts/05_enable_vmbr0.sh

Das Skript richtet die Bridge vmbr0 ein und übernimmt die bisherige IPv4-Adresse und das Standardgateway.

Konfiguration kontrollieren:

cat /etc/network/interfaces

Wenn 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 update

Die Installation erst fortsetzen, wenn die Netzwerkverbindung funktioniert.

Inkann das ProjektverzeichnisPXVIRT-Repository wechseln:

eingerichtet
cd /root/pve-arm64-rpi-control

PXVIRT-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 gesetzte root-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-pager

Netzwerk anzeigen:

ip -br addr

KVM-Verfügbarkeit prüfen:

ls -l /dev/kvm

Arbeitsspeicher und Datenträger prüfen:

free -h
df -h /
lsblk

Falls 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.

Debian

24. Bug #1130560

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-pager

Kernel 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 im internenvertrauenswürdigen NetzwerkLAN oder Verwaltungs-VLAN erreichbar machen.
  • SSHKein möglichstPortforwarding auf SchlüsselanmeldungPort umstellen.2222 ins Internet einrichten.
  • KeineSSH-Private-Key Standardpasswörternicht verwenden.
  • Community-Paketeauf und Updates vor der Installation prüfen.
  • Vor größeren Änderungen ein Backup erstellen.
  • Denden Raspberry Pi nurübertragen.
  • LUKS-Passphrase fürnicht Test-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-Zweckemuss einsetzen.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

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.