Skip to content

Research the use of a Read-Only-Filesystem #51

@vollstock

Description

@vollstock

This is an AI-generated how-to (in German):

1. Read-Only-Root-Dateisystem einrichten

A. Fstab anpassen

Öffne die /etc/fstab und ändere die Mount-Optionen für die Root-Partition:

sudo nano /etc/fstab

Ersetze die Zeile für / (z.B. /dev/sda1) durch:

/dev/sda1  /  ext4  ro,errors=remount-ro  0  1
  • ro: Mountet das Dateisystem nur lesbar.
  • errors=remount-ro: Falls Fehler auftreten, wird es erneut als Read-Only gemountet.

B. Kernel-Parameter anpassen

Bearbeite die GRUB-Konfiguration, um das System standardmäßig als Read-Only zu booten:

sudo nano /etc/default/grub

Ändere die Zeile GRUB_CMDLINE_LINUX zu:

GRUB_CMDLINE_LINUX="ro"

Aktualisiere GRUB:

sudo update-grub

C. System neu starten

sudo reboot

Nach dem Neustart ist das Root-Dateisystem schreibgeschützt.

2. Schreibbares Verzeichnis /assets einrichten

Um /assets schreibbar zu machen, gibt es zwei Ansätze:

A. Separate Partition für /assets

  1. Erstelle eine neue Partition (z.B. /dev/sda2) und formatiere sie:
    sudo mkfs.ext4 /dev/sda2
  2. Mounten in /etc/fstab:
    /dev/sda2  /assets  ext4  defaults  0  2
  3. Verzeichnis erstellen und mounten:
    sudo mkdir /assets
    sudo mount /assets

B. OverlayFS (falls keine separate Partition möglich)

OverlayFS kombiniert ein Read-Only- und ein Read-Write-Dateisystem:

sudo mkdir /rw /ro /assets
sudo mount -t tmpfs tmpfs /rw
sudo mount --bind / /ro
sudo mount -t overlay overlay -o lowerdir=/ro,upperdir=/rw,workdir=/rw/work /assets

Hinweis: Diese Lösung ist temporär und geht nach einem Neustart verloren. Für permanente Lösungen ist eine separate Partition besser.

3. Temporär in Read-Write umschalten (für Updates)

A. Root-Dateisystem remounten

sudo mount -o remount,rw /

Jetzt können Updates installiert werden:

sudo apt update && sudo apt upgrade -y

B. Nach Updates wieder Read-Only setzen

sudo mount -o remount,ro /

4. Automatisierung für Updates (optional)

Um Updates zu vereinfachen, kannst du ein Skript erstellen (z.B. /usr/local/bin/update-system):

#!/bin/bash
mount -o remount,rw /
apt update && apt upgrade -y
mount -o remount,ro /

Skript ausführbar machen:

sudo chmod +x /usr/local/bin/update-system

Wichtige Hinweise

  • Logs: Falls Logs in /var/log geschrieben werden müssen, kannst du /var/log auf eine RAM-Disk umleiten oder eine separate Partition nutzen.
  • Dienste: Manche Dienste (z.B. MySQL, Docker) benötigen Schreibrechte. Diese müssen entsprechend konfiguriert oder auf /assets umgeleitet werden.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions