So sieht die Meldung aus
touch: cannot touch '/var/www/test': Read-only file systemHäufige Ursachen
- ext4 mit
errors=remount-rohat einen Fehler erkannt und auf read-only umgeschaltet. - Defekte Festplatte oder SSD, I/O-Fehler im Speicher-Backend der VM.
- In
/etc/fstabalsrogemountet oder bewusst read-only Root (z. B. Container, Appliances). - systemd-Härtung:
ProtectSystem=strictmacht für den Dienst alles außerReadWritePathsread-only. - Volle Thin-Provisioning-Storage auf dem Hypervisor.
Prüfen
- Mount-Optionen des betroffenen Pfads anzeigen
findmnt -o TARGET,SOURCE,FSTYPE,OPTIONS -T /var/www - Kernel-Meldungen zu Dateisystem- und I/O-Fehlern suchen
dmesg -T | grep -iE 'EXT4-fs error|I/O error|remount|read-only' | tail -n 20 - SMART-Status der Platte prüfen
smartctl -H -A /dev/sda - Härtung des Dienstes in systemd anzeigen
systemctl show nginx.service -p ProtectSystem -p ReadWritePaths -p ProtectHome
Lösung
- Zuerst Daten sichern – solange gelesen werden kann.
- Bei Dateisystemfehlern aus dem Rescue-System
fsck -fauf das ungemountete Gerät ausführen. - Nur wenn die Ursache klar und harmlos ist:
mount -o remount,rw /. - Bei systemd-Diensten benötigte Pfade per Override freigeben:
ReadWritePaths=/var/www/uploads. - Bei I/O- oder SMART-Fehlern Platte tauschen bzw. Hoster informieren.
Häufige Fragen
Kann ich einfach remount,rw ausführen?
Technisch ja, aber hat der Kernel wegen Fehlern umgeschaltet, schreiben Sie auf ein beschädigtes Dateisystem. Erst prüfen, dann remounten.
Warum kann root schreiben, der Dienst aber nicht?
Dann ist meist systemd-Härtung aktiv. ProtectSystem und ReadOnlyPaths gelten nur im Namespace des Dienstes, nicht in Ihrer Shell.