Linux mount und umount: Unterschied zwischen den Versionen

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen
 
(7 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
 
=mount=
 
=mount=
* mount fügt die einzelnen Dateisysteme auf den verschiedenen Massenspeichern zu einem einzigen Dateisystembaum zusammen.
+
 
* Linux unterstützt verschiedene Arten von Dateisystemen.
+
<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 einzelnen Partitionen und Laufwerke sind als Gerätedateien (special-files) im Ordner /dev abgebildet.
+
 
* Die auf den Partitionen gespeicherten Dateisysteme werden durch den mount Befehl auf beliebige leere Verzeichnisse aufgesetzt.
+
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>.
* mount erstellt eine Liste der aufgesetzten Dateisysteme in /etc/mtab.
+
 
* Der Kernel unterhält die gleiche Liste im Prozeßdateisystem in /proc/mounts.
+
==Schema==
* Wenn mount ohne Kommandozeilenargumente aufgerufen wird, zeigt es den Inhalt dieser Liste an.
 
* Wenn ein mount-Befehl unvollständig angegeben wird, werden die fehlenden Parameter automatisch aus der Datei /etc/fstab ergänzt.
 
==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 Dateisysteme werden automatisch wie in /etc/fstab beschrieben zusammengefügt
 
 
|-
 
|-
| -o
+
| <code>-t TYP</code> || Dateisystemtyp angeben (ext4, xfs, iso9660 …); meist automatisch erkannt
| Option ... bestimmt mit einer durch Kommata getrennten Liste von Optionen verschiedene Eigenschaften des Dateisystems
 
 
|-
 
|-
| -r
+
| <code>-o LISTE</code> || durch Kommata getrennte Liste von Mount-Optionen
| (read-only) veranlasst das mount-Kommando, das Dateisystem readonly aufzusetzen
 
 
|-
 
|-
| -t Typ
+
| <code>-r</code> || nur lesend einhängen (wie <code>-o ro</code>)
| spezifiziert den Typ des Dateisystems, das aufgesetzt werden soll
 
 
|-
 
|-
| -v
+
| <code>-v</code> || ausführliche Ausgabe
| (verbose) veranlaßt das mount-Kommando, Informationen zum Programmverlauf auf den Bildschirm zu schreiben
 
 
|}
 
|}
  
 +
==Eine Partition einhängen==
 +
*mount /dev/sdb1 /mnt
 +
 +
Mit ausdrücklichem Typ:
 +
*mount -t ext4 /dev/sdb1 /mnt
  
Beispiele:
+
Eine CD/DVD nur lesend:
*mount -t ext3 /dev/sdb1 /mnt/
+
*mount -t iso9660 -o ro /dev/sr0 /media/cdrom
*mount -t iso9660 -o ro /dev/cdrom /media/cdrom  
 
  
Ohne Optionen werden die eingehängten Dateisysteme aufgelistet
+
==Eingehängte Dateisysteme anzeigen==
 +
Ohne Argumente listet <code>mount</code> die aktuelle Liste auf.
 
*mount
 
*mount
  /dev/sda1 on / type ext3 (rw,relatime,errors=remount-ro)
+
 
...
+
  /dev/sda1 on / type ext4 (rw,relatime,errors=remount-ro)
  /dev/sdb1 on /mnt type ext3 (rw)
+
  /dev/sdb1 on /mnt type ext4 (rw,relatime)
  /dev/sr0 on /media/cdrom0 type iso9660 (ro)
+
  /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=
*Es wurde der Parameter -o schon erwähnt. Hinter diesem können verschiedene Optionen für die zu mountende Partition angegeben werden.
+
 
