SelfLinux » Basiskonzepte für Benutzer » Zugriffe auf Laufwerke » Teil 2 SelfLinux-0.8.0
« zurück weiter »
SelfLinux logo
OrdnerZugriffe auf Laufwerke Revision: 1.1.2.6
Autor: Rüdiger Pretzlaff
Layout: Matthias Hagedorn
Lizenz: GFDL

3 fstab für die Arbeitsteilung

Damit man schnell Geräte an festgelegten Stellen einhängen kann, kann man sich die Arbeit erleichtern. Wie schon oben gesehen funktioniert die Zeile mount /mnt/cdrom nicht immer. Damit immer wieder kehrende Geräte und Mountpoints nicht komplett eingegeben werden müssen, kann man sich die Datei fstab zu Hilfe nehmen.

fstab

user@linux ~/ $ cat /etc/fstab
LABEL=/      /             ext3    defaults           1 1
LABEL=/boot  /boot         ext3    defaults           1 2
none         /dev/pts      devpts  gid=5,mode=620     0 0
none         /proc         proc    defaults           0 0
none         /dev/shm      tmpfs   defaults           0 0
/dev/hda2    swap          swap    defaults           0 0
/dev/fd0     /mnt/floppy   auto    noauto,owner,kudzu 0 0

Um das CDROM-Laufwerk jetzt immer auf /mnt/cdrom mounten zu können mit

user@linux ~/ $ mount /mnt/cdrom

oder

user@linux ~/ $ mount /dev/cdrom

tragen Sie einfach folgende Zeile in die Datei fstab ein:

Datei fstab
/dev/cdrom   /mnt/cdrom   iso9660 noauto,owner,kudzu,ro 0 0
    
    

Dies können Sie mit einem einfachen Editor wie vi machen.

user@linux ~/ $ vi /etc/fstab
(Speichern in vi mit 'ESC gefolgt von :w')


4 Rechte - Wer darf mounten.

Auf Produktiv-Systemen wird das mounten nur root gestattet. Auf Systemen, die weniger sicherheitsrelevant sind, können auch normale Benutzer mounten. Dort aber meistens auch nur Disketten-Laufwerke und CDROM-Laufwerke.

Optionen

Der befehl mount ist in der Beschreibung wie folgt angegeben:

mount [option] Gerät Verzeichnis.

Die Option -t gibt den Typ des Dateisystems an. Für CDROM wird das Standardformat ISO9960 verwendet. Disketten haben meistens das minix-Dateisystem und dann gibt es noch

DOS CDROM = -t iso9960
Unix Disketten = -t minix
Dos Disketten = -t msdos.

Das sollte hier erst einmal reichen. Später komme ich auf diese Option noch einmal zurück, wenn es darum geht, auf Windows FAT32 Partitionen zuzugreifen.

Zusätzliches zu CDROM-Laufwerken.

Oben wurde /dev/cdrom erwähnt. Dies kann bei den meisten Systemen ohne Bedenken benutzt werden. Dies sind bei den meisten Verweise auf die richtigen Geräte. Ein CDROM-Laufwerk (ATAPI) ist zu sehen wie ein Festplatte, von dem Gerätenamen her. Bei einer Festplatte baut sich der Name wie folgt auf: hda1, also 1. Harddisk 1. Partition. Siehe oben. Bei einem CDROM-Laufwerk verhält sich dies genauso. Wenn jetzt das CDROM am IDE am Slave hängt, heißt das Gerät hdb. Zum Mounten nehmen wir also /dev/hdb.

Zusammengefasst heisst es also:

  • Mounten mit dem befehl mount.
  • Angabe des Dateisystems mit der Option -t
  • Name des Gerätes /dev/hdx (wobei x für den Port steht) bzw. /dev/cdrom
  • Das Verzeichnis in dem das Gerät in das Dateisystem eingehangen werden soll.
user@linux ~/ $ mount -t iso9960 /dev/cdrom /mnt/cdrom

Verzeichnisse, in die das Medium eingehängt werden soll.

Grundsätzlich kann man jedes Verzeichnis nehmen. Sogar ein Verzeichnis, welches nicht leer ist. Die ursprüglichen Daten werden dann nur nicht angezeigt, sondern nur die, die sich auf dem eingehängten Gerät befinden. Daten, die in dem Verzeichnis sind, sind aber nicht weg oder gar gelöscht, sondern werden nach dem Entfernen des Gerätes (mit umount) wieder sichtbar.

