Mounten: Unterschied zwischen den Versionen

Aus wiki.archlinux.de
K (Kaputte Links/Bilder entfernt)
(23 dazwischenliegende Versionen von 6 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
Als „mounten“ wird der Vorgang des ''einhängens'' eines Dateisystems in die bestehende Verzeichnisstruktur bezeichnet. Dieses Einhängen ist notwendig, um mit üblichen Programmen auf Dateien eines Dateisystems zugreifen zu können. Dateisysteme werden mittels des Programms „mount“ eingehängt. „Einhängen“ und „mounten“ werden synonym verwendet.
Als „mounten“ wird der Vorgang des ''Einhängens'' eines Dateisystems in die bestehende Verzeichnisstruktur bezeichnet. Dieses Einhängen ist notwendig, um mit üblichen Programmen auf Dateien eines Dateisystems zugreifen zu können. Dateisysteme werden mittels des Programms {{ic|mount}} eingehängt. „Einhängen“ und „mounten“ werden synonym verwendet.


Man kann Dateisysteme sowohl temporär bis zum nächsten Neustart des Systems mounten, als auch die Mounts dauerhaft im System verankern. Temporäre Mounts werden mittels des „mount“-Befehls vorgenommen, permanente Mounts werden in die Datei „/etc/fstab“ eingetragen.
Man kann Dateisysteme sowohl temporär bis zum nächsten Neustart des Systems mounten, als auch die Mounts dauerhaft im System verankern. Temporäre Mounts werden mittels des {{ic|mount}}-Befehls vorgenommen, permanente Mounts werden in die Datei [[fstab]] eingetragen.


== Voraussetzungen ==
== Voraussetzungen ==
Damit eine Partition nutzbar gemountet werden kann, bedarf es einiger Voraussetzungen. Natürlich muss darauf ein Dateisystem existieren – eine „nackte“ Partition kann nicht ohne weiteres mit Daten beschrieben werden, wenn auf ihr kein Dateisystem existiert. Es kann allerdings auch standardmäßig kein Dateisystem erstellt werden, wenn die Partition gemountet ist. Des Weiteren muss die Partition vom System erkannt werden. Wenn man ein Dateisystem auf die Partition bringen konnte, ist dies der Fall.
Damit eine Partition nutzbar gemountet werden kann, bedarf es einiger Voraussetzungen. Natürlich muss darauf ein Dateisystem existieren – eine „nackte“ Partition kann nicht ohne weiteres mit Daten beschrieben werden, wenn auf ihr kein Dateisystem existiert. Es kann allerdings auch standardmäßig kein Dateisystem erstellt werden, wenn die Partition gemountet ist. Des Weiteren muss die Partition vom System erkannt werden. Wenn man ein Dateisystem auf die Partition bringen konnte, ist dies der Fall.


Da das Mounten das System für gewöhnlich sehr beeinflusst, kann man dies nur mit root-Rechten. Man kann es zwar so konfigurieren, dass auch normale Benutzer in einem gewissen Rahmen selbständig Dateisysteme mounten dürfen – dies kann man allerdings auch nur als root einstellen. Es ist grob fahrlässig, dem User volle Mount-Rechte zuzuweisen, auch wenn dies Theoretisch möglich ist.
Da das Mounten das System für gewöhnlich sehr beeinflusst, kann man dies nur mit root-Rechten. Man kann es zwar so konfigurieren, dass auch normale Benutzer in einem gewissen Rahmen selbständig Dateisysteme mounten dürfen – dies kann man allerdings auch nur als root einstellen. Es ist grob fahrlässig, dem User volle Mount-Rechte zuzuweisen, auch wenn dies theoretisch möglich ist.


Es wird hier davon ausgegangen, dass auf der zu mountenden Partition ein Dateisystem eingerichtet wurde, und dass die Partition für das System erkennbar und verfügbar ist.
Es wird hier davon ausgegangen, dass auf der zu mountenden Partition ein Dateisystem eingerichtet wurde, und dass die Partition für das System erkennbar und verfügbar ist.


== Das Programm „mount“ ==
== Das Programm {{ic|mount}} ==
„mount“ gehört zum Standard-Umfang praktisch jeder Linux-Distribution es wird sowohl dazu benutzt, die temporären Mounts einzurichten, als auch die permanenten Mounts bei Systemstart aus der fstab auszulesen und einzurichten. Mittels „mount“ werden ''Dateisysteme'' dem System an definierten ''Mountpoints'' zur Verfügung gestellt.
{{ic|mount}} gehört zum Standard-Umfang praktisch jeder Linux-Distribution es wird sowohl dazu benutzt, die temporären Mounts einzurichten, als auch die permanenten Mounts bei Systemstart aus der fstab auszulesen und einzurichten. Mittels {{ic|mount}} werden ''Dateisysteme'' dem System an definierten ''Mountpoints'' zur Verfügung gestellt.


Im einfachsten Fall teilt man dem Programm einfach ein ''Device'' (üblicher Weise eine Partition auf einem Datenträger – es gibt allerdings noch andere „Devices“ wie z.B. [[NFS]]-Shares; siehe weiter unten) und den Mountpoint mit. Eventuell muss man auch das zu verwendende Dateisystem mit übergeben.
Im einfachsten Fall teilt man dem Programm einfach ein ''Device'' (üblicher Weise eine Partition auf einem Datenträger – es gibt allerdings noch andere „Devices“ wie z.B. [[Network_File_System|NFS]]-Shares; siehe weiter unten) und den Mountpoint mit. Eventuell muss man auch das zu verwendende Dateisystem mit übergeben.


  mount /dev/sdb1 /media/platte            # ohne Angabe des Dateisystemtyps
  mount /dev/sdb1 /media/platte            # ohne Angabe des Dateisystemtyps
  mount -t ext3 /dev/sdb1 /media/platte    # mit Angabe des Dateisystemtyps (hier: ext3)
  mount -t ext3 /dev/sdb1 /media/platte    # mit Angabe des Dateisystemtyps (hier: ext3)


Vor dem Mounten muss der Mountpoint erstellt werden. Ein Mountpoint ist dabei ein beliebiges Verzeichnis. Mountpoints werden daher also mittels „mkdir“ erstellt. Wenn einem Dateisystem ein Verzeichnis als Mountpoint zugewiesen wird, in dem sich bereits Dateien befinden, ersetzt der Inhalt des gemounteten Dateisystems für die Dauer des Gemountet-Seins den Inhalt des Verzeichnisses, das als Mountpoint verwendet wird.
Vor dem Mounten muss der Mountpoint erstellt werden. Ein Mountpoint ist dabei ein beliebiges Verzeichnis. Mountpoints werden daher also mittels {{ic|mkdir}} erstellt. Wenn einem Dateisystem ein Verzeichnis als Mountpoint zugewiesen wird, in dem sich bereits Dateien befinden, ersetzt der Inhalt des gemounteten Dateisystems für die Dauer des Gemountet-Seins den Inhalt des Verzeichnisses, das als Mountpoint verwendet wird.


Wird das Dateisystem wieder ausgehängt, sind die Dateien des als Mountpoint verwendeten Verszeichnisses wieder verfügbar. Alle Dateien, die während der Verwendung als Mountpoint in das Verzeichnis geschrieben wurden, befinden sich dann auf dem Dateisystem, das während dieser Zeit dort gemountet war.
Wird das Dateisystem wieder ausgehängt, sind die Dateien des als Mountpoint verwendeten Verzeichnisses wieder verfügbar. Alle Dateien, die während der Verwendung als Mountpoint in das Verzeichnis geschrieben wurden, befinden sich dann auf dem Dateisystem, das während dieser Zeit dort gemountet war.


„mount“ können beim Mounten verschiedene ''Mount-Options'' übergeben werden, um die Verwendung des Dateisystems zu beeinflussen. Optionen werden beim manuellen Mounten mittels Parameter -o“, gefolgt von einer durch Kommata getrennten Optionen-Liste, übergeben.
{{ic|mount}} können beim Mounten verschiedene ''Mount-Options'' übergeben werden, um die Verwendung des Dateisystems zu beeinflussen. Optionen werden beim manuellen Mounten mittels Parameter {{ic|-o}}, gefolgt von einer durch Kommata getrennten Optionen-Liste, übergeben.


Gängige Optionen sind „ro“ (nur lesbar), „noexec“ (es können keine Programme ausgeführt werden, die in diesem Dateisystem gespeichert sind) oder „user“ (damit kann den Benutzern erlaubt werden, das Dateisystem zu mounten). Um das Dateisystem aus dem ersten Beispiel nur lesbar und ohne Programmausführrecht zu mounten, kann folgender Befehl verwendet werden.
Gängige Optionen sind {{ic|ro}} (nur lesbar), {{ic|noexec}} (es können keine Programme ausgeführt werden, die in diesem Dateisystem gespeichert sind) oder {{ic|user}} (damit kann den Benutzern erlaubt werden, das Dateisystem zu mounten). Um das Dateisystem aus dem ersten Beispiel nur lesbar und ohne Programmausführrecht zu mounten, kann folgender Befehl verwendet werden.


  mount -t ext3 -o ro,noexec /dev/sdb1 /media/platte
  mount -t ext3 -o ro,noexec /dev/sdb1 /media/platte


Damit wird das Dateisystem /dev/sdb1“ als ext3 unter dem Mountpoint /media/platte“ eingehängt, und kann dort nur lesend verwendet werden. Weitere Optionen und Parameter befinden sich ausführlich in der „mount“-[[Manpage]].
Damit wird das Dateisystem {{ic|/dev/sdb1}} als ext3 unter dem Mountpoint {{ic|/media/platte}} eingehängt, und kann dort nur lesend verwendet werden. Weitere Optionen und Parameter befinden sich ausführlich in der Manpage zu {{ic|mount}}.


== /etc/fstab ==
== /etc/fstab ==
In der ''fstab'' werden Zeilenweise alle permanenten Mounts definiert. Standardmäßig befinden sich unter Arch mindestens vier Einträge in dieser Datei. Zuerst werden das Pseudoterminal und der „Shared Memory“ definiert. Dies ist in Ordnung so, und wird in diesem Artikel nicht behandelt.
In der [[fstab]] werden zeilenweise alle permanenten Mounts definiert.
 
none  /dev/pts  devpts  defaults  0 0
none  /dev/shm  tmpfs    defaults  0 0


Man sollte dort nur etwas ändern, wenn man sich über die Konsequenzen im Klaren ist, und weiß, wie man eventuell auftretende Fehler wieder beheben kann.
Man sollte dort nur etwas ändern, wenn man sich über die Konsequenzen im Klaren ist, und weiß, wie man eventuell auftretende Fehler wieder beheben kann.


Des Weiteren werden ein swap-Speicher und mindestens eine Datenpartition (gemountet als root-Partition unter /) erstellt. Je nachdem, wie man sich bei der Installation entschieden hat, werden Festplatten über deren ''UUID'', deren ''Label'' oder über den ''Device-Node'' referenziert. Beides hat Vor- und Nachteile, ist letztendlich bei einem einmal eingerichteten System nicht von all zu großer Bedeutung.
Des Weiteren werden ein swap-Speicher und mindestens eine Datenpartition (gemountet als root-Partition unter /) erstellt. Je nachdem, wie man sich bei der Installation entschieden hat, werden Festplatten über deren ''UUID'', deren ''Label'' oder über den ''Device-Node'' referenziert. Diese drei Optionen haben jeweils alle Vor- und Nachteile. Was man verwendet ist letztendlich bei einem einmal eingerichteten System allerdings nicht von all zu großer Bedeutung.


Device-Nodes können sich unter gewissen Umständen ändern. Eine Partition, die unter /dev/sdb1“ erreichbar ist, könnte nach einem Start zum Beispiel unter /dev/sdc1“ verfügbar sein. Dies passiert für gewöhnlich allerdings nur, wenn man Partitionen (neu) einrichtet, alte Hardware um-, oder neue Hardware einbaut.
Device-Nodes können sich unter gewissen Umständen ändern. Eine Partition, die unter {{ic|/dev/sdb1}} erreichbar ist, könnte nach einem Start zum Beispiel unter {{ic|/dev/sdc1}} verfügbar sein. Dies passiert für gewöhnlich allerdings nur, wenn man Partitionen (neu) einrichtet, alte Hardware um-, oder neue Hardware einbaut, oder sich die Zugriffs-Routinen ändern. Es ist allerdings immer ratsam, UUIDs oder Labels zu verwenden, weil man damit einfach {{ic|auf der sicheren Seite}} ist.


Labels sind vergebene Bezeichnungen für Dateisysteme. Sie können bei der Einrichtung des Dateisystems oder im Nachhinein erstellt werden. Labels bleiben immer eindeutig, egal, unter welchem Device-Node ein Dateisystem dem System bekannt ist. UUIDs sind generierte eindeutige Werte für Dateisysteme und können wie Labels zur eindeutigen Identifikation unabhändig des Device-Nodes verwendet werden.
Labels sind vergebene Bezeichnungen für Dateisysteme. Sie können bei der Einrichtung des Dateisystems oder im Nachhinein erstellt werden. Labels bleiben immer eindeutig, egal, unter welchem Device-Node ein Dateisystem dem System bekannt ist. UUIDs sind generierte eindeutige Werte für Dateisysteme und können wie Labels zur eindeutigen Identifikation unabhängig des Device-Nodes verwendet werden.


Labels können zum Beispiel mittels des Tools „e2label“ gesetzt werden. UUIDs werden automatisch generiert, und können mittels „blkid“ angezeigt werden. Referenzierungen über die UUID oder das Label sind allerdings geringfügig langsamer als die Referenzierung über den Device-Node. Die Reihenfolge der Angaben ist bei allen Definitionen hingegen immer identisch.
Labels können zum Beispiel mittels des Tools {{ic|e2label}} gesetzt werden. UUIDs werden automatisch generiert, und können mittels {{ic|blkid}} angezeigt werden. Referenzierungen über die UUID oder das Label sind allerdings geringfügig langsamer als die Referenzierung über den Device-Node. Die Reihenfolge der Angaben ist bei allen Definitionen hingegen immer identisch.


# Dateisystem
# Dateisystem
Zeile 52: Zeile 49:
# Dump- und Pass-Anweisung
# Dump- und Pass-Anweisung


[[Bild:Bootchart_lang.png|thumb|[[Bootchart]] erfasst das routinemäßige überprüfen eines Dateisystems, auswirkung der „Pass“-Option]]
Die Dump-Anweisung steht heutzutage üblicher Weise auf 0 und wurde ursprünglich zu Backup-Zwecken verwendet. Es mag vereinzelt noch Anwendungsbereiche geben, in denen mittels {{ic|dump}} Backups erstellt werden, auf aktuellen Systemen gibt es allerdings zuverlässigere und schnellere Datensicherungsmethoden, so dass dieser Wert auf 0 belassen werden sollte.
 
Die Dump-Anweisung steht heutzutage üblicher Weise auf 0 und wurde ursprünglich zu Backup-Zwecken verwendet. Es mag vereinzelt noch Anwendungsbereiche geben, in denen mittels „dump“ Backups erstellt werden, auf aktuellen Systemen gibt es allerdings zuverlässigere und schnellere Datensicherungsmethoden, so dass dieser Wert auf 0 belassen werden sollte.


Die Pass-Anweisung wird vom Dateisystem-Test ausgewertet und definiert, in welcher Reihenfolge die Dateisysteme geprüft werden sollen. 0 = Keine Überprüfung, 1 = wird zuerst überprüft, 2 = wird überprüft nachdem alle mit 1 markierten Dateisysteme überprüft wurden.
Die Pass-Anweisung wird vom Dateisystem-Test ausgewertet und definiert, in welcher Reihenfolge die Dateisysteme geprüft werden sollen. 0 = Keine Überprüfung, 1 = wird zuerst überprüft, 2 = wird überprüft nachdem alle mit 1 markierten Dateisysteme überprüft wurden.


=== Beispiele ===
=== Beispiele ===
Es wird ein Dateisystem mittels UUID referenziert. Der Mountpoint für dieses Verzeichnis soll /home“ sein. Es wird der Dateisystemtyp „ext3“ verwendet. Da keine besonderen Optionen gesetzt werden sollen, wird die generische Option „default“ verwendet. Der dump-Wert steht auf 0, und dieses Dateisystem soll als zweites geprüft werden.
Es wird ein Dateisystem mittels UUID referenziert. Der Mountpoint für dieses Verzeichnis soll {{ic|/home}} sein. Es wird der Dateisystemtyp {{ic|ext4}} verwendet. Da keine besonderen Optionen gesetzt werden sollen, wird die generische Option {{ic|defaults}} verwendet. Der dump-Wert steht auf 0 und dieses Dateisystem soll als zweites geprüft werden.


  UUID=b5648df0-19b6-4186-9f1a-d470610e8741  /home  ext3   defaults  0 2
  UUID=b5648df0-19b6-4186-9f1a-d470610e8741  /home  ext4   defaults  0 2


Es wird ein DVD-Laufwerk gemountet. Dies geschieht über ein „virtuelles Device“, da /dev/dvd“ nur ein Link auf den Device-Node /dev/cd/dvd-1:0:0:0 ist. Dies spielt aber keine Rolle. Mountpoint für das DVD-Laufwerk soll /media/dvd“ sein. Auf einer DVD können verschiedene Dateisysteme verwendet werden, daher wird als Dateisystemtyp „auto“ verwendet.
Es wird ein DVD-Laufwerk gemountet. Dies geschieht über ein {{ic|virtuelles Device}}, da {{ic|/dev/dvd}} nur ein Link auf den Device-Node /dev/cd/dvd-1:0:0:0 ist. Dies spielt aber keine Rolle. Mountpoint für das DVD-Laufwerk soll {{ic|/media/dvd}} sein. Auf einer DVD können verschiedene Dateisysteme verwendet werden, daher wird als Dateisystemtyp {{ic|auto}} verwendet.


Da DVDs gemeinhin als nicht-lesbar gelten, wird dies dem System in den Optionen mittels „ro“ mitgeteilt, das erspart die Fehlermeldungbeim Mounten, wenn das System feststellt, das das Dateisystem nicht beschreibbar ist. Die „user“-Option besagt, dass das Dateisystem auch vom Benutzer gemountet werden kann. „noauto“ bestimmt, dass das Dateisystem nicht beim booten automatisch gemountet werden soll, und „unhide“ bestimmt, dass auch „versteckte“ Dateien angezeigt werden sollen.
Da DVDs gemeinhin als nur-lesbar gelten, wird dies dem System in den Optionen mittels {{ic|ro}} mitgeteilt. Das erspart die Fehlermeldung beim Mounten, wenn das System feststellt, dass das Dateisystem nicht beschreibbar ist. Die {{ic|user}}-Option besagt, dass das Dateisystem auch vom Benutzer gemountet werden kann. {{ic|noauto}} bestimmt, dass das Dateisystem nicht beim Booten automatisch gemountet werden soll, und {{ic|unhide}} bestimmt, dass auch {{ic|versteckte}} Dateien angezeigt werden sollen.


  /dev/dvd  /media/dvd  auto  ro,user,noauto,unhide  0 0
  /dev/dvd  /media/dvd  auto  ro,user,noauto,unhide  0 0


Mittels des Samba-Dateisystems „cifs“, das der Nachfolger von „smbfs“ ist, wird eine Freigabe „data“ von einem Windows-Server „srv“ unter /media/data“ gemountet. Als Dateisystem ist hier „cifs“ angegeben, durch Samba wird alles nötige selbständig ermittelt. Die Zugangsdaten-Datei wird gemäß der cifs-Definitionen mittels „credentials“ als Mount-Option übergeben. Pass und Dump stehen hier auf 0.
Mittels des Samba-Dateisystems {{ic|cifs}}, das der Nachfolger von {{ic|smbfs}} ist, wird eine Freigabe {{ic|data}} von einem Windows-Server {{ic|srv}} unter {{ic|/media/data}} gemountet. Als Dateisystem ist hier {{ic|cifs}} angegeben, durch Samba wird alles nötige selbständig ermittelt. Die Zugangsdaten-Datei wird gemäß der cifs-Definitionen mittels {{ic|credentials}} als Mount-Option übergeben. Pass und Dump stehen hier auf 0.


  \\srv\data  /media/data  cifs  credentials=/home/user/.data  0 0
  \\srv\data  /media/data  cifs  credentials=/home/user/.data  0 0


Über ein FUSE-Dateisystem wird ein SSH-Zugang für den Account „user“ auf dem Server „lin“ als Dateisystem unter /media/lin verfügbar gemacht. Als Dateisystemtyp wird hier „fuse“ angegeben. sshfs kümmert sich um alles Nötige. Gemäß sshfs-Vorgaben werden als Optionen User-ID, Gruppen-ID und die umask als Optionen übergeben
Über ein FUSE-Dateisystem wird ein SSH-Zugang für den Account {{ic|user}} auf dem Server {{ic|lin}} als Dateisystem unter /media/lin verfügbar gemacht. Als Dateisystemtyp wird hier {{ic|fuse}} angegeben. [[sshfs]] kümmert sich um alles Nötige. Gemäß sshfs-Vorgaben werden als Optionen User-ID, Gruppen-ID und die umask als Optionen übergeben


  sshfs#user@lin:  /media/lin  fuse  uid=user,gid=users,umask=0,allow_other  0 0
  sshfs#user@lin:  /media/lin  fuse  uid=user,gid=users,umask=0,allow_other  0 0


Eine vollständige fstab könnte mit den oben angegebenen Dateisystemen wie folgt aussehen. Es ist dabei nicht von Bedeutung, in welcher Reihenfolge die Angaben definiert werden, auch sind die Zwischenräume, Einrückungen, und Abstände nicht von Relevanz. Sie dienen lediglich der Optik. Um Angaben je Zeile zu trennen, bedarf es mindestens eines Leerzeichen oder eines Tabulators. Um Definitionen zu Trennen, bedarf es mindestens eines Zeilenumbruchs.
Eine vollständige fstab könnte mit den oben angegebenen Dateisystemen wie folgt aussehen. Es ist dabei nicht von Bedeutung, in welcher Reihenfolge die Angaben definiert werden, auch sind die Zwischenräume, Einrückungen, und Abstände nicht von Relevanz. Sie dienen lediglich der Optik. Um Angaben je Zeile zu trennen, bedarf es mindestens eines Leerzeichen oder eines Tabulators. Um Definitionen zu trennen, bedarf es mindestens eines Zeilenumbruchs.


none  /dev/pts  devpts  defaults  0 0
none  /dev/shm  tmpfs    defaults  0 0
  UUID=6f57b2d1-08d8-4404-88dc-118f4d347030  /      ext3  defaults  0 1
  UUID=6f57b2d1-08d8-4404-88dc-118f4d347030  /      ext3  defaults  0 1
  UUID=b5648df0-19b6-4186-9f1a-d470610e8741  /home  ext3  defaults  0 2
  UUID=b5648df0-19b6-4186-9f1a-d470610e8741  /home  ext3  defaults  0 2
Zeile 99: Zeile 91:


== Weblinks ==
== Weblinks ==
* [http://www.linux-ag.de/linux/LHB/node153.html „Partitionen und Dateisysteme“]
* [http://en.wikipedia.org/wiki/Comparison_of_file_systems Vergleich von Dateisystemtypen] {{sprache|en}}
* [http://en.wikipedia.org/wiki/Comparison_of_file_systems Vergleich von Dateisystemtypen]
* [http://tldp.org/HOWTO/Filesystems-HOWTO.html Umfangreiches HOWTO zu Dateisystemen] {{sprache|en}}
* [http://tldp.org/HOWTO/Filesystems-HOWTO.html Umfangreiches HOWTO zu Dateisystemen]
* [http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/ „Anatomy of the Linux file system“] {{sprache|en}}
* [http://www.ibm.com/developerworks/linux/library/l-linux-filesystem/ „Anatomy of the Linux file system“]


[[Kategorie:Konfiguration]]
[[Kategorie:Konfiguration]]
[[Kategorie:Installation]]
[[Kategorie:Installation]]
[[Kategorie:Grundlagen]]

Version vom 13. April 2019, 10:49 Uhr

Als „mounten“ wird der Vorgang des Einhängens eines Dateisystems in die bestehende Verzeichnisstruktur bezeichnet. Dieses Einhängen ist notwendig, um mit üblichen Programmen auf Dateien eines Dateisystems zugreifen zu können. Dateisysteme werden mittels des Programms mount eingehängt. „Einhängen“ und „mounten“ werden synonym verwendet.

Man kann Dateisysteme sowohl temporär bis zum nächsten Neustart des Systems mounten, als auch die Mounts dauerhaft im System verankern. Temporäre Mounts werden mittels des mount-Befehls vorgenommen, permanente Mounts werden in die Datei fstab eingetragen.

Voraussetzungen

Damit eine Partition nutzbar gemountet werden kann, bedarf es einiger Voraussetzungen. Natürlich muss darauf ein Dateisystem existieren – eine „nackte“ Partition kann nicht ohne weiteres mit Daten beschrieben werden, wenn auf ihr kein Dateisystem existiert. Es kann allerdings auch standardmäßig kein Dateisystem erstellt werden, wenn die Partition gemountet ist. Des Weiteren muss die Partition vom System erkannt werden. Wenn man ein Dateisystem auf die Partition bringen konnte, ist dies der Fall.

Da das Mounten das System für gewöhnlich sehr beeinflusst, kann man dies nur mit root-Rechten. Man kann es zwar so konfigurieren, dass auch normale Benutzer in einem gewissen Rahmen selbständig Dateisysteme mounten dürfen – dies kann man allerdings auch nur als root einstellen. Es ist grob fahrlässig, dem User volle Mount-Rechte zuzuweisen, auch wenn dies theoretisch möglich ist.

Es wird hier davon ausgegangen, dass auf der zu mountenden Partition ein Dateisystem eingerichtet wurde, und dass die Partition für das System erkennbar und verfügbar ist.

Das Programm mount

mount gehört zum Standard-Umfang praktisch jeder Linux-Distribution es wird sowohl dazu benutzt, die temporären Mounts einzurichten, als auch die permanenten Mounts bei Systemstart aus der fstab auszulesen und einzurichten. Mittels mount werden Dateisysteme dem System an definierten Mountpoints zur Verfügung gestellt.

Im einfachsten Fall teilt man dem Programm einfach ein Device (üblicher Weise eine Partition auf einem Datenträger – es gibt allerdings noch andere „Devices“ wie z.B. NFS-Shares; siehe weiter unten) und den Mountpoint mit. Eventuell muss man auch das zu verwendende Dateisystem mit übergeben.

mount /dev/sdb1 /media/platte             # ohne Angabe des Dateisystemtyps
mount -t ext3 /dev/sdb1 /media/platte     # mit Angabe des Dateisystemtyps (hier: ext3)

Vor dem Mounten muss der Mountpoint erstellt werden. Ein Mountpoint ist dabei ein beliebiges Verzeichnis. Mountpoints werden daher also mittels mkdir erstellt. Wenn einem Dateisystem ein Verzeichnis als Mountpoint zugewiesen wird, in dem sich bereits Dateien befinden, ersetzt der Inhalt des gemounteten Dateisystems für die Dauer des Gemountet-Seins den Inhalt des Verzeichnisses, das als Mountpoint verwendet wird.

Wird das Dateisystem wieder ausgehängt, sind die Dateien des als Mountpoint verwendeten Verzeichnisses wieder verfügbar. Alle Dateien, die während der Verwendung als Mountpoint in das Verzeichnis geschrieben wurden, befinden sich dann auf dem Dateisystem, das während dieser Zeit dort gemountet war.

mount können beim Mounten verschiedene Mount-Options übergeben werden, um die Verwendung des Dateisystems zu beeinflussen. Optionen werden beim manuellen Mounten mittels Parameter -o, gefolgt von einer durch Kommata getrennten Optionen-Liste, übergeben.

Gängige Optionen sind ro (nur lesbar), noexec (es können keine Programme ausgeführt werden, die in diesem Dateisystem gespeichert sind) oder user (damit kann den Benutzern erlaubt werden, das Dateisystem zu mounten). Um das Dateisystem aus dem ersten Beispiel nur lesbar und ohne Programmausführrecht zu mounten, kann folgender Befehl verwendet werden.

mount -t ext3 -o ro,noexec /dev/sdb1 /media/platte

Damit wird das Dateisystem /dev/sdb1 als ext3 unter dem Mountpoint /media/platte eingehängt, und kann dort nur lesend verwendet werden. Weitere Optionen und Parameter befinden sich ausführlich in der Manpage zu mount.

/etc/fstab

In der fstab werden zeilenweise alle permanenten Mounts definiert.

Man sollte dort nur etwas ändern, wenn man sich über die Konsequenzen im Klaren ist, und weiß, wie man eventuell auftretende Fehler wieder beheben kann.

Des Weiteren werden ein swap-Speicher und mindestens eine Datenpartition (gemountet als root-Partition unter /) erstellt. Je nachdem, wie man sich bei der Installation entschieden hat, werden Festplatten über deren UUID, deren Label oder über den Device-Node referenziert. Diese drei Optionen haben jeweils alle Vor- und Nachteile. Was man verwendet ist letztendlich bei einem einmal eingerichteten System allerdings nicht von all zu großer Bedeutung.

Device-Nodes können sich unter gewissen Umständen ändern. Eine Partition, die unter /dev/sdb1 erreichbar ist, könnte nach einem Start zum Beispiel unter /dev/sdc1 verfügbar sein. Dies passiert für gewöhnlich allerdings nur, wenn man Partitionen (neu) einrichtet, alte Hardware um-, oder neue Hardware einbaut, oder sich die Zugriffs-Routinen ändern. Es ist allerdings immer ratsam, UUIDs oder Labels zu verwenden, weil man damit einfach auf der sicheren Seite ist.

Labels sind vergebene Bezeichnungen für Dateisysteme. Sie können bei der Einrichtung des Dateisystems oder im Nachhinein erstellt werden. Labels bleiben immer eindeutig, egal, unter welchem Device-Node ein Dateisystem dem System bekannt ist. UUIDs sind generierte eindeutige Werte für Dateisysteme und können wie Labels zur eindeutigen Identifikation unabhängig des Device-Nodes verwendet werden.

Labels können zum Beispiel mittels des Tools e2label gesetzt werden. UUIDs werden automatisch generiert, und können mittels blkid angezeigt werden. Referenzierungen über die UUID oder das Label sind allerdings geringfügig langsamer als die Referenzierung über den Device-Node. Die Reihenfolge der Angaben ist bei allen Definitionen hingegen immer identisch.

  1. Dateisystem
  2. Mountpoint
  3. Dateisystemtyp
  4. Mount-Optionen
  5. Dump- und Pass-Anweisung

Die Dump-Anweisung steht heutzutage üblicher Weise auf 0 und wurde ursprünglich zu Backup-Zwecken verwendet. Es mag vereinzelt noch Anwendungsbereiche geben, in denen mittels dump Backups erstellt werden, auf aktuellen Systemen gibt es allerdings zuverlässigere und schnellere Datensicherungsmethoden, so dass dieser Wert auf 0 belassen werden sollte.

Die Pass-Anweisung wird vom Dateisystem-Test ausgewertet und definiert, in welcher Reihenfolge die Dateisysteme geprüft werden sollen. 0 = Keine Überprüfung, 1 = wird zuerst überprüft, 2 = wird überprüft nachdem alle mit 1 markierten Dateisysteme überprüft wurden.

Beispiele

Es wird ein Dateisystem mittels UUID referenziert. Der Mountpoint für dieses Verzeichnis soll /home sein. Es wird der Dateisystemtyp ext4 verwendet. Da keine besonderen Optionen gesetzt werden sollen, wird die generische Option defaults verwendet. Der dump-Wert steht auf 0 und dieses Dateisystem soll als zweites geprüft werden.

UUID=b5648df0-19b6-4186-9f1a-d470610e8741   /home   ext4   defaults   0 2

Es wird ein DVD-Laufwerk gemountet. Dies geschieht über ein virtuelles Device, da /dev/dvd nur ein Link auf den Device-Node /dev/cd/dvd-1:0:0:0 ist. Dies spielt aber keine Rolle. Mountpoint für das DVD-Laufwerk soll /media/dvd sein. Auf einer DVD können verschiedene Dateisysteme verwendet werden, daher wird als Dateisystemtyp auto verwendet.

Da DVDs gemeinhin als nur-lesbar gelten, wird dies dem System in den Optionen mittels ro mitgeteilt. Das erspart die Fehlermeldung beim Mounten, wenn das System feststellt, dass das Dateisystem nicht beschreibbar ist. Die user-Option besagt, dass das Dateisystem auch vom Benutzer gemountet werden kann. noauto bestimmt, dass das Dateisystem nicht beim Booten automatisch gemountet werden soll, und unhide bestimmt, dass auch versteckte Dateien angezeigt werden sollen.

/dev/dvd   /media/dvd   auto   ro,user,noauto,unhide   0 0

Mittels des Samba-Dateisystems cifs, das der Nachfolger von smbfs ist, wird eine Freigabe data von einem Windows-Server srv unter /media/data gemountet. Als Dateisystem ist hier cifs angegeben, durch Samba wird alles nötige selbständig ermittelt. Die Zugangsdaten-Datei wird gemäß der cifs-Definitionen mittels credentials als Mount-Option übergeben. Pass und Dump stehen hier auf 0.

\\srv\data   /media/data   cifs   credentials=/home/user/.data   0 0

Über ein FUSE-Dateisystem wird ein SSH-Zugang für den Account user auf dem Server lin als Dateisystem unter /media/lin verfügbar gemacht. Als Dateisystemtyp wird hier fuse angegeben. sshfs kümmert sich um alles Nötige. Gemäß sshfs-Vorgaben werden als Optionen User-ID, Gruppen-ID und die umask als Optionen übergeben

sshfs#user@lin:   /media/lin   fuse   uid=user,gid=users,umask=0,allow_other   0 0

Eine vollständige fstab könnte mit den oben angegebenen Dateisystemen wie folgt aussehen. Es ist dabei nicht von Bedeutung, in welcher Reihenfolge die Angaben definiert werden, auch sind die Zwischenräume, Einrückungen, und Abstände nicht von Relevanz. Sie dienen lediglich der Optik. Um Angaben je Zeile zu trennen, bedarf es mindestens eines Leerzeichen oder eines Tabulators. Um Definitionen zu trennen, bedarf es mindestens eines Zeilenumbruchs.

UUID=6f57b2d1-08d8-4404-88dc-118f4d347030   /       ext3   defaults   0 1
UUID=b5648df0-19b6-4186-9f1a-d470610e8741   /home   ext3   defaults   0 2

/dev/dvd          /media/dvd    auto   ro,user,noauto,unhide                    0 0
\\srv\data        /media/data   cifs   credentials=/home/user/.data             0 0
sshfs#user@lin:   /media/lin    fuse   uid=user,gid=users,umask=0,allow_other   0 0

Achtung: Diese fstab entspricht zum Großteil der des Autors. Es ist nicht ratsam, die Angaben 1:1 in die eigene fstab zu übernehmen, da das System nach Übernahme eventuell nicht mehr starten wird.

Siehe auch

Weblinks