3.20 Dateisysteme

Als Dateisystem bezeichnet man auf einem Debian GNU/Linux-System (und auf allen anderen Unix-Systemen) den kompletten Verzeichnisbaum ab dem Wurzel-Verzeichnis / (auch root-Verzeichnis genannt). Als Dateisystem wird aber auch die Organisationsform der Daten auf einem Medium (Festplatte, Diskette) bezeichnet, die von Betriebssystem zu Betriebssystem unterschiedlich ist.

Jedes physikalische Gerät, auf dem Sie Daten speichern wollen, müssen Sie zunächst mit einem Dateisystem versehen. Wenn Sie verschiedene Partitionen auf einem Medium erstellen, kann jede dieser Partitionen mit einem anderen Dateisystemtyp versehen werden. Jedes Betriebssystem verwendet mindestens einen eigenen Dateisystemtyp, viele verwenden auch mehrere oder können mit verschiedenen Typen von Dateisystemen umgehen.

Häufig sind im Debian-Umfeld Kombinationen aus Linux- und Windows-Dateisystemen anzutreffen. Debian GNU/Linux kann mit einer großen Zahl von Dateisystemen umgehen. Sie können somit sehr einfach Ihre Daten von anderen Betriebssystemen auf Ihr Debian GNU/Linux-System übernehmen.

3.20.1 cfdisk und mount - Einbinden eines Dateisystems

Unter Debian GNU/Linux gibt es nur einen einzigen Verzeichnisbaum (beginnend mit /). In diesem sind als Unterverzeichnisse alle physikalischen Geräte zu finden. Es werden keine Buchstaben zur Identifikation der Geräte benutzt.

Mit Ausnahme des Root-Dateisystems (/ welches beim Systemstart automatisch angemeldet wird) müssen Sie alle weiteren Dateisysteme erst einmal in das System einbinden. Dabei kann, wie bereits beschrieben, jedes physikalische Gerät über mehrere Partitionen verfügen. Jedes dieser Dateisysteme wird im System in einem Verzeichnis (dem so genannten Mount-Point) eingehängt.

Das ist so einfach, wie es sich anhört: Sie können ein Verzeichnis, welches als Mount-Point für eine Partition genutzt werden kann, mit dem Kommando mkdir erzeugen. Danach kann mit dem Kommando mount die Partition an die gewünschte Stelle im Dateisystem eingehängt werden. Bei der Installation von Debian GNU/Linux von CD-ROM wurde das Dateisystem (/cdrom) bereits benutzt und vom Installationsprogramm ins System eingebunden. Hierbei wurde ein Link von dem entsprechenden Device auf das neue Device /dev/cdrom angelegt. Sie müssen sich somit nicht das Device Ihres CD-ROM-Laufwerks merken (oder herausfinden), sondern können diesen Link benutzen. Weiterhin wurde bei der Installation das Verzeichnis /cdrom angelegt. Sie können nun eine eingelegte CD leicht mit dem Kommando mount /dev/cdrom /cdrom in das Dateisystem einhängen.

Der Mount-Point kann anstelle von /cdrom jedes andere, beliebige Verzeichnis sein.

Beachten Sie jedoch, dass Verzeichnisse, an deren Stelle Sie ein Dateisystem mounten möchten, keine weiteren Dateien enthalten sollten. Das Mounten eines Dateisystems funktioniert auch, wenn sich bereits Dateien in dem Verzeichnis befinden, Sie können lediglich nicht mehr auf diese Dateien zugreifen. Die Dateien werden nicht gelöscht, sie werden praktisch von dem gemounteten Dateisystem überlagert.

In der Praxis reicht dieses Wissen jedoch nicht lange aus. Sicher werden Sie irgendwann den Wunsch haben, den Festplattenplatz Ihres Systems zu erweitern. Der erste Schritt ist natürlich der mechanische Einbau der Festplatte. Schon hierbei (eigentlich schon beim Kauf der Festplatte) müssen Sie sich für den Anschluss an einem der beiden IDE-Busse oder am SCSI-Hostadapter entscheiden.

Bei einem IDE-System notieren Sie sich, ob Sie die Festplatte am ersten (primary) oder am zweiten (secondary) Bus anschließen und ob die Festplatte als erste (Master) oder zweite (Slave) am jeweiligen Bus betrieben wird.

