Vielleicht ist es Ihnen auch schon passiert: Sie wollen eine CD wechseln, aber das Laufwerk weigert sich in penetranter Weise, Ihrem Wunsch nachzukommen. Es bleibt geschlossen, bis Sie es unmounten. Oder Sie haben kurz etwas auf eine Diskette kopiert und gehen mit dieser an einen anderen Arbeitsplatz. Wenn Sie zurückkommen, lässt sich das Diskettenlaufwerk nicht davon überzeugen, eine neue Diskette zu akzeptieren; nur ein Neustart hilft.
Diese Problematik können Sie mit der hier beschriebenen Installation des Automounters umgehen. Die Standardlösung sieht vor, dass alle Dateisysteme in der Datei /etc/fstab eingetragen werden. Eine typische fstab für einen Arbeitsplatz sieht wie folgt aus:
/dev/hda3 / ext2 defaults 1 1 /dev/hda1 /boot ext2 defaults 1 2 /dev/cdrom /cdrom auto ro,noauto,user,exec 0 0 /devpts /dev/pts devpts defaults 0 0 /dev/fd0 /floppy auto noauto,user 0 0 proc /proc proc defaults 0 0 /dev/hda2 swap swap defaults 0 2
Da Disketten- und CD-ROM-Laufwerk mit dem Parameter “noauto” konfiguriert sind, muss der Anwender diese Laufwerke per Hand einbinden. Es ist sinnvoll, die variablen Dateisysteme automatisch durch den Automounter einbinden zu lassen, wobei die “Grunddateisysteme” (wie /) in der /etc/fstab verbleiben müssen.
Installation
Zuerst müssen die Parameter in der Konfigurationsdatei /etc/rc.config aktiviert werden. Suchen und ändern Sie dafür folgende Zeilen (oder benutzen Sie YaST, Administration des Systems/Konfigurationsdatei verändern):
START_AUTOFS="yes" AUTOFS_OPTIONS="--timeout 5"
Durch diese Einträge wird erreicht, dass der Automounter beim nächsten Systemstart aktiviert wird. Die Timeout-Zeit, hier fünf Sekunden, beschreibt die Wartezeit des Prozesses, bis das Filesystem wieder ausgehängt wird; die Default-Einstellung von 60 Sekunden ist zu lang.
Der Automounter lässt sich (von root) auch per Hand mit dem Befehl rcautofs start starten. Wenn der Prozess läuft, greift er auf die Datei /etc/auto.master zu. In dieser Masterdatei werden folgende Parameter definiert: Der Mount-Point, unter dem das Dateisystem eingehängt werden soll, und der Name einer Konfigurationsdatei, die weitere Informationen über das Filesystem enthält. Eine Masterdatei könnte nun wie folgt aussehen:
/automnt /etc/auto.cd /office /etc/auto.netz -ro
Sie können hier auf mehrere Mount-Points verweisen, die der Automounter kontrollieren soll. Das folgende Beispiel bezieht sich auf die Verwaltung der lokalen Floppy und CD-Laufwerke. Um die Unix-Verzeichnisstruktur nicht unnötig aufzublähen, wird als Mount-Point das vorhandene Verzeichnis /mnt benutzt und kein neues Verzeichnis /automnt angelegt. Daraus ergibt sich für die Datei /etc/auto.master lediglich eine Zeile:
/mnt /etc/auto.local
Die Datei /etc/auto.local, die Sie neu erstellen müssen, hat folgenden Aufbau: Der erste Eintrag ist der Name des Verzeichnisses, das automatisch unterhalb von /mnt angelegt wird, sobald ein Datenträger vorhanden ist. Der zweite Eintrag enthält Optionen wie z. B. den Filesystem-Typ, und der letzte Eintrag gibt die Gerätedatei an.
cdrom -fstype=iso9660,ro :/dev/cdrom floppy -fstype=auto,rw,umask=000 :/dev/fd0
In diesem Beispiel wird /dev/cdrom als Gerätename eingetragen. Es ist natürlich auch möglich, einen Eintrag wie /dev/hdc für die CD zu benutzen. Beide Beschreibungen können eingetragen werden, aber der Eintrag /dev/hdc birgt einige Gefahren: Wenn im Rechner ein zusätzliches Laufwerk installiert wird, kann es zu einer Umbenennung der Geräte kommen. Bei einer festen Einbindung des CD-Laufwerks müssten jetzt alle betroffenen Dateien umgestellt werden; verwenden Sie stattdessen durchgehend den Namen /dev/cdrom, gibt es dieses Problem nicht.
Jetzt sind noch die Einträge für Diskette und CD in der /etc/fstab auszukommentieren – Bitte nicht löschen! Wenn jetzt der Automounter mit rcautofs start gestartet wird und im Verzeichnis /mnt/ ein ls -l eingeben wird, wird dieses Verzeichnis leer sein. Erst wenn Sie unter /mnt in das Verzeichnis ./floppy oder ./cdrom wechseln, wird der Automounter aktiviert und das jeweilige Dateisystem gemountet.
Da SuSE Linux üblicherweise die Verzeichnisse /floppy und /cdrom als Mount-Points verwendet, sollten Sie symbolische Links auf die neuen Mount-Points unterhalb von /mnt anlegen; dazu sind zunächst die alten Verzeichnisse zu löschen; im Anschluss erstellen Sie zwei Links, die diese beiden Verzeichnisse wieder im Root-Verzeichnis verfügbar machen:
rm -f /floppy rm -f /cdrom ln -s /mnt/floppy /floppy ln -s /mnt/cdrom /cdrom
Der Automounter ist damit betriebsbereit (Listing 1). Wenn Sie diesen einmal anhalten wollen oder Änderungen testen möchten, stehen ihnen noch die Befehle rcautofs stop und rcautofs restart zur Verfügung.
KDE2
Wenn Sie auf dem Desktop auf das CD- oder das Floppy-Icon klicken, erscheint die Fehlermeldung, dass das System die Geräte nicht in der /etc/fstab gefunden hat; KDE muss hier noch an Automount angepasst werden. Die beiden Dateien ~/KDesktop/CD-ROM.desktop und $HOME/KDesktop/Floppy.desktop können Sie löschen, da diese Filesysteme in der /etc/fstab auskommentiert wurden. Statt dessen müssen zwei neue Desktop-Shortcuts erstellt werden, die auf die neuen Verzeichnisse zugreifen. Dafür können die alten Namen übernommen werden (siehe Listing 2).
Beachten Sie bitte, dass keine Anwendungen für diese Laufwerke mehr automatisch erstellt werden, wenn neue Benutzer angelegt werden! D. h., dass für jeden neu angelegten Benutzer Listing 2 ausgeführt werden muss.
Es wurden also zwei neue Desktop-Icons erstellt, die den Inhalt des Verzeichnisses mittels Konqueror anzeigen, so wie es der Anwender gewohnt ist. Es gibt hier jedoch zwei Unterschiede: Falls auf die Verzeichnisse zugegriffen werden sollte, wenn kein Datenträger eingelegt ist, wird das $HOME-Verzeichnis angezeigt. Die zweite Änderung ist, dass der Anwender kein geändertes Icon mehr erhält, wenn das Laufwerk gemountet ist.
Das Programm mc
Wenn Sie mit Programmen wie mc arbeiten sollten, werden sie beim Wechsel in das Root-Verzeichnis feststellen, dass beide Laufwerke aktiviert werden. Bei der Floppy ist diese Aktivierung akustisch wahrnehmbar aber normal, da mc versucht, seinen Verzeichnisbaum zu aktualisieren.
Solange keine Datenträger eingelegt sind, erscheinen unter mc Einträge !floppy und !cdrom in rot, um dies zu symbolisieren. Sobald (z. B.) eine Diskette eingelegt und auf den Eintrag !floppy gewechselt wird, wird das Filesystem gemountet. Der Eintrag ändert seine Farbe und Position innerhalb des Verzeichnisbaumes. Bei nochmaliger Betätigung der [Return]-Taste wird der Inhalt der Floppy angezeigt.
yast
Wenn Sie als Administrator nachträglich mit YaST 2 Pakete installieren möchten, kann sich dies etwas hinziehen: YaST 2 greift mehrfach auf das CD-Laufwerk zu, dadurch wird auch mehrfach der Automounter bemüht. YaST (1) hingegen verhält sich unangenehmer; es stürzt ab. Dies passiert, wenn Sie YaST aufrufen, in die Paketauswahl gehen und anschließend warten, bis der Automounter die CD wieder entfernt. Wenn Sie danach mit Yast weiter arbeiten wollen, erleben Sie eine Enttäuschung.
Es bieten sich zwei Lösungen an: Zum einen kann die Timeout-Zeit des Automounters geändert werden, zum anderen kann der Automounter mit rcautofs stop angehalten und die auskommentierten Zeilen für die Laufwerke in der Datei /etc/fstab wieder aktiviert werden. Nach Abschluss der Arbeiten wird die fstab wieder in den Grundzustand versetzt und der Automounter mit rcautofs start erneut aktiviert. Für diese Prozedur können Sie Listing 3 (noautofs) verwenden, etwa in der Form noautofs yast.
Bei den abgedruckten Listings sind in Klammern Vorschläge für die Programmnamen und Zugriffsrechte angegeben.
Listing 1
(makeautofs 700)
# Konfigurationsdatei bearbeiten
cp -p /etc/rc.config /tmp/rc.config
cat /tmp/rc.config | awk '{if (substr($0,1,12) == "START_AUTOFS") /
print "START_AUTOFS=\"yes\"" ; /
else print $0}' > /tmp/rc.config1
cat /tmp/rc.config1 | awk '{if (substr($0,1,14) == "AUTOFS_OPTIONS") /
print "AUTOFS_OPTIONS=\"--timeout 5\"" ; /
else print $0}' > /tmp/rc.config
cp -p /tmp/rc.config /etc/rc.config
# Dateien Automounter erstellen
echo "/mnt /etc/auto.local" > /etc/auto.master
echo "cdrom -fstype=iso9660,ro :/dev/cdrom" > /etc/auto.local
echo "floppy -fstype=auto,rw,umask=000 :/dev/fd0" >> /etc/auto.local
# fstab modifizieren
cp -p /etc/fstab /tmp/fstab
cat /tmp/fstab | awk '{if ($1 == "/dev/cdrom") print "# "$0; /
else print $0}' > /etc/fstab
cp -p /etc/fstab /tmp/fstab
cat /tmp/fstab | awk '{if ($1 == "/dev/fd0") print "# "$0; /
else print $0}' > /etc/fstab
# Verzeichnisse erstellen
rm -r /floppy
rm -r /cdrom
ln -s /mnt/floppy /floppy
ln -s /mnt/cdrom /cdrom
# Automounter straten
rcautofs start
Listing 2
(makeiconfs 755)
TMP1=$HOME/KDesktop/Floppy.desktop
TMP2=$HOME/KDesktop/CD-ROM.desktop
rm $TMP1
rm $TMP2
echo "[Desktop Entry]" > $TMP1
echo "Comment[de]=Inhalt der Floppy anzeigen" >> $TMP1
echo "Exec=konqueror file:/floppy" >> $TMP1
echo "Icon=3floppy_unmount" >> $TMP1
echo "Name[de]=Floppy" >> $TMP1
echo "[Desktop Entry]" > $TMP2
echo "Comment[de]=Inhalt der CD anzeigen" >> $TMP2
echo "Exec=konqueror file:/cdrom" >> $TMP2
echo "Icon=cdrom_unmount" >> $TMP2
echo "Name[de]=CD-ROM" >> $TMP2
for TT in $TMP1 $TMP2
do
echo "MimeType=" >> $TT
echo "Path=" >> $TT
echo "ServiceTypes=" >> $TT
echo "SwallowExec=" >> $TT
echo "SwallowTitle=" >> $TT
echo "Terminal=false" >> $TT
echo "TerminalOptions=" >> $TT
echo "Type=Application" >> $TT
echo "X-KDE-SubstituteUID=false" >> $TT
echo "X-KDE-Username=" >> $TT
done
chmod 600 $TMP1
chmod 600 $TMP2
Listing 3
(noautofs 700)
# Aufruf "noautofs yast" oder mit einem anderen Programm
# das gestartet werden soll
rcautofs stop
cp -p /etc/fstab /tmp/fstab
cat /tmp/fstab | awk '{if (substr($0,1,12) == "# /dev/cdrom")
print substr($0,3); else print $0}' > /etc/fstab
cp -p /etc/fstab /tmp/fstab
cat /tmp/fstab | awk '{if (substr($0,1,10) == "# /dev/fd0")
print substr($0,3); else print $0}' > /etc/fstab
rm -r /floppy
rm -r /cdrom
mkdir -m777 /floppy
mkdir -m777 /cdrom
command $1
cp -p /etc/fstab /tmp/fstab
cat /tmp/fstab | awk '{if ($1 == "/dev/cdrom") print "# "$0; /
else print $0}' > /etc/fstab
cp -p /etc/fstab /tmp/fstab
cat /tmp/fstab | awk '{if ($1 == "/dev/fd0") print "# "$0; /
else print $0}' > /etc/fstab
rm -r /floppy
rm -r /cdrom
ln -s /mnt/floppy /floppy
ln -s /mnt/cdrom /cdrom
rcautofs start
Glossar
-
gemountet
-
nennt man das Ein- und Aushängen eines Speichermediums (wie Disketten oder Partitionen) in den Linux-Verzeichnisbaum. Wenn kein passender Eintrag in der Konfigurationsdatei /etc/fstab vorhanden ist, kann dieses Einbinden nur durch den Systemadministrator durchgeführt werden.
-
Mount-Point
-
Ein Verzeichnis, unter dem eine Partition oder ein Gerät in den Linux-Verzeichnisbaum “eingehängt” wird.
-
Gerätedatei
-
Unter Linux wird auf Geräte (engl.: Devices) über spezielle Dateien zugegriffen, die im Verzeichnis /dev liegen.
-
Link
-
Verweis auf eine andere Datei. Dieser Eintrag enthält keine eigenen Daten. Daten enthält nur die Datei, auf die über den Link verwiesen wird.

