Linux mount und umount: Unterschied zwischen den Versionen
| (5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
=mount= | =mount= | ||
| − | + | ||
| − | + | <code>mount</code> fügt die Dateisysteme der verschiedenen Massenspeicher zu einem einzigen Verzeichnisbaum zusammen. Die Partitionen und Laufwerke sind als Gerätedateien unter <code>/dev</code> abgebildet; <code>mount</code> setzt das Dateisystem einer Partition auf ein leeres Verzeichnis, den '''Mountpunkt'''. | |
| − | + | ||
| − | + | Die Liste der eingehängten Dateisysteme führt der Kernel unter <code>/proc/mounts</code>. <code>/etc/mtab</code> ist auf aktuellen Systemen nur noch ein Symlink darauf. Wird ein <code>mount</code>-Aufruf unvollständig angegeben, ergänzt das Kommando die fehlenden Angaben aus <code>/etc/fstab</code>. | |
| − | + | ||
| − | + | ==Schema== | |
| − | |||
| − | |||
| − | ==Schema== | ||
mount [Optionen] Gerät Mountpunkt | mount [Optionen] Gerät Mountpunkt | ||
| + | ==Wichtige Optionen== | ||
{| class="wikitable" | {| class="wikitable" | ||
| + | ! Option !! Wirkung | ||
|- | |- | ||
| − | | -a | + | | <code>-a</code> || alle in <code>/etc/fstab</code> mit <code>auto</code> markierten Dateisysteme einhängen |
| − | | alle | ||
|- | |- | ||
| − | | - | + | | <code>-t TYP</code> || Dateisystemtyp angeben (ext4, xfs, iso9660 …); meist automatisch erkannt |
| − | | | ||
|- | |- | ||
| − | | - | + | | <code>-o LISTE</code> || durch Kommata getrennte Liste von Mount-Optionen |
| − | | | ||
|- | |- | ||
| − | | - | + | | <code>-r</code> || nur lesend einhängen (wie <code>-o ro</code>) |
| − | | | ||
|- | |- | ||
| − | | -v | + | | <code>-v</code> || ausführliche Ausgabe |
| − | | | ||
|} | |} | ||
| + | ==Eine Partition einhängen== | ||
| + | *mount /dev/sdb1 /mnt | ||
| + | |||
| + | Mit ausdrücklichem Typ: | ||
| + | *mount -t ext4 /dev/sdb1 /mnt | ||
| − | + | Eine CD/DVD nur lesend: | |
| − | + | *mount -t iso9660 -o ro /dev/sr0 /media/cdrom | |
| − | *mount -t iso9660 -o ro /dev/ | ||
| − | Ohne | + | ==Eingehängte Dateisysteme anzeigen== |
| + | Ohne Argumente listet <code>mount</code> die aktuelle Liste auf. | ||
*mount | *mount | ||
| − | /dev/sda1 on / type | + | |
| − | + | /dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro) | |
| − | /dev/sdb1 on /mnt type | + | /dev/sdb1 on /mnt type ext4 (rw,relatime) |
| − | /dev/sr0 on /media/ | + | /dev/sr0 on /media/cdrom type iso9660 (ro,nosuid,nodev) |
| + | |||
| + | Übersichtlicher – als Baum, wahlweise gefiltert nach Ziel: | ||
| + | *findmnt /mnt | ||
=Allgemeine Mount-Optionen= | =Allgemeine Mount-Optionen= | ||
| − | + | ||
| − | + | Hinter <code>-o</code> stehen die Optionen für die Partition. Diese gelten für alle Dateisystemtypen: | |
| − | {| | + | |
| − | + | {| class="wikitable" | |
| − | ! Option | + | ! Option !! Erklärung |
| − | ! Erklärung | ||
|- | |- | ||
| − | | | + | | <code>defaults</code> || Kurzform für <code>rw,suid,dev,exec,auto,nouser,async</code> |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>rw</code> / <code>ro</code> || les-/schreibbar bzw. nur lesbar |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>auto</code> / <code>noauto</code> || bei <code>mount -a</code> (und beim Booten) mit einhängen oder nicht |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>exec</code> / <code>noexec</code> || Ausführen von Programmen erlauben oder verbieten |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>suid</code> / <code>nosuid</code> || SUID-/SGID-Bits beachten oder ignorieren |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>dev</code> / <code>nodev</code> || Gerätedateien interpretieren oder nicht |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>user</code> / <code>nouser</code> || auch normalen Nutzern das Einhängen erlauben oder nur root |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>atime</code> / <code>noatime</code> || Zugriffszeit bei jedem Lesen aktualisieren oder nicht (<code>noatime</code> bringt Tempo) |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>remount</code> || bereits eingehängtes Dateisystem mit neuen Optionen neu einhängen |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>loop</code> || eine Image-Datei über ein Loop-Gerät einhängen |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>bind</code> || ein Verzeichnis zusätzlich an einer zweiten Stelle einblenden |
| − | | | ||
|- | |- | ||
| − | | | + | | <code>acl</code> || POSIX-ACLs aktivieren |
| − | | | ||
| − | |- | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
|} | |} | ||
| + | |||
| + | ==Optionen im laufenden Betrieb ändern== | ||
| + | Mit <code>remount</code> lässt sich eine Option setzen, ohne vorher auszuhängen. Beispiel: eine Partition nachträglich auf <code>noexec</code> stellen. | ||
| + | *mount -o remount,noexec /mnt | ||
| + | |||
| + | ==Ein Verzeichnis an zweiter Stelle einblenden== | ||
| + | <code>bind</code> zeigt denselben Verzeichnisinhalt an zwei Pfaden – nützlich, um einem Dienst nur einen Teilbaum sichtbar zu machen. | ||
| + | *mount --bind /daten/web /var/www/html | ||
=umount= | =umount= | ||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | |||
| − | {| | + | <code>umount</code> hängt ein Dateisystem wieder aus. Dabei läuft automatisch ein <code>sync</code>, damit alle im Cache gehaltenen Daten geschrieben werden – deshalb einen USB-Stick immer erst aushängen, bevor man ihn abzieht. |
| − | ! Option | + | |
| − | ! | + | Ausgehängt werden kann nur ein '''inaktives''' Dateisystem: kein Prozess darf eine Datei darin geöffnet haben oder ein Verzeichnis darin als Arbeitsverzeichnis benutzen, und es darf kein weiteres Dateisystem darüber eingehängt sein. Sonst kommt <code>device is busy</code>. |
| − | + | ||
| − | + | ==Optionen== | |
| − | + | ||
| + | {| class="wikitable" | ||
| + | ! Option !! Wirkung | ||
|- | |- | ||
| − | | - | + | | <code>-a</code> || alle in <code>/etc/fstab</code> aufgeführten Dateisysteme aushängen |
| − | | | ||
|- | |- | ||
| − | | -t | + | | <code>-t TYP</code> || nur Dateisysteme des angegebenen Typs aushängen |
| − | | | ||
|- | |- | ||
| − | | -l lazy | + | | <code>-l</code> || ''lazy'': den Mount sofort aus dem Baum nehmen, den Datenträger aber erst freigeben, wenn der letzte Zugriff endet |
| − | |||
|- | |- | ||
| + | | <code>-v</code> || ausführliche Ausgabe | ||
|} | |} | ||
| − | == | + | |
| − | + | ==Aushängen – über Gerät oder Mountpunkt== | |
| − | + | Beides ist möglich und tut dasselbe. Über das Gerät: | |
| − | *umount /dev/ | + | *umount /dev/sdb1 |
| − | + | ||
| − | + | Oder über den Mountpunkt: | |
| − | *umount /mnt | + | *umount /mnt |
| − | + | ||
| − | + | =Wenn das Aushängen hängt: „device is busy"= | |
| − | umount: /mnt: | + | |
| − | + | Belegt ein Prozess das Dateisystem, verweigert <code>umount</code> den Dienst: | |
| − | + | ||
| + | umount: /mnt: target is busy. | ||
| + | |||
| + | ==Den Blockierer finden== | ||
| + | <code>lsof</code> zeigt offene Dateien unterhalb des Mountpunkts, <code>fuser</code> die Prozesse mitsamt PID. | ||
| + | *lsof /mnt | ||
| + | |||
| + | *fuser -vm /mnt | ||
| + | |||
| + | Danach den Prozess sauber beenden oder aus dem Verzeichnis herausgehen – oft ist es nur eine Shell, die noch im Mountpunkt steht. | ||
| + | |||
| + | ==Notausgang: lazy unmount== | ||
| + | Lässt sich der Blockierer nicht beseitigen, nimmt <code>-l</code> den Mount sofort aus dem Baum. Der Datenträger wird freigegeben, sobald der letzte Zugriff endet. | ||
| + | *umount -l /mnt | ||
| + | |||
| + | Als grobes Mittel kann <code>fuser</code> die Blockierer auch direkt abschießen (mit Bedacht einsetzen): | ||
| + | *fuser -km /mnt | ||
=Aufgaben= | =Aufgaben= | ||
| − | + | ||
| + | Vorbereitung: drei Datenpartitionen auf <code>/dev/sdb</code> (<code>/dev/sdb1</code> bis <code>/dev/sdb3</code>), jeweils mit einem Dateisystem. '''<code>/dev/sda</code> bleibt unberührt.''' Die Mountpunkte vorher anlegen. | ||
| + | |||
| + | * Legen Sie die Mountpunkte /mnt/1part, /mnt/2part und /mnt/3part an. | ||
| + | <!-- Lösung: mkdir -p /mnt/1part /mnt/2part /mnt/3part --> | ||
| + | |||
| + | * Mounten Sie die erste Partition unter /mnt/1part. | ||
| + | <!-- Lösung: mount /dev/sdb1 /mnt/1part --> | ||
| + | |||
| + | * Mounten Sie die zweite Partition unter /mnt/2part mit der Option noatime. | ||
| + | <!-- Lösung: mount -o noatime /dev/sdb2 /mnt/2part --> | ||
| + | |||
| + | * Hängen Sie die erste Partition mit remount zusätzlich auf noexec um, ohne sie auszuhängen. | ||
| + | <!-- Lösung: mount -o remount,noexec /mnt/1part --> | ||
| + | |||
| + | * Prüfen Sie mit findmnt, ob die Optionen gesetzt sind. | ||
| + | <!-- Lösung: findmnt /mnt/1part bzw. findmnt /mnt/2part --> | ||
| + | |||
| + | * Mounten Sie die dritte Partition unter /mnt/3part nur lesend. | ||
| + | <!-- Lösung: mount -o ro /dev/sdb3 /mnt/3part (oder: mount -r /dev/sdb3 /mnt/3part) --> | ||
| + | |||
| + | * Wechseln Sie mit cd nach /mnt/2part und versuchen Sie, die Partition auszuhängen. Was passiert, und wie finden Sie den Blockierer? | ||
| + | <!-- Lösung: umount schlägt mit "target is busy" fehl, weil die eigene Shell im Verzeichnis steht. | ||
| + | lsof /mnt/2part oder fuser -vm /mnt/2part zeigt den Prozess. | ||
| + | Nach cd / lässt sich die Partition aushängen. --> | ||
| + | |||
| + | * Hängen Sie die zweite Partition aus – über den Mountpunkt. | ||
| + | <!-- Lösung: umount /mnt/2part --> | ||
| + | |||
| + | * Blenden Sie das Verzeichnis /mnt/1part/docs zusätzlich unter /mnt/gemeinsam ein (bind mount) und prüfen Sie das Ergebnis mit findmnt. | ||
| + | <!-- Lösung: | ||
| + | mkdir /mnt/gemeinsam | ||
| + | mount --bind /mnt/1part/docs /mnt/gemeinsam | ||
| + | findmnt /mnt/gemeinsam | ||
| + | --> | ||
Aktuelle Version vom 20. August 2026, 05:21 Uhr
mount
mount fügt die Dateisysteme der verschiedenen Massenspeicher zu einem einzigen Verzeichnisbaum zusammen. Die Partitionen und Laufwerke sind als Gerätedateien unter /dev abgebildet; mount setzt das Dateisystem einer Partition auf ein leeres Verzeichnis, den Mountpunkt.
Die Liste der eingehängten Dateisysteme führt der Kernel unter /proc/mounts. /etc/mtab ist auf aktuellen Systemen nur noch ein Symlink darauf. Wird ein mount-Aufruf unvollständig angegeben, ergänzt das Kommando die fehlenden Angaben aus /etc/fstab.
Schema
mount [Optionen] Gerät Mountpunkt
Wichtige Optionen
| Option | Wirkung |
|---|---|
-a |
alle in /etc/fstab mit auto markierten Dateisysteme einhängen
|
-t TYP |
Dateisystemtyp angeben (ext4, xfs, iso9660 …); meist automatisch erkannt |
-o LISTE |
durch Kommata getrennte Liste von Mount-Optionen |
-r |
nur lesend einhängen (wie -o ro)
|
-v |
ausführliche Ausgabe |
Eine Partition einhängen
- mount /dev/sdb1 /mnt
Mit ausdrücklichem Typ:
- mount -t ext4 /dev/sdb1 /mnt
Eine CD/DVD nur lesend:
- mount -t iso9660 -o ro /dev/sr0 /media/cdrom
Eingehängte Dateisysteme anzeigen
Ohne Argumente listet mount die aktuelle Liste auf.
- mount
/dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro) /dev/sdb1 on /mnt type ext4 (rw,relatime) /dev/sr0 on /media/cdrom type iso9660 (ro,nosuid,nodev)
Übersichtlicher – als Baum, wahlweise gefiltert nach Ziel:
- findmnt /mnt
Allgemeine Mount-Optionen
Hinter -o stehen die Optionen für die Partition. Diese gelten für alle Dateisystemtypen:
| Option | Erklärung |
|---|---|
defaults |
Kurzform für rw,suid,dev,exec,auto,nouser,async
|
rw / ro |
les-/schreibbar bzw. nur lesbar |
auto / noauto |
bei mount -a (und beim Booten) mit einhängen oder nicht
|
exec / noexec |
Ausführen von Programmen erlauben oder verbieten |
suid / nosuid |
SUID-/SGID-Bits beachten oder ignorieren |
dev / nodev |
Gerätedateien interpretieren oder nicht |
user / nouser |
auch normalen Nutzern das Einhängen erlauben oder nur root |
atime / noatime |
Zugriffszeit bei jedem Lesen aktualisieren oder nicht (noatime bringt Tempo)
|
remount |
bereits eingehängtes Dateisystem mit neuen Optionen neu einhängen |
loop |
eine Image-Datei über ein Loop-Gerät einhängen |
bind |
ein Verzeichnis zusätzlich an einer zweiten Stelle einblenden |
acl |
POSIX-ACLs aktivieren |
Optionen im laufenden Betrieb ändern
Mit remount lässt sich eine Option setzen, ohne vorher auszuhängen. Beispiel: eine Partition nachträglich auf noexec stellen.
- mount -o remount,noexec /mnt
Ein Verzeichnis an zweiter Stelle einblenden
bind zeigt denselben Verzeichnisinhalt an zwei Pfaden – nützlich, um einem Dienst nur einen Teilbaum sichtbar zu machen.
- mount --bind /daten/web /var/www/html
umount
umount hängt ein Dateisystem wieder aus. Dabei läuft automatisch ein sync, damit alle im Cache gehaltenen Daten geschrieben werden – deshalb einen USB-Stick immer erst aushängen, bevor man ihn abzieht.
Ausgehängt werden kann nur ein inaktives Dateisystem: kein Prozess darf eine Datei darin geöffnet haben oder ein Verzeichnis darin als Arbeitsverzeichnis benutzen, und es darf kein weiteres Dateisystem darüber eingehängt sein. Sonst kommt device is busy.
Optionen
| Option | Wirkung |
|---|---|
-a |
alle in /etc/fstab aufgeführten Dateisysteme aushängen
|
-t TYP |
nur Dateisysteme des angegebenen Typs aushängen |
-l |
lazy: den Mount sofort aus dem Baum nehmen, den Datenträger aber erst freigeben, wenn der letzte Zugriff endet |
-v |
ausführliche Ausgabe |
Aushängen – über Gerät oder Mountpunkt
Beides ist möglich und tut dasselbe. Über das Gerät:
- umount /dev/sdb1
Oder über den Mountpunkt:
- umount /mnt
Wenn das Aushängen hängt: „device is busy"
Belegt ein Prozess das Dateisystem, verweigert umount den Dienst:
umount: /mnt: target is busy.
Den Blockierer finden
lsof zeigt offene Dateien unterhalb des Mountpunkts, fuser die Prozesse mitsamt PID.
- lsof /mnt
- fuser -vm /mnt
Danach den Prozess sauber beenden oder aus dem Verzeichnis herausgehen – oft ist es nur eine Shell, die noch im Mountpunkt steht.
Notausgang: lazy unmount
Lässt sich der Blockierer nicht beseitigen, nimmt -l den Mount sofort aus dem Baum. Der Datenträger wird freigegeben, sobald der letzte Zugriff endet.
- umount -l /mnt
Als grobes Mittel kann fuser die Blockierer auch direkt abschießen (mit Bedacht einsetzen):
- fuser -km /mnt
Aufgaben
Vorbereitung: drei Datenpartitionen auf /dev/sdb (/dev/sdb1 bis /dev/sdb3), jeweils mit einem Dateisystem. /dev/sda bleibt unberührt. Die Mountpunkte vorher anlegen.
- Legen Sie die Mountpunkte /mnt/1part, /mnt/2part und /mnt/3part an.
- Mounten Sie die erste Partition unter /mnt/1part.
- Mounten Sie die zweite Partition unter /mnt/2part mit der Option noatime.
- Hängen Sie die erste Partition mit remount zusätzlich auf noexec um, ohne sie auszuhängen.
- Prüfen Sie mit findmnt, ob die Optionen gesetzt sind.
- Mounten Sie die dritte Partition unter /mnt/3part nur lesend.
- Wechseln Sie mit cd nach /mnt/2part und versuchen Sie, die Partition auszuhängen. Was passiert, und wie finden Sie den Blockierer?
- Hängen Sie die zweite Partition aus – über den Mountpunkt.
- Blenden Sie das Verzeichnis /mnt/1part/docs zusätzlich unter /mnt/gemeinsam ein (bind mount) und prüfen Sie das Ergebnis mit findmnt.