Am SCSI-Bus notieren Sie sich die ID der Festplatte und kontrollieren, ob (und wenn ja, mit welcher ID) noch weitere Geräte angeschlossen sind. Beachten Sie hierbei auch externe Geräte!

Im nächsten Schritt müssen Sie mindestens eine Partition auf der neuen Festplatte anlegen. Diese kann den gesamten Festplattenplatz in Anspruch nehmen; Sie können aber auch mehrere, kleine Partitionen anlegen. Unter Debian GNU/Linux haben Sie die Auswahl zwischen zwei Programmen: fdisk und cfdisk. Wir werden im Folgenden cfdisk vorstellen, da seine Oberfläche ansprechender ist.

Ermitteln Sie zunächst mit Hilfe der zuvor notierten Daten das entsprechende Device für die neue Festplatte. Für IDE-Laufwerke ist die Bezeichnung folgende:

  • /dev/ hda - Master am primären Bus

  • /dev/ hdb - Slave am primären Bus

  • /dev/ hdc - Master am sekundären Bus

  • /dev/ hdd - Slave am sekundären Bus

Dabei ist unerheblich, ob es sich um eine Festplatte oder um ein CD-ROM-Laufwerk handelt.

Bei SCSI-Laufwerken ist die Bestimmung etwas anders. Zunächst ist zu beachten, dass zwischen Festplatten, CD-ROMs/CD-Brennern und anderen Geräten unterschieden wird. Die Gerätedateien für SCSI-Festplatten werden mit /dev/sdX bezeichnet, wobei X für einen Buchstaben steht, angefangen bei a und dann aufsteigend nach SCSI-ID zugeordnet. Hier ein denkbares Beispiel:

  • /dev/sda - SCSI-Festplatte mit der kleinsten ID (z.B.: 0)

  • /dev/sdb - SCSI-Festplatte mit der mittleren ID (z.B.: 2)

  • /dev/sdc - SCSI-Festplatte mit der größten ID (z.B.: 3)

SCSI-CD-ROMs oder -CD-Brenner werden ähnlich bezeichnet. Die Gerätedatei wird als /dev/scdX bezeichnet, hier steht X für eine Zahl, beginnend bei 0. Beispielsweise:

  • /dev/ scd0 - SCSI-CD-ROM-Brenner (z.B. ID: 3)

  • /dev/ scd1 - SCSI-CD-ROM-Brenner (z.B. ID: 5)

Natürlich müssen/können Sie auf einer CD-ROM kein Dateisystem anlegen, dies sollte hier nur der Anschauung dienen.

Nachdem Sie nun das Ihrer Festplatte entsprechende Device bestimmt haben, können Sie cfdisk mit dem entsprechenden Device als Option starten, beispielsweise: cfdisk /dev/hdb. Bei einer neuen Festplatte werden nach dem Programmstart keinerlei Partitionen angezeigt. In diesem Beispiel, mit einer ca. 25 Gbyte großen Festplatte, wurde eine einzige Partition mit einem Linux Extended2-Dateisystem (ext2) angelegt.

Abbildung 3.1. cfdisk

cfdisk


Die erste Partition wird als /dev/hdb1 angelegt, eine zweite würde /dev/hdb2 genannt werden und so weiter.

Sie können innerhalb von cfdisk mit den Cursortasten navigieren und mit der RETURN-Taste den ausgewählten Menüpunkt ansteuern.

Wenn Sie alle gewünschten Partitionen (oder auch nur eine einzige) angelegt haben, können Sie nun das eigentliche Dateisystem auf der Partition erzeugen. Hierzu steht Ihnen unter Debian GNU/Linux das Kommando mke2fs zur Verfügung. Auch diesem Kommando müssen Sie natürlich wieder angeben, welche Festplatte und vor allem auch welche Partition Sie mit dem Dateisystem beschreiben wollen. Für unser Beispiel beginnen wir mit der ersten Partition auf unserer Festplatte, also dem Device /dev/hdb1:

sushi:~# mke2fs /dev/hdb1
mke2fs 1.15, 18-Jul-1999 for EXT2 FS 0.5b, 95/08/09
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
128256 inodes, 256032 blocks
12801 blocks (5.00%) reserved for the super user
First data block=0
8 block groups
32768 blocks per group, 32768 fragments per group
16032 inodes per group
Superblock backups stored on blocks:
	32768, 98304, 163840, 229376

