Linux bringt kleine Werkzeuge mit, mit denen Sie schnell herausfinden, welches Dateisystem auf einem Speichermedium vorliegt. Wir zeigen Ihnen, wie Sie diese nutzbringend einsetzen.
Linux kann mit vielerlei Dateisystemen umgehen. Das problemlose Nutzen eines Datenträgers setzt jedoch voraus, dass man zumindest weiß, welcher Dateisystemtyp darauf vorliegt: Rettungsversuche auf Speichermedien, deren Dateisystem Sie nicht kennen, gestalten sich recht schwierig. Ähnliches gilt, wenn Sie ein heruntergeladenes Abbild einer DVD oder einen fremden Datenträger lesen und daher ins System einbinden müssen. Das betrifft auch neue Medien wie beispielsweise frisch erworbene Speicherkarten.
Deswegen sehen wir uns im Folgenden näher an, mit welchen bordeigenen Werkzeugen Sie den korrekten Typ eines Dateisystems ermitteln und danach die Partition, das via Netzwerk bereitgestellte Verzeichnis oder das Speichermedium in das System integrieren.
Das Einhängen (“mounten”) eines Dateisystems nehmen Sie über das Mount-Kommando als Benutzer mit administrativen Rechten vor, also in der Regel als root. Dabei geben Sie einen Einhängepunkt (“mountpoint”) an, teilen dem System also mit, an welcher Stelle im lokalen Dateisystembaum es das neue Dateisystem einbinden soll. Geben Sie keinen Mountpoint an, zieht das Kommando die Liste der vorbereiteten Partitionen beziehungsweise Speichermedien in der Datei /etc/fstab (“file systems table”) zurate, um das Verzeichnis zu ermitteln, das als Einhängepunkt dienen soll.
Eine Liste der bereits eingebundenen Dateisysteme finden Sie in der Datei /proc/mounts, die die Informationen des Kernels widerspiegelt. Demselben Zweck diente früher einmal die Datei /etc/mtab (“mounted file systems table”), bei der es sich heute in den meisten Distributionen nur noch um einen symbolischen Link auf /proc/mounts handelt.
Der Schalter -t des Mount-Befehls bestimmt, als welchen Typ das Betriebssystem das einzubindende Dateisystem interpretiert. Listing 1 zeigt ein Beispiel für einen Aufruf, der die mit Ext3 formatierte erste Partition der zweiten Festplatte im Verzeichnis /opt/usb-platte/ einhängt.
Listing 1
# mount -t ext3 /dev/sdb1 /opt/usb-platte
Welche Dateisystemtypen das System unterstützt, hängt davon ab, welche Kernel-Bestandteile für Dateisysteme es statisch integriert oder als Kernelmodul geladen hat. Um den korrekten Typ zu ermitteln, können Sie a) so lange mit Mount herumprobieren, bis es klappt, b) das Betriebssystem erkennen lassen, was sich für ein Dateisystem auf dem Speichermedium befindet, oder c) mithilfe der passenden Werkzeuge selbst herausfinden, was für ein Dateisystem vorliegt.
Variante a) kann länger dauern und gestaltet sich oft frustrierend, b) dagegen gelingt mittlerweile recht zuverlässig. Die Variante c) hilft weiter, wenn Ihnen a) nicht liegt, b) schief geht und Sie wissen wollen, woran es liegen könnte.
Autodetect
Für eine automatische Erkennung des Dateisystemtyps rufen Sie Mount entweder ohne den Schalter -t auf oder stattdessen explizit mit -t auto. Daraufhin versucht Mount das Dateisystem mithilfe der Bibliothek Libblkid [1] zu erkennen. Gelingt das, bindet es das Medium ohne direkte Rückmeldung im sogenannten Silent Mode ein.
Anderenfalls wertet Mount anschließend die Einträge in der Datei /proc/filesystems aus. Abbildung 1 zeigt die Datei, wie sie auf einem Ubuntu-System vorliegt. Die mit dem Schlüsselwort nodev markierten Einträge zeigen an, dass derzeit kein entsprechendes Dateisystem einem Block-Device zugeordnet ist [2].
In den meisten Fällen gelingt auf diesem Weg das Einhängen – zumindest dann, wenn es sich beim einzubindenden Dateisystem um einen der üblichen Verdächtigen handelt. Dazu zählen Ext2/3/4, VFAT und MSDOS. MINIX, BTRFS, XFS und ZFS hingegen bedürfen als Wackelkandidaten zusätzlicher Module und gegebenenfalls auch weiterer Softwarepakete. Damit funktionieren dann auch die entsprechenden Kommandovarianten von Fsck, Mount und und Mkfs.
Mit dem Schalter -v veranlassen Sie Mount, nach dem erfolgreichem Abschluss des Vorgangs eine zusätzliche Statusmeldung auszugeben. Listing 2 demonstriert das für ein Fedora-Abbild, das Mount als CD/DVD (ISO9660) erkennt.
Listing 2
# mount -v Fedora-Xfce-Live-x86_64-24-1.2.iso /tmp/usb-platte/
mount: /dev/loop0 is write-protected, mounting read-only
mount: /dev/loop0 mounted on /tmp/usb-platte.
Schlägt die automatische Erkennung des einzubindenden Filesystems fehl, müssen Sie zwangsläufig zur Variante c) übergehen und selbst herausfinden, welcher Dateisystemtyp vorliegt. Das klappt erfreulicherweise mit Bordmitteln recht problemlos.
Typ mit (C)Fdisk auslesen
Mit Fdisk und dessen etwas komfortableren Ncurses-Variante Cfdisk arrangieren Sie die Partitionen auf einem Speichermedium, legen also neue Partitionen an, löschen alte oder machen eine Partition durch Setzen des Bootable-Flags bootfähig. Mit dem Aufruf fdisk /dev/sda -l geben Sie beispielsweise die gesamte Partitionstabelle der ersten Festplatte im Terminal aus, analog befördert cfdisk /dev/sda die gesuchten Informationen auf den Bildschirm.
Meist zeigen Fdisk und Cfdisk nur den Partitionstyp an, was lediglich ein Eingrenzen auf möglicherweise unterstützte Dateisysteme gestattet – was eben bei Linux, Solaris, BSD, OS X oder Windows so üblich ist. Bei dem in Abbildung 2 eingebundenen ISO-Image haben wir etwas mehr Glück und erfahren nützliche Details: Der zweite Eintrag enthält ein FAT-Dateisystem.
Blkid
Das Werkzeug Blkid (“Block ID”) liest die Informationen zum Dateisystem aus, wozu es auf die bereits erwähnte gleichnamige Bibliothek zurückgreift. Listing 3 zeigt den entsprechenden Aufruf für die erste Partition der ersten Festplatte.
Listing 3
# blkid -ps TYPE /dev/sda1
/dev/sda1: TYPE="ext2"
Der Schalter -p sorgt hier dafür, dass das Tool die Informationen aus dem Plattencache ignoriert und stattdessen direkt auf den Datenträger zugreift. Da die Ausgabe von blkid üblicherweise recht umfangreich ausfällt, grenzen Sie sie mit -s TYPE auf die Informationen zum Dateisystem ein. In Listing 4 sehen Sie die Informationen, die Blkid zum bereits in Abbildung 2 verwendeten ISO-Image ermittelt hat. TYPE enthält auch den korrekten Parameter, den Mount zum nachfolgenden Einbinden benötigt.
Listing 4
# blkid -s TYPE Fedora-Xfce-Live-x86_64-24-1.2.iso
Fedora-Xfce-Live-x86_64-24-1.2.iso: TYPE="iso9660"
Blkid wartet daneben noch mit anderen nützlichen Fähigkeiten auf: So kann es beispielsweise auf das Vorhandensein bestimmter Dateisysteme prüfen sowie zahlreiche Zusatz- und Detailinformationen darstellen. Die entsprechenden Schalter beschreibt die Manpage des Programms.
Lsblk
Das Kommando Lsblk gibt eine Liste der Blockgeräte in Form eines Baums aus, wodurch sich die Zuordnung leichter erfassen lässt. Der Schalter -f (Langform --fs) liefert dieselben Informationen wie -o NAME,FSTYPE,LABEL,MOUNTPOINT. So sehen Sie detailliert, wie die einzelnen Speichermedien eingehängt sind.
Die zweite Spalte der Ausgabe enthält die Information zum Dateisystem. In Abbildung 3 sind das sda1 (Ext2) sowie sda5 (Crypto-FS); darunter liegt ein LVM2 mit als Ext4 beziehungsweise Swap angelegten und formatierten Logical Volumes. Alle Dateisysteme wurden bereits eingehängt.

