Mounten: Unterschied zwischen den Versionen
Dirk (Diskussion | Beiträge) K →Weblinks: ic → „“ (korrektur) |
K Kaputte Links/Bilder entfernt |
||
Zeile 31: | Zeile 31: | ||
== /etc/fstab == | == /etc/fstab == | ||
In der [[fstab]] werden zeilenweise alle permanenten Mounts definiert. | In der [[fstab]] werden zeilenweise alle permanenten Mounts definiert. | ||
Zeile 49: | Zeile 48: | ||
# Mount-Optionen | # Mount-Optionen | ||
# Dump- und Pass-Anweisung | # 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 {{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 {{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. | ||
Zeile 94: | Zeile 91: | ||
== Weblinks == | == Weblinks == | ||
* [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] {{sprache|en}} | ||
* [http://tldp.org/HOWTO/Filesystems-HOWTO.html Umfangreiches HOWTO zu Dateisystemen] {{sprache|en}} | * [http://tldp.org/HOWTO/Filesystems-HOWTO.html Umfangreiches HOWTO zu Dateisystemen] {{sprache|en}} |
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.
- Dateisystem
- Mountpoint
- Dateisystemtyp
- Mount-Optionen
- 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.