1. Index
  2. Debian
  3. Desktop
  4. Heimserver
  5. Webserver

Dateisysteme anlegen

Ein Dateisystem verwaltet baumartig organisierte Verzeichnisse und Dateien sowie deren Metadaten (Eigentümer, Zugriffsrechte und Zeitstempel) innerhalb einer Partition oder eines anderen Blockgeräts. Die Dateisystemtabelle legt fest, welche Partition wo im Verzeichnisbaum montiert wird. Das Beispiel für die oben dargestellte Konfiguration sieht so aus:

/etc/fstab
# What Where Type Options Dump Pass /dev/sda1 /boot/efi vfat umask=0077 0 0 /dev/sda2 / ext4 noatime 0 0 /dev/sda3 none swap sw 0 0
/dev/… Physischer Gerätename
/dev/mapper/Name Virtueller Gerätename
LABEL=Name Etikett in den Metadaten des Dateisystems
UUID=Uuid Identifikator des GPT-Eintrags
PARTLABEL=Name Etikett im GPT-Eintrag
Pfad im Dateisystem, wo das Volumen montiert wird
Art des Dateisystems, zum Beispiel:
Typ-spezifische Argumente, zum Beispiel
Sicherung mit dump (obsolet, immer 0)
Konsistenzprüfung mit fsck:

Systemd generiert aus diesen Einträgen Mount-Units.

Baumstruktur

Unix organisiert Dateisysteme in einer globalen Baumstruktur. Eine besondere Bedeutung kommt dem Wurzeldateisystem zu, welches beim Systemstart an den Pfad / montiert wird. Grundsätzlich lassen sich die gespeicherten Dateien zwischen Benutzer- und Anwendungsdaten trennen und ob es sich im statische (nur lesbare) oder veränderliche (schreibbare) Daten handelt. Siehe auch hier(7).

Pfad Typ Beschreibung
Systemdaten
/usr Statische Daten des Betriebssystems
/var Persistente Daten (Protokolle, Druckjobs)
/etc Konfigurationsdateien
/run tmpfs Volatile Daten (PID-Dateien, Sockets)
/tmp tmpfs Transiente Daten
Benutzerdaten
/home Benutzerverzeichnisse der Anwender
/root Benutzerverzeichnis des Administrators
/srv Reserviert für selbst administrierte Daten
/opt Reserviert für Programme von Drittanbietern
Einhängepunkte
/boot/efi vfat Kernel und ESP
/media Mobile Datenträger
/mnt Temporäre Dateisysteme
/dev devfs Gerätedateien
/proc procfs Prozesse
/sys sysfs Kernelstrukturen

B-tree filesystem

Btrfs gilt noch als experimentell und sollte daher nicht für produktive Zwecke eingesetzt werden. Dafür vereint es mit Subvolumen, Momentaufnahmen, Kompression und RAID die Fähigkeiten von mdadm und lvm2.

