Industrielle Raspberry-Pi-Systeme müssen sowohl in Bezug auf die Hardware als auch auf die Software robust sein.
Insbesondere durch die Einstellung der Systemdateien auf „schreibgeschützt“ lässt sich das Risiko von Datenbeschädigungen durch unerwartete Abschaltungen verringern und verhindern, dass unbeabsichtigte Änderungen dauerhaft gespeichert werden, wodurch das System robuster wird.
Raspberry Pi OS Trixie unterscheidet sich erheblich von früheren Versionen, sodass einige ältere Informationen nicht mehr zutreffen.
In diesem Artikel habe ich die schreibgeschützte Konfiguration erneut in einer Trixie-Umgebung getestet.
Testumgebung
Das für diesen Test verwendete Raspberry-Pi-System ist für industrielle Anwendungen konzipiert und unterscheidet sich daher in gewisser Weise von handelsüblichen Raspberry-Pi-Systemen auf CM-Basis.
- PL-R5 USB IP20 (https://pilink.jp/product/pl-r5-usb-ip20/)
- 32-GB-microSD-Karte
- Modell: Raspberry Pi Compute Module 5 Rev. 1.0
- Betriebssystem: Debian GNU/Linux 13 (Trixie)
- Kernel: 6.18.29+rpt-rpi-2712
Überprüfen Sie die Netzwerkeinstellungen
Bevor Sie OverlayFS aktivieren, stellen Sie bitte sicher, dass der Befehl „ sudo apt update “ erfolgreich ausgeführt wird.
Da „ raspi-config “ das Paket „ overlayroot “ intern installiert, kann der Konfigurationsvorgang fehlschlagen, wenn die Netzwerk- oder DNS-Verbindung instabil ist.
Um die Netzwerkeinstellungen zu überprüfen, habe ich die Befehle „ ip “ und „ nmcli “ wie unten gezeigt verwendet.
ip route
default via 192.168.0.1 dev eth0 proto static metric 100
192.168.0.0/24 dev eth0 proto kernel scope link src 192.168.0.10 metric 100
Verwenden Sie den Befehl „ nmcli “, um den Verbindungsnamen zu überprüfen.
nmcli connection show
Falls keine Netzwerkverbindung besteht, konfigurieren Sie diese, indem Sie den unter „NAME“ aufgeführten Verbindungsnamen angeben.
Im Folgenden finden Sie ein Beispiel für die Konfiguration des Netzwerks für eth0.
Alternativ können Sie das Netzwerk über die Desktop-GUI konfigurieren.
sudo nmcli connection modify "Wired connection 1" \
ipv4.method manual \
ipv4.addresses 192.168.0.10/24 \
ipv4.gateway 192.168.0.1 \
ipv4.dns 192.168.0.1 \
ipv4.never-default no
Ab diesem Zeitpunkt können Sie die Einrichtung über SSH fortsetzen.
Datenspeicherbereich
Der PL-R5 verfügt zudem über einen microSD-Kartensteckplatz (nicht zum Booten).
Selbst wenn der eMMC als Bootlaufwerk verwendet wird, kann die microSD-Karte als beschreibbarer Datenspeicherbereich eingebunden werden.
Der PL-R5 kann zudem mit einer SSD ausgestattet werden.
Bitte beachten Sie, dass sich bei handelsüblichen Raspberry Pi CM5-Systemen eMMC und microSD gegenseitig ausschließen, sodass nur eines davon verwendet werden kann.

Dieses Verhalten hängt von der Auslegung der Trägerplatine ab; daher ist es wichtig, die technischen Daten des von Ihnen verwendeten Systems zu überprüfen.
Bei dieser PL-R5-Konfiguration wird der eMMC als Boot-Laufwerk und die microSD-Karte als Datenspeicherbereich verwendet.

■ Hinweis
: Da auf dem PL-R5 das Betriebssystem „Raspberry Pi OS Trixie“ läuft, musste ich „ dtoverlay=sdio-pi5 “ zu „ /boot/firmware/config.txt “ hinzufügen, damit die microSD-Karte erkannt wurde.
Fügen Sie die Zeile nach „ [ALL] “ ein.
Erstellen Sie einen beschreibbaren Speicherort
Als ich das separate microSD-Gerät mit dem Befehl „ lsblk “ überprüfte, wurde es als „ mmcblk2p1 “ erkannt. Ich habe ein Verzeichnis „ /data “ angelegt und einen Eintrag in „ fstab “ hinzugefügt, damit die microSD-Karte beim Systemstart automatisch eingebunden wird.
lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop0 7:0 0 2G 0 loop
mmcblk0 179:0 0 29.1G 0 disk
├─mmcblk0p1 179:1 0 512M 0 part /boot/firmware
└─mmcblk0p2 179:2 0 28.6G 0 part /
mmcblk0boot0 179:32 0 4M 1 disk
mmcblk0boot1 179:64 0 4M 1 disk
mmcblk2 179:96 0 28.8G 0 disk
└─mmcblk2p1 179:97 0 28.8G 0 part
zram0 254:0 0 2G 0 disk [SWAP]
Erstellen Sie das Verzeichnis „ /data “ und hängen Sie die Partition ein.
sudo mkdir -p /data
sudo mount /dev/mmcblk2p1 /data
Überprüfen Sie die UUID.
Die UUID wird benötigt, wenn Sie den Eintrag unter fstab hinzufügen.
sudo blkid /dev/mmcblk2p1
/dev/mmcblk2p1: LABEL="data" UUID="76a0c4e4-5072-411f-ae8e-4daf55604603" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="3dfbf2f1-01"
Fügen Sie /data zur fstab hinzu
Geben Sie die UUID an und fügen Sie den folgenden Eintrag am Ende der Datei „ fstab “ hinzu.
sudo nano /etc/fstab
UUID=76a0c4e4-5072-411f-ae8e-4daf55604603 /data ext4 defaults 0 2
Die Konfiguration der automatischen Einbindung ist nun abgeschlossen. Starten Sie das System neu und überprüfen Sie mit dem Befehl „ lsblk “, ob die Partition korrekt eingebunden wurde.
Die Vorbereitung ist nun abgeschlossen. Der nächste Schritt besteht darin, OverlayFS zu aktivieren und die Systemdateien schreibgeschützt zu machen.
OverlayFS aktivieren
OverlayFS kann über das Menü „ raspi-config “ konfiguriert werden, indem Sie den Befehl „ sudo raspi-config “ ausführen.
Schritte zur Aktivierung von OverlayFS
Menü: Leistungsoptionen → Overlay-Dateisystem → Aktivieren





Stellen Sie sicher, dass die /boot-Partition beschreibbar bleibt.


Normalerweise sollte OverlayFS nun aktiviert sein. In dieser Umgebung (dem offiziellen Raspberry Pi OS und dem PL-R5) funktionierte dies jedoch nicht.
Die Ursache lag darin, dass das overlay Modul nicht geladen worden war.
Dieses Verhalten kann je nach Version variieren. Sollte OverlayFS nach einem Neustart nicht aktiviert sein, versuchen Sie bitte die folgende Problemumgehung.
Fehlerbehebung, wenn OverlayFS nicht funktioniert
Ich bin auf eine Situation gestoßen, in der OverlayFS auch nach korrekter Konfiguration und einem Neustart des Systems nicht funktionierte. Da es möglicherweise noch andere Ursachen geben kann, gilt die folgende Lösung nicht in jedem Fall.
Diese Abhilfe gilt für den Fall, dass das Modul „ overlay “ nicht geladen wurde.
Zum Zeitpunkt der Erstellung dieses Beitrags konnte ich das Problem beheben, indem ich das System explizit so konfigurierte, dass das Modul geladen wird.
Dies kann von der jeweiligen Umgebung abhängen, aber habe ich festgestellt, dass das erforderliche Modul nicht automatisch geladen wurde.
# Edit the modules file
sudo nano /etc/initramfs-tools/modules
# Add the following
overlay
# Update initramfs
sudo update-initramfs -u
# Reboot
sudo reboot
OverlayFS sollte nun aktiviert sein.
Diese Umgehungslösung wird nicht mehr erforderlich sein, sobald das Problem in einem zukünftigen Update des Raspberry Pi OS behoben ist.
/data aus OverlayFS ausschließen
Wenn OverlayFS über „ raspi-config “ aktiviert wird, wird das zuvor erstellte Verzeichnis „ /data “ ebenfalls schreibgeschützt.
Je nach Verwendungszweck ist dies möglicherweise nicht erwünscht; daher werden wir „ /data “ so konfigurieren, dass es von OverlayFS ausgeschlossen wird.
Bearbeiten Sie „ cmdline.txt “.
sudo nano /boot/firmware/cmdline.txt
Wie unten dargestellt, fügen Sie am Anfang der Zeile „ :recurse=0 “ an „ overlayroot=tmpfs “ an.
overlayroot=tmpfs:recurse=0
Starten Sie anschließend das System neu.
Bevor „ /data “ ausgeschlossen wurde, zeigte die Ausgabe des folgenden Befehls an, dass es unter „ root-ro “ als schreibgeschützt verzeichnet war.
mount | grep /data
/dev/mmcblk2p1 on /media/root-ro/data type ext4 (ro,relatime)
/media/root-ro/data on /data type overlay (rw,relatime,lowerdir=/media/root-ro/data,upperdir=/media/root-rw/overlay/data,workdir=/media/root-rw/overlay-workdir/data,uuid=on)
Nach dem Anwenden der Ausschlusseinstellung zeigt die Ausgabe „ rw “ an, was bedeutet, dass auf „ /data “ normal gelesen und geschrieben werden kann.
/dev/mmcblk2p1 on /data type ext4 (rw,relatime)
Das Root-Dateisystem bleibt unterdessen weiterhin unter „ overlayroot on / type overlay “ eingebunden. Dies ist zu erwarten und stellt kein Problem dar.
mount | grep " on / "
overlayroot on / type overlay (rw,relatime,lowerdir=/media/root-ro,upperdir=/media/root-rw/overlay,workdir=/media/root-rw/overlay-workdir/_,uuid=on)
Verwenden Sie die folgenden beiden Befehle, um den Status von „ /data “ und des Root-Dateisystems zu überprüfen.
mount | grep /data
mount | grep " on / "
■ Hinweis:
Wenn „ recurse=0 “ angegeben wird, gilt OverlayFS nur für das Root-Dateisystem (/).
Da „ /data “ auf der microSD-Karte in dieser Konfiguration als separates Dateisystem eingebunden ist, wird es von OverlayFS ausgeschlossen, und die Daten werden direkt auf die microSD-Karte geschrieben.
Obwohl dies in der Konfiguration nicht ausdrücklich vermerkt ist, gilt de facto die interne Standardeinstellung „ overlayroot=tmpfs:recurse=1 “.
OverlayFS bei Änderungen deaktivieren
Eine mögliche Anwendung dieser Konfiguration besteht darin, das beschreibbare Verzeichnis „ /data “ als Ausgabeziel für Anwendungen zu verwenden.
Sollten Sie später eine Anwendung installieren oder Systemeinstellungen ändern müssen, während OverlayFS aktiviert ist, gehen die am Root-Dateisystem vorgenommenen Änderungen nach einem Neustart verloren.
Wir empfehlen daher, OverlayFS vorübergehend zu deaktivieren, die erforderlichen Änderungen oder Ergänzungen vorzunehmen und es anschließend wieder zu aktivieren.
OverlayFS muss außerdem deaktiviert werden, wenn Sie Betriebssystemeinstellungen ändern oder Pakete aktualisieren.
Um OverlayFS zu deaktivieren, befolgen Sie bitte dieselbe Vorgehensweise wie bei der Aktivierung unter raspi-config.
Wählen Sie diesmal „Deaktivieren“ aus.
Schritte zum Deaktivieren von OverlayFS
Menü: Leistungsoptionen → Overlay-Dateisystem → Deaktivieren
In dieser Umgebung konnte OverlayFS nicht allein mit dem Befehl „ raspi-config “ vollständig deaktiviert werden; zudem musste die Konfigurationsdatei überprüft werden.
Um den Vorgang abzuschließen, befolgen Sie bitte die nachstehende Problemumgehung.
Fehlerbehebung, wenn OverlayFS nicht deaktiviert werden kann
Normalerweise sollte die Deaktivierung von OverlayFS mit dem Befehl „ raspi-config “ auch den Eintrag „ overlayroot=tmpfs “ entfernen, der unter „ cmdline.txt “ hinzugefügt wurde.
In dieser Umgebung blieb der Eintrag jedoch bestehen. Egal, wie oft ich es versuchte, OverlayFS wurde nicht deaktiviert und das Dateisystem kehrte nicht in seinen normalen, beschreibbaren Zustand zurück.
Als Umgehungslösung musste ich, nachdem ich die üblichen Schritte zur Deaktivierung von OverlayFS befolgt hatte, den entsprechenden Eintrag manuell entfernen.
sudo nano /boot/firmware/cmdline.txt
Löschen Sie den folgenden Eintrag am Anfang der Zeile.
overlayroot=tmpfs:recurse=0
Genau wie bei der Umgehungslösung zur Aktivierung von OverlayFS wird dieser Schritt nicht mehr erforderlich sein, sollte das Problem in einem zukünftigen Update des Raspberry Pi OS behoben werden.
Betriebsabläufe sind entscheidend
In einem System, das für private Zwecke genutzt wird, können Einstellungen häufig geändert und Anwendungen hinzugefügt oder entfernt werden.
Die Verwendung von OverlayFS auf diese Weise kann daher umständlich sein.
In industriellen Anwendungen sind solche Änderungen jedoch im Vergleich zu privaten Desktop-Umgebungen in der Regel seltener.
Da es zudem vorkommen kann, dass man vergisst, OverlayFS nach der Deaktivierung wieder zu aktivieren, besteht ein Ansatz darin, einmal im Monat einen Wartungstag festzulegen und an diesem Tag Betriebssystem-Updates, Konfigurationsänderungen und Softwareinstallationen gebündelt durchzuführen.
Befehle können auch bei aktiviertem OverlayFS weiterhin ausgeführt werden.
So kann es beispielsweise den Anschein haben, dass mit dem Befehl „ sudo apt install ~ “ ein Paket erfolgreich installiert wurde, und die installierte Software lässt sich tatsächlich nutzen. Die Änderungen werden jedoch nur in einen temporären Speicher geschrieben und gehen nach einem Neustart verloren.
Ein Nachteil von OverlayFS besteht darin, dass nicht auf den ersten Blick erkennbar ist, ob es aktiviert oder deaktiviert ist.
Aus diesem Grund sind die Vorgehensweisen nach der Konfiguration des Systems von besonderer Bedeutung.
Anzeige des OverlayFS-Status bei der SSH-Anmeldung
Die Anzeige einer Statusmeldung für Systemadministratoren kann nützlich sein.
Auch wenn dies nur für SSH-Anmeldungen gilt, kann die Anzeige des aktuellen OverlayFS-Status dazu beitragen, dass Administratoren nicht vergessen, es bei Bedarf zu deaktivieren oder wieder zu aktivieren.
sudo nano ~/.bashrc
# OverlayFS status
if mount | grep -q "overlayroot on /"; then
echo ""
echo "======================================"
echo " The system is currently in read-only mode (OverlayFS enabled)"
echo " Changes will be lost after reboot"
echo "======================================"
echo ""
fi
Dadurch sollte der aktuelle Status leichter zu erkennen sein.

„Alle Änderungen gehen nach einem Neustart verloren“
Probleme bei der Verwendung der „raspi-config“-Methode
In einer Trixie-Umgebung reicht es unter Umständen nicht immer aus, OverlayFS lediglich mit dem Befehl „ raspi-config “ zu aktivieren, damit es ordnungsgemäß funktioniert.
Zumindest in der zum Zeitpunkt der Erstellung dieses Artikels getesteten Umgebung war es erforderlich, das Kernelmodul „ overlay “ explizit zur Datei „ /etc/initramfs-tools/modules “ hinzuzufügen.
Darüber hinaus musste die Datei „ cmdline.txt “ bearbeitet werden, nachdem die Anleitung zum Deaktivieren von OverlayFS befolgt worden war.
■ Aktivieren:
raspi-config
↓
Aktivieren Sie „
“ ↓
Vergewissern Sie sich, dass „ overlay “ unter „ /etc/initramfs-tools/modules
“ aufgeführt ist. Wenn Sie es hinzufügen, führen Sie „ sudo update-initramfs -u
“ aus ↓
Fügen Sie „ :recurse=0 “ zu „ cmdline.txt “ hinzu (erforderlich bei jeder Aktivierung von OverlayFS)
↓
reboot
■ Deaktivieren:
raspi-config
↓
Deaktivieren
↓
Entfernen Sie overlayroot=tmpfs:recurse=0 aus cmdline.txt (erforderlich bei jeder Deaktivierung von OverlayFS)
↓
Neustart
Kurz gesagt: Der Vorgang konnte in dieser Umgebung nicht allein mit dem Befehl „ raspi-config “ abgeschlossen werden.
Da keine Fehlermeldung angezeigt wird, kann das Problem leicht unbemerkt bleiben.
Bitte beachten Sie, dass die in diesem Artikel beschriebenen Umgehungslösungen möglicherweise nicht mehr erforderlich sind, da das Raspberry Pi OS aktualisiert wird.
Hoffentlich wird ein zukünftiges Raspberry Pi OS-Update es ermöglichen, den gesamten Vorgang allein mit raspi-config durchzuführen.
Beitrag von Raspida
Raspida ist unter raspida.com, eine Informationswebsite zum Thema Raspberry Pi, die auch für Nicht-Techniker unterhaltsam gestaltet ist. Basierend auf jahrelanger praktischer Erfahrung mit dem Raspberry Pi veröffentlicht die Website zahlreiche nützliche Artikel und Themen sowohl für erfahrene Raspberry-Pi-Anwender als auch für Einsteiger. Raspida verfasst technische Blog-Beiträge über industrielle Raspberry-Pi-Produkte für die PiLink-Website.