Writing inode tables: done
Writing superblocks and filesystem accounting information: done

Die bei Ihnen angezeigten Werte werden, je nach verwendeter Festplatte, von den hier gezeigten abweichen.

Nun können Sie die frisch formatierte Partition zu Ihrem Dateisystem hinzufügen: mount /dev/hdb1 /mnt und mit dem Kommando df überprüfen, ob nichts schief gelaufen ist.

Die Ausgabe könnte auf einem System mit mehreren Festplatten wie folgt aussehen:

sushi:~# df
Filesystem           1k-blocks      Used Available Use% Mounted on
/dev/hda1              5767132   4352356   1121804  80% /
/dev/hdb1             16247612  14355348   1066928  94% /home/ftp
/dev/hdc1             24597980  21574360   1774080  93% /home/ftp/debian
/dev/hda2             18263244  15157492   2178016  88% /home/ftp/images

In dieser Auflistung sollten Sie dann auch die neu eingebundene Festplattenpartition finden. Die Option -h zum Kommando df erzeugt eine etwas lesbarere Ausgabe, indem der Speicherplatz in Mega- bzw. Gigabyte-Größen angegeben wird.

[Tipp]Plattenplatzbelegung in Farbe

Mit dem Programm pydf (dieses muss gesondert installiert werden) kann die Belegung des Plattenplatzes farbig und in grafischer Form erfolgen.

