Mounten E-Mail
Geschrieben von: tpm   

Um ein blockorientiertes Gerät oder seine Partition in einem Linux System nutzen zu können, muss es eingebunden werden. Diesen Vorgang nennt man Mounten. Das geniale an diesem System ist, dass es im laufenden Betrieb vorgenommen werden kann und die Partitionen in nahezu jede beliebige Ordner eingebunden werden können.

 

Wichtig zu wissen ist, dass blockorientierte Geräte (bspw. Festplatte) immer in Verzeichnisse gemountet werden und dass die Angabe des Dateisystems erfolgen sollte.

Als Beispiel soll hdc1, formatiert mit ext2, gemountet werden. Nachdem nun bekannt ist welche Partition gemountet werden soll, muss man sich noch entscheiden wohin diese Partition nun gemountet werden soll, also ihren Mountpoint. In diesem Fall soll der Datenträger als Datenspeicher für einen FTP-Server dienen. Als Verzeichnis wird /var/ftp/ gewählt:

 

input
mount -t ext2 /dev/hdc1 /var/ftp

 

Völlig unspektakulär steht man nach der Ausführung des Befehls wieder an der Eingabeaufforderung. Das ist auch richtig so wenn keine Fehler auftreten. Um dennoch zu prüfen ob alles wie geplant durchgeführt wurde, gibt es mehrere Methoden:

 

input
mount

 

output
/dev/hda2 on / rype ext2 (rw)
proc on /proc type proc (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode620)
ubsfs on /proc/bus/usb type usbfs (rw)
/dev/hdc1 on /var/ftp type ext2 (rw)

 

oder alternativ...

 

input
df -h

 

output
Filesystem         1K-blocks      Used  Available  Use%  Mounted on
/dev/hda2 7825096 2174696 5252896 30% /
/dev/hda1 19623156 20 18626308 1% /var/ftp

 

Damit ist belegt, dass der Mountvorgang so durchgeführt wurde wie geplant. Letztendlich müssen noch die Rechte angepaßt werden. Es empfielt sich dazu unterhalb von /var/ftp/ weitere Ordnerstrukturen anzulegen und deren Dateirechte und Besitzrechte anzupassen.

Zwei weitere gängige Datenträger sind Disketten und CD-ROMs. Das Verfahren zum Mounten ist völlig analog zu dem der Festplatten. In diesen Beispielen soll als Mountpoint /mnt/floppy/ für Disketten und /mnt/cdrom/ für CD gewählt werden, wobei das CD-ROM Laufwerk als Slave Device am Primary Controller angeschlossen ist.

 

input
mount /dev/fd0 /mnt/floppy

 

input
mount -t iso9660 /dev/hdb /mnt/cdrom

 

Der Zugriff auf die jeweiligen Datenträger erfolgt bei der Diskette über das Verzeichnis /mnt/floppy/ und bei der CD-ROM über das Verzeichnis /mnt/cdrom/.

Solange ein Laufwerk gemountet ist, darf man das darin befindliche Medium nicht entnehmen. Bei der Festplatte ginge dies ohnehin nicht und bei einem CD/DVD Laufwerk ist die Auswurftaste deaktiviert. Aber bei der Diskette würde das entnehmen funktionieren. Diesen Hinweis deshalb immer im Hinterkopf behalten, weil die Diskette sonst beschädigt werden kann.

Das Auslösen, also umounten eines Block-Devices ist ebenso unspektakulär wie das mounten. Der einfache Befehl umount, gefolgt vom Mountpoint genügt:

 

Für die oben eingebundene Festplatte...

input
umount /var/ftp

 

für die Diskette...

input
umount /mnt/floppy

 

Für das CD-ROM...

input
umount /mnt/cdrom

 

Es kann vorkommen, dass einem die Durchführung des umount Befehls vom System verweigert wird. Gründe dafür wären:

  • Man befindet sich noch in dem Verzeichnis, in welches das Block-Device gemountet wurde.
  • Andere Programme haben noch Zugriff auf das Verzeichnis.

Nun möchte man gerade Festplatten, respektive deren Partitionen nicht jedesmal manuell mounten müssen, wenn sie ohnehin ständig im System verfügbar sein sollen. Dazu gibt es im Linux-System die Datei /etc/fstab. Diese dient zum einen dazu um Defaultwerte für Devices zu definieren, zum anderen kann man mit entsprechenden Optionen Devices automatisch beim Start mounten lassen.

 

example
Spalte |1             |2           |3         |4                |5  |6
-------+--------------+------------+----------+-----------------+---+-
/dev/hda1 swap swap defaults 0 0
/dev/hda2 / ext2 defaults 1 1
/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0

 

Zu mountendes Device, gefolgt vom Mountpoint und dem Dateisystem, wobei auto für automatische Erkennung des Dateisystems steht. In der vierten Spalte stehen dann folgende gängige Mountoptionen.

  • auto/noauto = Gibt an, ob das Device beim booten automatisch gemountet werden soll oder nicht.
  • user/nouser = Gibt an, ob normale Benutzer das Device mounten dürfen.
  • exec/noexec = Gibt an, ob Programme von der Partition ausgeführt werden dürfen oder nicht.
  • ro/rw = Gibt an, ob das Device nur im Lese- oder auch im Lese-/Schreibmodus gemountet werden soll.
  • sync/async = Gibt an ob I/O Vorgänge beim Ausführen einer Prozedur durchgeführt werden oder danach.
  • defaults = rw, exec, noauto, user, async

Es gibt noch eine ganze Reihe an weiteren Optionen, wie beispielsweise die Festlegung von Quotas bei ext-Dateisystemen, welche Benutzern oder Gruppen Festplattenspeicher zuweisen. In Spalte 5 wird angegeben, ob ein Backup erzeugt werden soll. 0 = Nein, 1 = Ja.

In Spalte 6 wird angegeben, ob fsck ein Filesystemcheck beim Reboot durchführen soll. 0 bedeutet in diesem Fall
ebenfalls Nein. Eine 1 bedeutet Ja, bezieht sich aber explizit auf das Dateisystem der Root Partition. Würden weitere Partitionen mit anderen Dateisystemen wie beispielsweise ext3 oder reiserFS gemountet, sollte man 2 oder höher wählen. Dabei sollte immer darauf geachtet werden, dass jedes Dateisystem eine eigene Nummer erhält.

 

Um nun die Partition hdc1 schon beim Systemstart automatisch zu mounten, fügt man die im unteren Bild dargestellte Zeile einfach hinzu. Ein schneller Weg wäre über den Befehl cat die Zeile anzufügen ( >> ) und dies direkt darauf mit selbigem Befehl zu prüfen:

 

input
cat "/dev/hdc1    /var/ftp   ext2     defaults       1   1" >>/etc/fstab && cat /etc/fstab

 

output
/dev/hda1      swap         swap       defaults          0   0
/dev/hda2 / ext2 defaults 1 1
/dev/cdrom /mnt/cdrom auto noauto,owner,ro 0 0
/dev/fd0 /mnt/floppy auto noauto,owner 0 0
devpts /dev/pts devpts gid=5,mode=620 0 0
proc /proc proc defaults 0 0
/dev/hdc1 /var/ftp ext2 defaults 1 1

 

Damit wird die Partition /dev/hdc1 beim Booten automatisch in das Verzeichnis /var/ftp gemountet.

Zuletzt aktualisiert am Montag, den 15. November 2010 um 10:38 Uhr