Abbildung 3: Lsblk bietet eine übersichtliche Ausgabe aller Blockgeräte in Form eines Baums. Dabei liefert der Schalter -f ausführliche Informationen zum Dateisystem.
Abbildung 4 zeigt hingegen ein Beispiel mit einem erkanntem, aber noch nicht eingehängten ISO-Image. Dem Gerät /dev/sr0 ist bereits ein ISO9660-Dateisystem zugeordnet, das Sie bei Bedarf über folgenden Befehl einhängen:
# mount -t iso9660 /dev/sr0 /tmp/iso
Dazu muss das Verzeichnis /tmp/iso/ bereits existieren – falls nicht, legen Sie es vorab flink mit mkdir /tmp/iso an.

Abbildung 4: Unter den von Lsblk erkannten Filesystemen findet sich auch ein noch nicht eingehängtes ISO-Image.
Parted
Auch Parted sowie die grafischen Werkzeuge Kvpm [3] und Gparted [4] erweisen sich als auskunftsfreudig. Detaillierte Informationen zu einer Partition liefert Parted mit dem Schalter -l (--list). Listing 5 zeigt den Ausschnitt zu der Partition aus der letzten Zeile von Abbildung 3. In der fünften Spalte der Ausgabe finden Sie das Dateisystem – hier handelt es sich um Ext4. Gparted liefert ähnlich umfangreiche Informationen, allerdings wesentlich schicker in grafischer Form (Abbildung 5).
Listing 5
Model: Linux device-mapper (linear) (dm) Disk /dev/mapper/fehmarn--vg-home: 227GB Sector size (logical/physical): 512B/512B Partition Table: loop Disk Flags: Number Start End Size File system Flags 1 0,00B 227GB 227GB ext4

