Dateisystem montieren

Das Dateisystem verwaltet eine Hierarchie von Verzeichnissen und Dateien sowie deren Metadaten (Name, Eigentümer, Zugriffsrechte, Zeitstempel) und bildet die Operationen Erzeugen, Schreiben, Lesen und Löschen auf das zu Grunde liegende Blockgerät ab.

Tabelle

Unix ordnet Dateisysteme in einer globalen Baumstruktur an. Eine besondere Bedeutung kommt dem Wurzeldateisystem zu, welches beim Systemstart an den Pfad / montiert wird. Die Dateisystemtabelle legt fest, welche Partition wo im Verzeichnisbaum montiert wird.

/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 der Datenträger montiert wird
Art des Dateisystems, zum Beispiel:
Typ-spezifische Argumente, zum Beispiel
Sicherung mit dump (obsolet, immer 0)
Konsistenzprüfung mit fsck:

Hierarchie

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

Verzeichnisse in der Wurzel
Pfad Typ Beschreibung
boot Bootloader
dev devfs Gerätedateien
etc Konfigurationsdateien
home Benutzerverzeichnisse
media Einhängepunkt für mobile Datenträger
mnt Einhängepunkt für temporäre Dateisysteme
opt Reserviert für Programme von Drittanbietern
proc procfs Prozessinformationen
root Benutzerverzeichnis des Administrators
run tmpfs Volatile Daten (PID-Dateien, Sockets)
srv Reserviert für selbst administrierte Daten
sys sysfs Kernelstrukturen
tmp tmpfs Transiente Daten
usr Statische Daten des Betriebssystems
var Persistente Daten (Protokolle, Druckjobs)

Verzeichnisse ü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 -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

Ext4

Linux kann einzelne Verzeichnisse mit Hilfe von fscrypt verschlüsseln. Allerdgins muss man die Option beim Anlegen des Dateisystems oder nachträglich per tune2fs aktivieren. Das gleichnamige Hilfsprogramm legt globale Einstellungen in /etc/fscrypt.conf und gerätespezifische Schlüssel unter /.fscrypt ab.

apt install fscrypt libpam-fscrypt
tune2fs -O encrypt /dev/sda2
fscrypt setup
fscrypt setup /

Sobald das Dateisystem vorbereitet ist, kann jeder Benutzer verschlüsselte Verzeichnisse anlegen. Eine nachträgliche Verschlüsselung ist nicht vorgesehen.

mkdir           ~/private
fscrypt encrypt ~/private
fscrypt unlock  ~/private
fscrypt lock    ~/private

Um ein Benutzerverzeichnis vollständig zu verschlüsseln, muss man die Daten umkopieren. Das Modul pam_fscrypt.so entsperrt das Verzeichnis bei der Anmeldung, sperrt es wieder beim Abmelden und berücksichtigt auch Änderungen des Passworts.

mkdir           /home/tmp
chown     User /home/tmp
fscrypt encrypt /home/tmp --user User
cp -aT          /home/User /home/tmp
rm -r           /home/User
mv    /home/tmp /home/User

Btrfs

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

Vergleich

Vergleich verbreiteter Dateisysteme
Jahr Anbieter Name Max. Größe Änderbar Moment-
aufnahme
Verschlüs-
selung
Dedupli-
kation
Verbund
1993 Microsoft NTFS 264 16 Exa
1994 SGI XFS 263 8 Exa ☐ wachsen
1996 Microsoft FAT32 243 8 Tera
2001 Sun ZFS 278 256 Zetta
2006 Linux Ext4 260 1 Exa
2007 Oracle Btrfs 264 16 Exa
2016 Apple APFS ? ?

Literatur

  1. Arch Wiki: Fscrypt
  2. Debian Wiki: Btrfs
  3. Debian Forum: Btrfs