Linux mount und umount
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.