Bei der Wahl des Verzeichnisses muß nur beachtet werden, daß es keine Probleme mit den Rechten gibt. So könnte es passieren, daß ein Verzeichnis von root angelegt, und eine Partition auf dieses Verzeichnis gemountet wurde. Jetzt kommt ein normaler Benutzer und möchte Daten dort lesen oder ablegen. Er wird keinen Zugriff erhalten, da das Verzeichnis von root erstellt wurde und somit root als Besitzer und auch in der Gruppe eingetragen wurde.

Mount wieder lösen und Medium freigeben.

Dazu wird der Befehl umount benutzt. Bei CDROM und Floppy's macht es sich besonders bemerkbar, wenn man es vergisst. Wenn ein CDROM-Laufwerk gemountet ist, wird der eine oder andere schon mal vergeblich den Eject-Knopf gedrückt haben und das Laufwerk gab keine CDROM aus. Dies hat damit zu tun, daß LINUX/Unix von Beginn an ein Multiusersystem ist. Es kann also vorkommen, daß Benutzer A (über SSH von einem entfernten Rechner) und Sie gleichzeitig auf Ihrem System arbeiten. User A benutzt zur Zeit das CDROM-Laufwerk, um von dort Daten zu lesen. Wenn Sie jetzt den Eject-Knopf bestätigen würden, und damit die CDROM entfernen könnten, stünde User A ohne Daten da. Wenn dies gerade ein wichtiges Update ist, welches sich negativ auf das System auswirken könnte, wäre das sehr gefährlich.

Das Diskettenlaufwerk hat auch eine Eigenschaft, wie sie auch bei Festplatten vorhanden ist: Daten, die gelöscht, und/oder auf Diskette/Festplatte geschrieben werden, werden nicht sofort gelöscht/geschrieben. Sie sollten, wenn Sie Daten löschen/schreiben, und sicher gehen wollen, dass alle Daten korrekt verändert wurden, immer umount ausführen. Wie macht sich dies bemerkbar? Bei Disketten ist es am deutlichsten. Folgendes Beispiel:

Auf einer Diskette sollen Dateien kopiert werden, die für einen Kunden sind. Sie kopieren die Daten auf die Diskette. Ein ls zeigt auch wunderbar alle Dateien an. Die Diskette wird aus dem Laufwerk entfernt, ohne umount benutzt zuhaben.

Ergebnis: Beim Kunden ist die Diskette leer. Die Daten wurden noch nicht geschrieben, da dies mit Verzögerung (durch den Cache) bzw. explizit bei umount geschieht.

Um eine Verbindung /dev/cdrom <-> /mnt/cdrom zu lösen, gibt man ein:

user@linux ~/ $ umount /mnt/cdrom

beim Disketten-Laufwerk:

user@linux ~/ $ umount /mnt/floppy


5 Mounten bei KDE und Gnome

Bei den neueren Distributionen geschieht das mounten von CDROM-Laufwerken schon automatisch. Nach dem Einlegen wird dies sofort vom System erkannt und nach den Angaben in /etc/fstab gemountet. Falls die CDROM schon im CDROM-Laufwerk liegt, und diese nun wieder neu gemountet wird, geschieht dies meistens über Symbole auf dem Desktop. Der Benutzer sieht hier nicht mehr, was genau im Hintergrund läuft. Das Ein-/Aushängen funktioniert hier meistens über Doppelklick auf das entsprechende Symbol (beim Einhängen) und öffnet automatisch den Dateibrowser. Beim Unmounten geschieht dies meistens durch Rechtsklick auf das Symbol und im sich anschliessend öffnenden Kontextmenü mit einem Klick auf Gerät aushängen.

Während einer Session im X-Server kann es sehr schnell passieren, daß man irgendwo ein minimiertes Fenster hat, welches noch auf einen Ordner zeigt, in dem auf Daten eines eingehängten Gerätes zugegriffen wird. Ebenso möglich wäre der Fall, daß noch irgendein Programm auf die Daten des Mountpoints zugreift. In dieser Situation wird dann umount verweigert, meist mit einer Meldung der Art device is busy.

Sollte man hier einmal nicht wissen, welcher Benutzer, welches Programm oder wer/was auch immer das Unmounten blockiert, kann man dies mit lsof ermitteln: *

user@linux ~/mnt/cdrom/ $ lsof | grep "cdrom"
bash   6246   root   cwd     DIR     22,0      2048      57344 /mnt/cdrom

Hier blockiert root das Gerät durch seine simple Anwesenheit in der bash im Verzeichnis /mnt/cdrom.

* lsof befindet sich in /usr/sbin/lsof.

Der Benutzer root könnte, falls ein anderer Benutzer das Gerät blockiert, diesen von dort verjagen. Aber das gehört in einen anderen Bereich.


« zurück weiter »
Inhalt