*Folgende Optionen gelten für alle Dateisystem-Typen:
+
Hinter <code>-o</code> stehen die Optionen für die Partition. Diese gelten für alle Dateisystemtypen:
{| Border=1 Cellpadding=2
+
 
|-
+
{| class="wikitable"
! Option  
+
! Option !! Erklärung
! Erklärung  
 
 
|-
 
|-
| atime
+
| <code>defaults</code> || Kurzform für <code>rw,suid,dev,exec,auto,nouser,async</code>
| Immer wenn auf eine Datei zugegriffen wird, die atime auf aktuelle Zeit setzen (Standard)
 
 
|-
 
|-
| auto
+
| <code>rw</code> / <code>ro</code> || les-/schreibbar bzw. nur lesbar
| Diese Option nützt nichts an der Kommandozeile: steht diese Option jedoch in der /etc/fstab, dann wird diese Partition automatisch gemountet.  
 
 
|-
 
|-
| defaults
+
| <code>auto</code> / <code>noauto</code> || bei <code>mount -a</code> (und beim Booten) mit einhängen oder nicht
| Benutzt automatisch die Optionen dev,suid,rw,exec,auto,nouser
 
 
|-
 
|-
| dev
+
| <code>exec</code> / <code>noexec</code> || Ausführen von Programmen erlauben oder verbieten
| Gerätedateien werden interpretiert
 
 
|-
 
|-
| exec
+
| <code>suid</code> / <code>nosuid</code> || SUID-/SGID-Bits beachten oder ignorieren
| Starten von Binaries erlaubt
 
 
|-
 
|-
| noatime
+
| <code>dev</code> / <code>nodev</code> || Gerätedateien interpretieren oder nicht
| Die Zugriffszeit nicht updaten (Geschwindigkeitsgewinn)
 
 
|-
 
|-
| noauto
+
| <code>user</code> / <code>nouser</code> || auch normalen Nutzern das Einhängen erlauben oder nur root
| Die Partition wird nicht automatisch gemountet (Das Gegenteil zu "auto").
 
 
|-
 
|-
| nodev
+
| <code>atime</code> / <code>noatime</code> || Zugriffszeit bei jedem Lesen aktualisieren oder nicht (<code>noatime</code> bringt Tempo)
| Gegenteil zu dev
 
 
|-
 
|-
| noexec
+
| <code>remount</code> || bereits eingehängtes Dateisystem mit neuen Optionen neu einhängen
| Gegenteil zu exec
 
 
|-
 
|-
| suid
+
| <code>loop</code> || eine Image-Datei über ein Loop-Gerät einhängen
| Erlaubt das Setzen von suid-Bits.
 
 
|-
 
|-
| nosuid
+
| <code>bind</code> || ein Verzeichnis zusätzlich an einer zweiten Stelle einblenden
| Das Gegenteil zu suid
 
 
|-
 
|-
| nouser
+
| <code>acl</code> || POSIX-ACLs aktivieren
| Die Partition darf nur von root gemountet werden
 
|-
 
| user
 
| Die Partition darf von jedem gemountet werden
 
|-
 
| remount
 
| Ein gemountetes Dateisystem unmounten und wieder mounten; wird oft zum Ändern der Optionen benutzt
 
|-
 
| ro
 
| Die Partition wird nur lesbar gemountet
 
|-
 
| rw
 
| Die Partition kann auch beschrieben werden
 
|-
 
| loop
 
| Zum Mounten eines Loopbackdevices
 
|-
 
| bind
 
| Ermöglicht das erneute Einbinden eines Verzeichnisses an einem anderen Ort im Dateisystem, wodurch es an beiden Stellen gleichzeitig sichtbar ist
 
 
|}
 
|}
 +
 +
==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=
* setzt das aufgesetzte Dateisystem des mit der Gerätedatei verbundenen Gerätes von dem Verzeichnis ab.
 
* Beispielsweise sollte ein USB-Stick erst auf diese Weise abgesetzt werden, bevor abgezogen wird.
 
* umount führt automatisch einen sync Befehl zur Sicherung aller im Cache gehaltenen Daten aus.
 
* Weil das eine Weile dauern kann, ist es von großer Wichtigkeit mit dem Herausnehmen einer Diskette so lange zu warten, bis der Schreibvorgang beendet ist.
 
* umount kann nur inaktive Dateisysteme absetzen.
 
* Das bedeutet, daß kein anderes Dateisystem auf dem abzusetzenden System aufgesetzt sein darf, und daß kein Prozeß ein Verzeichnis des abzusetzenden Systems als Arbeitsverzeichnis benutzen darf.
 
* Insbesondere darf sich kein Benutzer in dem abzusetzenden Dateisystem aufhalten.
 
* Andernfalls wird eine Meldung der Form ...device busy ausgegeben.
 
  
{| Border=1 Cellpadding=2
+
<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  
+
 
! Erklärun
+
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>.
| -a
+
 
| setzt alle in /etc/fstab aufgeführten Devices ab (auch das Root-Filesystem)
+
==Optionen==
 +
 
 +
{| class="wikitable"
 +
! Option !! Wirkung
 
|-
 
|-
| -v
+
| <code>-a</code> || alle in <code>/etc/fstab</code> aufgeführten Dateisysteme aushängen
| Verbose Mode
 
 
|-
 
|-
| -t Typ
+
| <code>-t TYP</code> || nur Dateisysteme des angegebenen Typs aushängen
| setzt nur Dateisysteme vom Typ ab. Beschreibung des Parameters Typ ist beim Kommando mount zu finden.
 
 
|-
 
|-
| -l lazy
+
| <code>-l</code> || ''lazy'': den Mount sofort aus dem Baum nehmen, den Datenträger aber erst freigeben, wenn der letzte Zugriff endet
| ermöglicht das Zurücksetzen der Dateisysteme in einem umount-Befehl in einer nicht-reihenfolge.
 
 
|-
 
|-
 +
| <code>-v</code> || ausführliche Ausgabe
 
|}
 
|}
==Beispiele==
+
 
;Umount des Devices
+
==Aushängen – über Gerät oder Mountpunkt==
*mount -t ext3 /dev/sdb3 /mnt/
+
Beides ist möglich und tut dasselbe. Über das Gerät:
*umount /dev/sdb3
+
*umount /dev/sdb1
;Umount des Verzeichnisses
+
 
*mount -t ext3 /dev/sdb3 /mnt/
+
Oder über den Mountpunkt:
*umount /mnt/
+
*umount /mnt
;Es kann kein Device umountet werden auf das zugegriffen wird
+
 
*umount /dev/sdb3
+
=Wenn das Aushängen hängt: „device is busy"=
umount: /mnt: device is busy.
+
 
        (In some cases useful info about processes that use
+
Belegt ein Prozess das Dateisystem, verweigert <code>umount</code> den Dienst:
          the device is found by lsof(8) or fuser(1))
+
 
 +
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=
 +
 
 +
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.