23Administration des Dateisystems
Dieses Kapitel beschreibt verschiedene Facetten der Administration des Dateisystems. Das Kapitel richtet sich an fortgeschrittene Linux-Anwender und geht auf die folgenden Themen ein:
-
Wie alles zusammenhängt: Dieser Abschnitt gibt einen ersten Überblick darüber, wie verschiedene Aspekte des Linux-Dateisystems zusammenhängen.
-
USB-Datenträger formatieren und nutzen: Für alle Ungeduldigen fasst dieser Abschnitt zusammen, wie Sie auf Kommandoebene einen USB-Stick bzw. eine SD-Karte formatieren bzw. wie Sie eine externe Festplatte dauerhaft in den Verzeichnisbaum integrieren. Die entsprechenden Grundlagen werden dann im weiteren Verlauf des Kapitels erläutert.
-
Device-Namen: Linux-intern werden Festplatten und andere Datenträger sowie deren Partitionen über Device-Dateien wie /dev/sdc3 angesprochen. Dieser Abschnitt fasst das Schema für die Nomenklatur und Nummerierung zusammen.
-
Partitionierung der Festplatte: Die Partitionierung der Festplatte ist ein zentraler Bestandteil der Installation von Linux. Manchmal ist es aber auch im Betrieb von Linux erforderlich, eine neue Partition hinzuzufügen. Je nachdem, welche Partitionierungsart für die Festplatte gilt (MBR oder GPT) müssen unterschiedliche Werkzeuge zur Veränderung der Partitionierung verwendet werden.
-
Dateisystemtypen: Wenige Betriebssysteme unterstützen so viele Dateisystemtypen wie Linux. Dieser Abschnitt fasst die wichtigsten Varianten zusammen.
-
Verwaltung des Dateisystems: Hier erfahren Sie, wie einzelne Datenpartitionen manuell in das Dateisystem eingefügt werden (mount) und wie dieser Vorgang automatisiert wird (/etc/fstab).
-
Linux- und Windows-Dateisysteme: Mehrere Abschnitte geben Tipps und Hinweise zur Nutzung der Dateisysteme ext3, ext4, btrfs, xfs, vfat und ntfs.
-
CDs/DVDs: Für Daten-CDs und Daten-DVDs gibt es ebenfalls eigene Dateisystemtypen, die in diesem Abschnitt kurz vorgestellt werden.
-
Externe Datenträger (USB, Firewire): Wenn Sie eine Firewire-Festplatte oder einen USB-Memorystick anschließen, erscheint zumeist automatisch ein Fenster des Dateimanagers und gibt Ihnen Zugriff auf die Daten. Dieser Abschnitt erklärt, was hinter den Kulissen passiert und wie Sie externe Datenträger bei Bedarf auch manuell nutzen.
-
Swap-Partitionen: Wenn Linux zur Ausführung der Programme zu wenig Arbeitsspeicher hat, lagert es Teile des Speichers in sogenannte Swap-Partitionen aus.
-
RAID: Mit RAID (Redundant Array of Inexpensive/Independent Disks) verknüpfen Sie die Partitionen mehrerer Festplatten miteinander, um auf diese Weise ein zuverlässigeres und/oder schnelleres Gesamtsystem zu erreichen. Dieser Abschnitt geht kurz auf die Grundlagen von RAID ein und beschreibt dann die Einrichtung eines RAID-0-Systems (Striping).
-
LVM: Der Logical Volume Manager (kurz LVM) ermöglicht eine flexiblere Verwaltung von Partitionen. Mit LVM können Sie beispielsweise Partitionen mehrerer Festplatten zu einer virtuellen Partition vereinen, die Größe von Partitionen im laufenden Betrieb ändern etc.
-
SMART: Die Self-Monitoring Analysis and Reporting Technology (SMART) ermöglicht es, während des Betriebs von Festplatten statistische Daten zu erfassen und auf diese Weise drohende Zuverlässigkeitsprobleme schon zu erkennen, bevor es zu Datenverlusten kommt.
-
SSD-TRIM: Mit dem TRIM-Befehl, den alle aktuellen Solid State Disks unterstützen, kann das Betriebssystem der SSD mitteilen, welche Speicherblöcke des Dateisystems nach dem Löschen einer Datei ungenutzt sind. Die SSD kann dann die interne Nutzung der Speicherzellen optimieren.
-
Verschlüsselte Dateisysteme: Wenn Sie vermeiden möchten, dass unbefugte Personen – etwa nach einem Rechnerdiebstahl – Ihre Daten lesen können, müssen Sie Ihre Dateien bzw. Dateisysteme verschlüsseln. Linux stellt hierfür unterschiedliche Verfahren zur Auswahl, wobei das populärste Verfahren momentan auf dem dm_crypt-Kernelmodul basiert.
Auch über die Administration von Dateisystemen ließe sich natürlich noch mehr sagen bzw. schreiben. So viel Platz ist hier aber nicht. Stattdessen müssen hier einige Querverweise genügen:
-
Nutzung des Dateisystems: Kommandos zum Kopieren von Dateien oder zum Erstellen von Backups, Hintergründe zu den Zugriffsrechten von Dateien etc. wurden in diesem Buch bereits in Kapitel 13, »Dateien und Verzeichnisse«, vorgestellt.
-
Netzwerk-Dateisysteme: Linux gibt Ihnen die Möglichkeit, Verzeichnisse anderer Rechner in Ihren Verzeichnisbaum zu integrieren. Ich gehe in diesem Buch auf die Dateisysteme CIFS (Windows/Samba, siehe Abschnitt 29.7, »Client-Zugriff«) sowie auf NFS und AFP ein (siehe Kapitel 30).
-
Disk-Quotas: Dabei handelt es sich um ein System, das steuert, wie viel Platz einzelne Benutzer auf der Festplatte beanspruchen dürfen. Wird die Grenze überschritten, können keine neuen Dateien mehr angelegt werden. Eine gute Einführung finden Sie unter:
-
Cluster-Dateisysteme: Cluster-Dateisysteme bzw. globale Dateisysteme verbinden Daten mehrerer Rechner zu einem virtuellen Dateisystem. Damit lassen sich riesige Datenspeicher bilden und von mehreren Rechnern parallel nutzen.
Abermals bietet Linux gleich mehrere Verfahren, um derartige Dateisysteme zusammenzustellen, z.B. mit dem OCFS (Oracle Cluster Filesystem), mit GFS (Global Filesystem) oder mit Ceph:
http://oss.oracle.com/projects/ocfs2
http://sourceware.org/cluster/gfs
http://ceph.com
23.1Wie alles zusammenhängt
Die Zusammenhänge bei der Verwaltung des Dateisystems sind bisweilen verwirrend. Dieser Abschnitt versucht, die wichtigsten Zusammenhänge kurz und übersichtlich darzustellen. Um den Text möglichst übersichtlich zu halten, beschränke ich mich hier auf eingebaute Festplatten und gewöhnliche Linux-Dateisysteme. DVD-Laufwerke, externe Datenträger, LVM- und RAID-Systeme etc. bleiben außen vor.
Den eingebauten Festplatten und SSDs sind unter Linux Device-Dateien zugeordnet. Alle gängigen Distributionen verwenden /dev/sda für die erste Festplatte bzw. für den ersten Datenträger, /dev/sdb für den zweiten Datenträger etc. Generell schreibe ich in diesem Buch oft einfach von »Festplatten«. Damit meine ich gleichermaßen herkömmliche Festplatten und moderne Solid State Disks ohne bewegliche Teile.
Um auf einer Festplatte mehrere, voneinander unabhängige Dateisysteme unterzubringen, muss sie in Abschnitte (Partitionen) unterteilt werden. Auch den Partitionen sind Device-Dateien zugeordnet, beispielsweise /dev/sda1 für die erste Partition der ersten Festplatte. Im Detail ist die Device-Nomenklatur für Partitionen in Abschnitt 23.3 zusammengefasst.
Beim Start von Linux greift der Kernel als Erstes auf die Systempartition (root-Partition) zu. Deren Device-Name oder die UUID (Universal Unique Identifier) des darauf enthaltenen Dateisystems wird in einem Kernelparameter in der GRUB-Konfigurationsdatei angegeben.
Neben der Systempartition, die unbedingt erforderlich ist, kann es weitere Partitionen geben, die bereits beim Start von Linux berücksichtigt werden sollen. Diese Dateien sind in der Datei /etc/fstab verzeichnet. Diese Datei muss sich wiederum in der Systempartition befinden. Sie wird im Rahmen des Init-Prozesses ausgewertet.
Beim Einbinden von Partitionen in den Verzeichnisbaum wird automatisch die Konsistenz der Dateisysteme überprüft. Ist der Rechner zuletzt abgestürzt bzw. wurde er wegen eines Stromausfalls nicht ordnungsgemäß heruntergefahren, kommt es zu einer automatischen Reparatur des Dateisystems oder anderen Sicherheitsmaßnahmen, die weitere Konsistenzfehler oder -schäden verhindern sollen. Ein entsprechender Konsistenztest wird aber auch automatisch nach einer bestimmten Nutzungsdauer durchgeführt. Im Detail ist dieser Vorgang von der Distribution, vom Dateisystemtyp und von der individuellen Konfiguration abhängig.
Während es unter Windows üblich ist, getrennte Dateisysteme über Laufwerksbuchstaben anzusprechen (C:, D: etc.), werden in Linux sämtliche Dateisysteme in einem Verzeichnisbaum zusammengefasst. Der Zugriff auf die Systempartition erfolgt über das Wurzelverzeichnis /. Der Startpunkt aller anderen Dateisysteme kann je nach Distribution und Konfiguration variieren. Üblich sind /mnt-, /media- oder /run-Unterverzeichnisse, beispielsweise /media/dvd oder /run/media/benutzername/dvdname.
Es ist möglich, im laufenden Betrieb weitere Dateisysteme in den Verzeichnisbaum einzubinden bzw. wieder aus ihm zu lösen. Beim Anstecken eines externen Datenträgers (z.B. eines USB-Sticks) erfolgt das zumeist automatisch. Wenn dieser Automatismus nicht funktioniert bzw. wenn er bewusst deaktiviert wurde, kann root mit den Kommandos mount und umount Dateisysteme auch manuell einbinden bzw. lösen. Die einzige Konstante ist die Systempartition: Sie kann während des Betriebs nicht aus dem Dateisystem gelöst werden. Das ist erst beim Herunterfahren des Rechners möglich.
Linux unterstützt sehr viele Dateisystemtypen. Die Systempartition muss in einem Linux-Dateisystem vorliegen (z.B. ext4, btrfs oder xfs). Bei den restlichen Partitionen ist die Auswahl noch größer. Infrage kommen beispielsweise auch Windows-, Unix- oder Apple-Dateisysteme.