In der Datei /etc/fstab werden die statischen Informationen zu den Dateisystemen des jeweiligen Rechners gespeichert. Das kann aber auch Dateisysteme auf entfernten Rechnern umfassen, auf die mittels eines Netzwerkdateisystems (NFS, Samba, Netware) zugegriffen wird. Während des Bootvorganges wird /etc/fstab ausgewertet und die Dateisysteme in der dort angegebenen Reihenfolge gemountet. Nach Änderungen kann man mit mount -a die Datei neu abarbeiten lassen. Dabei werden die einzelnen Partitionen oder Laufwerke den jeweiligen mount-points zugewiesen, es wird das Dateisystem fesgelegt und evtl. Rechte eingeschränkt.
Es ist wichtig, zu wissen, dass normale Benutzer verschiedene Geräte (CF-Kartenleser, USB-Sticks, Kameras etc.) nur exakt dann mounten dürfen, wenn diese Geräte in der fstab eingetragen sind. Dies kann man entweder manuell vornehmen (was allerdings das hotplugging stark einschränkt), oder aber per Script (so macht es SuSE).
Die Ziffer in der letzten Spalte wird von fsck(6) ausgewertet, um die Reihenfolge der Prüfung während eines Reboots festzulegen. Die Root-Partition sollte 1 erhalten, alle anderen echten Dateisysteme 2.
Die aktuellen Informationen über gemountete Dateisystem finden sich immer unter /proc/mounts oder auch in /etc/mtab (letzteres nur wenn das Root-Filesystem rw gemountet ist). Auf /etc/fstab wird immer nur lesend zugegriffen; sie muss deshalb manuell gepflegt werden.
Man kann die Partition auch mit einem Label markieren (siehe DateisystemLabel), dann braucht man keine "Absolutangaben".
Mini-Howto
Ein Beispiel:
# /etc/fstab: static file system information. # # Partition wohin Dateisystem # <file system> <mount point> <type> <options> <dump> <pass> # root (/) immer als erstes /dev/sda2 / ext3 rw 0 1 proc /proc proc defaults 0 0 # Aus Geschwindigkeitsgründen swap nach Möglichkeit auf eine andere Platte als die hauptsächlich benutzte /dev/hda2 none swap /dev/sda3 none swap # Uncomment the following entry if you use a 2.2.x or newer kernel for # UNIX98-style pty handling none /dev/pts devpts gid=5,mode=620 0 0 /dev/fd0 /floppy auto defaults,user,noauto 0 0 /dev/sda1 /boot ext2 rw 0 2 /dev/hdd4 /usr/sap ext3 rw 0 2 /dev/hdc3 /usr/local/src ext3 rw 0 2 /dev/hdc2 /usr/local/mp3 ext3 rw 0 2 # Captive NTFS: Dateien/Verzeichnisse erhalten als Besitzer # den User mit UID=1000 und als Gruppe users (GID=100): /dev/hdd1 /mnt/hdd1 captive-ntfs noauto,gid=100,uid=1000,users,exec,rw,umask=000 0 2 # Folgende Partition ist mit einem Label markiert: LABEL=part_opt /opt ext3 ro 0 2 /dev/hda3 /home ext3 rw 0 2 /dev/cdroms/cdrom0 /brenner iso9660 ro,noexec,user,noauto 0 0 # ^^^^ # Programme sollen nicht direkt von CD laufen können (Sicherheit) # !!!! /dev/cdroms/cdrom1 /cdrom iso9660 ro,noexec,user,noauto 0 0 # Nur bei usb nötig none /proc/bus/usb usbdevfs defaults 0 0 #für /tmp läßt sich das temporäre Dateisystem verwenden tmpfs /tmp tmpfs defaults 0 0 # USB-Stick mit FAT32 /dev/sda1 /mnt/usbstick vfat rw,user,noauto,umask=000 0 0 # Ein Verzeichnis ueberladen: /var belegt dann den Platz auf /bigdisk/var /bigdisk/var /var none bind 0 0
Frage: bei welchen Programmen bringt das /tmp mit tmpfs spürbar was?
Bei GNOME z.B.. Es legt hier sehr viele kleine Dateien an! Man spürt es aber nur, wenn viele Leute gleichzeitig mit Gnome-Anwendungen arbeiten. Speziell wenn viele Anwendungen gestartet/beendet werden. -- JanRoehrich 2002-11-14 17:51:43
Außerdem bei jackd. ce 2002-11-20 00:38:43
Vorsicht übrigens mit der Kombination exec, user: Das wird gemeinhin als Sicherheitslücke gesehen. Gefährlich ist es aber nur bei Mehrbenutzersystemen, in denen nicht alle Benutzer voll vertrauenswürdig sind. Dennoch sollte man CDs und vor allem Disketten nach Möglichkeit mit den Optionen noexec, nosuid, nodev mounten. Außerdem -- wer startet unter GNU/Linux schon direkt Programme von CD?
- nosuid und nodev machen ja Sinn, aber was soll noexec bringen? Wenn ein User das Programm unbedingt ausführen will, kopiert er es eben nach $foobar und führt chmod u+x aus. noexec macht imho nur Sinn, wenn die User auf keine Partition mit exec Schreibzugriff haben, was wohl nur bei den wenigsten Systemen der Fall ist.
- Beispiel gegen Einwand: /home und /tmp auf eigenen Partitionen und schreibbar, aber mit noexec. Dann kann der User schreiben, aber keine eingeschleppten Programme ausführen.