Btrfs Kommandos
Objekt Kommando Parameter Beschreibung
help Command Hilfe zu einem Kommando ausgeben
version Command Hilfe zu einem Kommando ausgeben
Subvolumen
subvolume list Path Subvolumen innerhalb eines Dateisystems auflisten
create Path Neues Subvolumen anlegen
delete Path Subvolumen löschen
snapshot Source Dest Momentaufnahme eines Subvolumens erstellen
get-default Path Standardvolumen eines Dateisystems anzeigen
set-default Id Path Standardvolumen ändern
find-new Path Id Geänderten Dateien ab einer Generation auflisten
show Path Metainformationen zu einem Subvolumen ausgeben
sync Path [Id …] Löschvorgang abwarten
send Path Subvolumen auf die Standardausgabe serialisieren
receive Path Subvolumen aus einer Serialisierung anlegen
Wartung
filesystem df Path Informiert über den Speicherverbrauch
show [Path|Uuid|Device|Label] Gibt Metainformationen zu einem Dateisystem aus
sync Path Erzwingt das Schreiben auf Festplatte
defragment File|Dir Ordnet Blöcke fortlaufend an
resize [DevId:]Size Path Ändert die Größe des Dateisystems
label [Device|Path] [Label] Zeigt an oder ändert den Namen eines Dateisystems
scrub start Path|Device Verifiziert Prüfsummen aller Dateien
cancel Path|Device Bricht die Prüfung ab
resume Path|Device Setzt eine abgebrochene Prüfung fort
status Path|Device Informiert über Fortschritt der Prüfung
check Device Prüft und repariert ein ausgehängtes Dateisystem
rescue chunk-recover Device Repariert defekte Blöcke
super-recover Device Repariert defekten Superblock
restore Device Path Restauriert Dateien in ein anderes Verzeichnis
Blockgerät
device add DevicePath Fügt ein Blockgerät in einen Verbund ein
delete DevicePath Entfernt ein Blockgerät aus einem Verbund
scan Device Sucht Btrfs-Dateisysteme auf Blockgeräten
ready Device Prüft, ob ein Blockgerät bereit zum montieren ist
stats Path|Device Gibt Fehlerstatistiken aus
replace start Device Target Path Repliziert Daten auf ein anderes Blockgerät
cancel Path Bricht die Replizierung ab
status Path Informiert über den Fortschritt der Replizierung
balance start Path Verteilt Blöcke gleichmäßig auf Blockgeräte
cancel Path Bricht die Umverteilung ab
pause Path Pausiert eine laufende Umverteilung
resume Path Setzt eine pausierte Umverteilung fort
status Path Informiert über den Fortschritt der Umverteilung
Speicherplatz
quota enable Path Aktiviert die Verwaltung von Speicherkontingenten
disable Path Deaktiviert Speicherkontingente
rescan Path Liest Metadaten neu ein
qgroup assign Source Dest Path Weist eine Untergruppe zu
remove Source Dest Path Entfernt eine Untergruppe
create Qgroupid Path Erzeugt eine Gruppe
destroy Qgroupid Path Löscht eine Gruppe
show Path Gibt alle Gruppen aus
limit Size [Qgroupid] Path Legt Größe einer Gruppe fest
k Kilobyte
m Megabyte
g Gigabyte
max Maximal

Es ist möglich, getrennte Subvolumen für das Wurzeldateisystems und die Benutzerverzeichnisse anzulegen.

btrfs subvolume snapshot / /@root
btrfs subvolume create     /@home
mount -o subvol=@root /dev/mapper/sda2_crypt /mnt
mount -o bind /dev  /mnt/dev
mount -o bind /sys  /mnt/sys
mount -o bind /proc /mnt/proc
cp /boot/vmlinuz*   /mnt/boot
cp /boot/initrd*    /mnt/boot
chroot /mnt

In dieser Umgebung passen wir die Dateisystemtabelle an…

/etc/fstab
# What Where Type Options Dump Pass /dev/sda1 /boot/efi vfat umask=0077 0 0 /dev/sda2 / btrfs noatime,subvol=@root 0 0 /dev/sda2 /hone btrfs noatime,subvol=@home 0 0 /dev/sda3 none swap sw 0 0

…und teilen dem Bootloader die neuen Optionen mit.

mkdir /boot/efi
mount /boot/efi
mount -t efivarfs efivarfs /sys/firmware/efi/efivars
/etc/kernel/postinst.d/zz-update-secureboot
exit

Dataisysteme überlagen

Durch das Überlagern mehrerer Verzeichnisse lassen sich eine oder mehrere nur lesbare Schichten und eine schreibare Schicht zu einer Gesamtansicht vereinigen. Container nutzen diese Technik, um ein veränderbares Dateisystem auf einer unveränderlichen Basis zu simulieren.

mount -t overlay overlay -o lowerdir=Path,upperdir=Path,workdir=Path Target
lowerdir
Lesbares Verzeichnis mit alten Dateien, wird nicht verändert
upperdir
Schreibbares Verzeichnis für geänderte Dateien
workdir
Schreibbares Verzeichnis für gelöschte Dateien
target
Einhängepunkt für die Gesamtansicht

Literatur

  1. Debian Wiki: Btrfs
  2. Debian Forum: Btrfs