wasabi:~# pydf
Filesystem           Size      Used     Avail  Use% [        ] Mounted on
/dev/hdc3            758M       86M      671M  11.0 [#       ] / 
tmpfs                 58M         0       58M   0.0 [        ] /dev/shm
/dev/hdc1             90M     7604k       83M   8.0 [#       ] /boot
/dev/hdc5           1902M      913M      988M  48.0 [####    ] /usr
/dev/hdc6           1902M     1579M      323M  83.0 [####### ] /var
/dev/hdc7            949M      916k      948M   0.0 [        ] /tmp
/dev/hdc8             49G       36G       13G  73.0 [######  ] /home 
	

3.20.2 /etc/fstab - Dateisysteme automatisch einbinden

Vielleicht werden Sie nach einem Neustart des Systems bemerkt haben, dass die neu eingebundene Festplatte nicht automatisch ins System eingebunden wird. Wenn Sie möchten, dass bestimmte andere Partitionen zusätzlich zu / (root) ins System eingebunden werden, so müssen Sie diese in die Datei /etc/ fstab (für: file system table) aufnehmen. Weiterhin ist es sinnvoll, dort auch Dateisysteme einzutragen, die zwar nicht automatisch gemountet werden sollen, auf die Sie aber trotzdem schnellen Zugriff haben möchten, beispielsweise CD-ROMs, die öfter gewechselt werden.

Nach der Basisinstallation von Debian GNU/Linux sind bereits einige Einträge in der Datei /etc/fstab vorhanden:

# /etc/fstab: static file system information.
#
# <file system>     <mount point>   <type>  <options>   <dump >  <pass>
/dev/hda1            /               ext2    defaults    0       1
/dev/hda2            none            swap    sw          0       0
proc                 /proc           proc    defaults    0       0

Bei der Installation wurden (mindestens) das Root-Dateisystem (/) sowie eine Swap-Partition angelegt. Der dritte Eintrag dient dem virtuellen Verzeichnis /proc, das zur Laufzeit des Systems diverse Informationen zum System und zur Hardware enthält. Dieses verbraucht keinen Festplattenplatz.

Die erste Spalte beschreibt das Device und die zu mountende Partition. Die zweite Spalte verweist auf das Verzeichnis im Dateisystem, an der die Partition eingebunden werden soll. Beachten Sie, dass dieses Feld bei einer Swap-Partition mit dem Text none anstatt eines Verzeichnisses gefüllt wird. Die dritte Spalte beschreibt den Typ des Dateisystems. Eine Beschreibung der weiteren Spalten finden Sie weiter unten, übernehmen Sie die Werte erst einmal wie gezeigt.

Um die im vorigen Abschnitt beschriebene Festplatte /dev/hdb automatisch ins System einzubinden, erweitern Sie die Datei um folgenden Eintrag:

/dev/hdb1            /mnt               ext2    defaults    0       2

Weitere nützliche Einträge sind:

/dev/hdd             /cdrom          iso9660 ro          0       0
/dev/fd0             /floppy         auto    noauto,sync 0       0

Der erste Eintrag ermöglicht es Ihnen, eine CD-ROM einfach mit dem Kommando mount /cdrom anstatt mount /dev/cdrom /cdrom einzubinden. Gleiches gilt für die zweite Zeile, diesmal aber für das Diskettenlaufwerk. Um mit DOS-formatierten Disketten umzugehen, sehen Sie sich das Paket mtools an.

3.20.2.1 /etc/fstab - Im Detail

Wie Sie schon gesehen haben, sind die Einträge in der Datei /etc/fstab in tabellarischer Form angeordnet:

# /etc/fstab: static file system information.
#
# <file system>     <mount point>   <type>  <options>   <dump >  <pass>
/dev/hda1            /               ext2    defaults    0       1
/dev/hda2            none            swap    sw          0       0
proc                 /proc           proc    defaults    0       0

Zeilen, die mit einem Kommentarzeichen ( # - Gartenzaun, Bahnübergang oder im englischen Hashmark genannt) beginnen, können Sie ignorieren, das System tut dies auch.

Mit den ersten drei Spalten haben wir uns ja schon kurz beschäftigt, diese enthalten die Einträge für die Partition, den Mount-Punkt und den Dateisystemtyp.

Die fünfte Spalte wird von dem Programm dump benutzt, um festzustellen, wann diese Partition gesichert werden soll. dump und restore dienen zur Sicherung von Daten.

Die sechste Spalte wird beim Systemstart von dem Programm fsck ausgewertet. Damit wird festgestellt, in welcher Reihenfolge die Dateisysteme beim Systemstart geprüft werden sollen. Die Root-Partition (/) sollte hier den Wert 1 erhalten. Dateisysteme, die nicht überprüft werden sollen, wie zum Beispiel swap oder CD-ROMs, bekommen den Wert 0, alle anderen Dateisysteme bekommen eine 2.

Nein, das ist kein Fehler im Text... Zur vierten Spalte kommen wir jetzt. Diese bedarf einiger Erklärungen. Die Einträge in der vierten Spalte werden beim Mounten des Dateisystems benutzt. Sie können hier einen (im einfachsten Fall den Text: default) oder mehrere Werte angeben.

  • async oder sync - Stellt die Datenübertragung (I/O) auf den synchronen oder asynchronen Modus. Im synchronen Modus werden alle veränderten Daten sofort auf das Medium geschrieben; der asynchrone Modus speichert diese zwischen und schreibt später auf das Medium.

  • ro oder rw - Mountet das Dateisystem zum Nur-lesen (ro - read-only) oder zum Lesen und Schreiben (rw - read-write). Wenn Sie keine Änderungen an einem Dateisystem vornehmen wollen, so können Sie dieses ro mounten, um versehentliche Änderungen zu verhindern. Ebenso ist dieser Modus für CD-ROMs geeignet.

  • auto oder noauto - Beim Systemstart oder wenn Sie das Kommando mount -a benutzen, werden alle Dateisysteme gemountet, die Sie mit dem Eintrag auto versehen haben. Dateisysteme, die nicht dauerhaft zur Verfügung stehen, wie zum Beispiel Disketten oder CD-ROMs, sollten den Eintrag noauto bekommen. Sie verhindern so eine Fehlermeldung beim Systemstart, müssen diese Dateisysteme allerdings dann von Hand einbinden.

  • dev oder nodev - nodev ignoriert die Gerätedateien auf dem gemounteten Dateisystem.

  • user oder nouser - Normalerweise können Dateisysteme nur vom Administrator (root) in das System eingebunden werden. Mit dem Wert user erlauben Sie auch normalen Benutzern das Mounten von Dateisystemen. Sie können so beispielsweise allen Benutzern den Zugriff auf das Diskettenlaufwerk oder das CD-ROM-Laufwerk erlauben.

  • exec oder noexec - Erlaubt oder verbietet das Ausführen von Programmen, die sich auf diesem Dateisystem befinden.

  • suid oder nosuid - Wertet das Suid-Bit aus oder nicht.

  • defaults - Der eigentlich wichtigste Wert, den dieses Feld annehmen kann. Aktiviert die Optionen: rw, dev, suid, exec, auto, nouser, async. Sie können einzelne Werte mit weiteren Parametern überschreiben.

 Impressum