Abbildung 5: Gparted liefert bei Bedarf umfangreiche Detailinformationen zu einem eingehängten Dateisystem.
File
Auch der Befehl File erweist sich gelegentlich als nützlich. Es liefert Informationen zu einem Dateisystemeintrag, ignoriert dabei jedoch in der Vorgabe unübliche Einträge wie “special files”. Mithilfe des Schalters -s (--special-files) liest File jedoch auch diese. Listing 6 zeigt den Aufruf für die fünfte Partition auf der ersten Festplatte, der darauf korrekt ein verschlüsseltes Dateisystem (LUKS) ermittelt.
Listing 6
# file -s /dev/sda5
/dev/sda5: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 305a1a1b-797a-4634-9acd-49c1f530978b
Fazit
Mit wenig Aufwand liefern Ihnen spezialisierte Werkzeuge wie Blkid, Lsblk, Parted und File umfangreiche Informationen zum Dateisystem eines Speichermediums. Damit steht einer sauberen Integration des jeweiligen Datenträgers Ihrerseits nichts mehr im Weg.
Danksagung
Der Autor bedankt sich bei Wolfram Eifler und Axel Beckert für deren Anregungen und kritische Kommentare im Vorfeld dieses Artikels.
Der Autor
Frank Hofmann arbeitet in Berlin im Büro als Dienstleister mit Spezialisierung auf Druck und Satz. Seit 2008 koordiniert er das Regionaltreffen der LUGs aus der Region Berlin-Brandenburg. Er ist zudem Koautor des Debian-Paketmanagement-Buchs (http://www.dpmb.org).
Infos
-
Libblkid: https://github.com/karelzak/util-linux/tree/master/libblkid
-
/proc/filesystems(CentOS-Handbuch): https://www.centos.org/docs/5/html/5.1/Deployment_Guide/s2-proc-filesystems.html -
Gnome Partition Editor: http://gparted.sourceforge.net/







