Das Geheimnis der Mountpunkte
ArticleCategory:
UNIXBasics
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or
http://homepage]
original in en Guido Socher
AboutTheAuthor:[A small biography about the author]
Guido mag Linux wegen der Leute.
Es ist ein riesiges Projekt und irgendwie arbeiten alle Leute um
die Welt herum auf dasselbe Ziel zu: Linux jeden Tag ein bischen besser
zu machen.
Linux ist leider jetzt so gro�, da� es auch die "B�sen" anzieht.
Leute, die nur Profit machen wollen und nichts zur�ckgeben.
Passt auf! Oft tauchen sie als kleines Unternehmen "f�r Linux" auf,
aber es sind eigentlich nur Opportunisten.
Abstract:
Dieser Artikel erkl�rt das Konzept der Mountpunkte, aber ich hoffe,
da� dieser Artikel auch einige Informationen hat, die f�r erfahrene Linuxbenutzer interessant sind.
ArticleIllustration:
ArticleBody:
Einf�hrung
Ich werde zuerst das Konzept des Mountens eines Dateisystems erkl�ren
und dann auf kompliziertere Funktionen eingehen. Wenn du meinst,
dass du dich schon gut mit Linux auskennst, kannst du den ersten Teil
�berspringen.
So funktioniert's
Unter Windows hat man bis heute das Problem, da� das Hinzuf�gen
eines neuen Laufwerkes die ganzen Namenskonventionen durcheinander
bringt. Was mal Laufwerk D: war, ist pl�tzlich E: und Benutzer wie
Software kommen durcheinander.
Unter Unix wird man diese Problem nie haben, da alle Platten
in den Verzeichnisbaum integriert sind. Man kann das sehen,
wenn man "mount" oder "df" tippt:
# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/hda1 9070728 4701180 3908768 55% /
/dev/hda3 24950428 683412 22999584 3% /home
none 257236 0 257236 0% /dev/shm
# mount
/dev/hda1 on / type ext3 (rw)
none on /proc type proc (rw)
none on /dev/shm type tmpfs (rw)
/dev/hda3 on /home type ext3 (rw)
|
Hier haben wir zwei Partitionen, eine davon enth�lt alles au�er
/home. Das ist die "root" Partition "/" und diese Partition ist
physikalisch mit hda1 verbunden. hda1 ist die erste Partition (1)
auf der ersten IDE-Platte (hda). Die dritte Partition (hda3) auf derselben Platte ist mit /home verbunden. Wenn man also nach /home geht,
dann greift man auf Dateien in hda3 zu. Man muss sich niemals Gedanken machen,
ob das jetzt D: oder E: oder ?? ist. Es ist immer ein Verzeichnis und
es bleibt immer gleich.
Das filesystem busy Problem
Linux puffert die Schreib- und Leseoperationen. Man merkt das, wenn
man ein USB-Key-Laufwerk mit Usb Version 1.1 benutzt und auf eine
gro�e Datei zugreift. Das erste Mal ist der Zugriff langsam, aber
beim zweiten Mal geht es sehr schnell und die Lampe am Laufwerk
leuchtet nicht.
Wegen dieser Funktion kann man die USB-Platte nicht einfach
entfernen. Man muss sie erst un-mounten. Bei normalen internen
Platten ist das nie ein Problem, aber es kann zu Problemen bei
USB und CDROM Laufwerken f�hren.
Wenn man z.B einen USB-Key unter /mnt/usb mountet und dann
"cd /mnt/usb" tippt, dann benutzt Bash dieses Dateisystem.
Versucht man nun aus einem anderen Shellfenster den USB-Key
zu unmounten (umount /mnt/usb), dann bekommt man die Fehlermeldung
"file system busy". Ein einfaches "cd" aus dem /mnt/usb Verzeichnis
heraus reicht aus und umount wird funktionieren. Manchmal hat
man jedoch vergessen, welche Shell oder welches Progamm das Dateisystem
noch benutzt. Frag deinen Computer! Er kann dir sagen, warum umount
nicht geht:
# fuser -m -u /mnt/usb
/mnt/usb: 1347c(root) 1348c(guido) 1349c(guido)
Der fuser Befehl zeigt eine Liste von Prozessen, die noch ein Dateisystem benutzen. Nun kann man mit "ps auxw" checken, was das f�r Prozesse
sind oder man kann sie mit kill einfach beenden. Danach wird
umount funktionieren.
Aber Windows kann's!?
Warum nicht einfach den USB-key rausziehen? Nun, alte dos/win3.1
Computer konnte man einfach ausschalten. Ein Herunterfahren
war nicht n�tig. Zu dieser Zeit beschwerten sich oft meine Freunde, da�
man Linux erst herunterfahren mu�. Als Win95 kam, war das Problem
gel�st, denn die Leute hatten sich an das Herunterfahren gew�hnt.
Linux kann es auch!
Es gibt auch L�sungen f�r Linux, mit denen man einfach die Platte (USB-Key)
rausziehen kann. Mandrake Linux hat etwas, das sich supermount
nennt und es liefert genau die gleichen Funktionen (oder Probleme) wie
Windows. Ich kann supermount nicht empfehlen, da es zu Instabilit�ten
und Verlust von Dateien f�hren kann.
Es ist besser mtools (http://mtools.linux.lu/) zu benutzen.
mtools bietet Befehle, um auf Disketten, USB-Keys .... , im Prinzip jedes
Medium mit FAT Dateisystem, zuzugreifen, ohne das Dateisystem
zu mounten.
... und so geht's:
-
Editiere /etc/mtools.conf und f�ge folgende Zeile hinzu:
drive u: file="/dev/sda1" # or sda4; some usb-stick have partition
# 4 created as factory default.
- Nun mountet man /dev/sda1 nicht, sondern benutzt einfach:
mdir u:
um zu sehen, welche Dateien sich auf dem USB-Key befinden
mcopy * u:
um alle Dateien aus dem augenblicklichen Verzeichnis auf
den USB-Key zu kopieren.
mcopy u:\* .
um alle Dateien von dem USB-Key in das augenblickliche Verzeichnis
zu kopieren (beachte den "\" vor der Wildcard).
Die mtools sind sehr einfach zu benutzen.
Jedem die Erlaubnis geben, eine Dateisystem zu mounten
Normalerweise mu� man root sein, um ein Dateisystem zu mounten.
F�r Cdrom-Laufwerke und USB-Keys macht es aber Sinn, einem normalen
Benutzer die Rechte f�r mount/umount zu geben. Alles was man dazu
machen mu�, ist eine Zeile wie die folgende in /etc/fstab einzutragen:
# dev mount point fs type flags
/dev/sda1 /mnt/usb auto noauto,user 0 0
Diese Zeile sagt, da� sda1 (die erste Partition auf der ersten SCSI
Platte, USB Storage Platten werden als SCSI Platten abgebildet) nicht
automatisch beim Booten gemountet werden soll (noauto) und kann von
jedem (user) ge-mountet/umounted werden. Das FS-type Feld steht auf
auto, so da� man vfat, ext2 oder andere Dateisysteme mounten kann,
ohne etwas zu �ndern.
Laptops und nfs
Das Netzwerkdateisystem NFS ist wirklich gut, wenn man ein
zentrales Backup von home-Verzeichnisen unterschiedlicher
Benutzer haben m�chte. Alles, was man dazu machen muss, ist
das /home Verzeichnis von einem zentralen NFS-Server zu mounten
und alle Benutzer haben Zugriff auf ihre Konfiguration und ihre
Daten von jedem Rechner im Netzwerk.
Was macht man aber mit mobilen Benutzern, die einen Laptop haben?
Keine backups?
Wenn man nicht mehr mit dem Netzwerk verbunden ist, dann ist auch
das home-Verzeichnis weg. Eine L�sung ist, mit rsync immer alle
Daten zu kopieren, aber das kann schnell zu Inkonsistenzen f�hren,
wenn man nicht wirklich diszipliniert ist. Oft braucht man unterwegs
nicht alle Daten. Ich finde es eine gute L�sung, ein zweites kleines
home-Verzeichnis zu haben, wo nur die Daten sind, die man unterwegs
braucht.
Wenn man ein Dateisystem (Platte oder NFS) an einem Verzeichnis,
das nicht leer ist, mountet, dann wird der Inhalt des Verzeichnises
unsichtbar und man sieht nur noch das gemountete Dateisystem.
Die L�sung sieht also so aus: Man erzeugt einen Mountpunkt f�r home
(mkdir /home) und legt in diesem Verzeichnis einen Softlink (ln -s) an,
der f�r den Benutzer, dem der Laptop geh�rt, auf das home-Verzeichnis
f�r unterwegs zeigt:
/home/guido -> ../home_nonet/guido
Wenn der Benutzer guido im Netzwerk ist, dann wird er sein normales
home-Verzeichnis benutzen und der Softlink ist unsichtbar. Ist er
unterwegs, dann sieht er /home_nonet/guido als /home/guido.
Eine elegante L�sung.
Zusammenfassung
Einen Abstraktionslayer f�r die Hardware zu bauen, war immer
eines der Ziele von Unix. Mit mount/umount hat man das f�r
Dateisystem erreicht. Eine wirklich fortschrittliche und moderne Idee,
obwohl Unix viel �lter ist als andere moderne PC Betriebssyteme.