Automatisches Mounten von Dateisystemen bei SuSE Linux 7.1

Aus LinuxUser 05/2001

Automatisches Mounten von Dateisystemen bei SuSE Linux 7.1

Nie mehr "mount"

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.

Der Autor

Zu Linux kam der Autor mit der SuSE 6.1 Distribution, sofort nach seiner Zertifizierung für Microsoft. Nach einem Studium der Elektrotechnik und den ersten Jahren als Programmierer ist er heute bundesweit als Systemadministrator und in der Projektierung tätig. Zu erreichen ist er unter mailto:g.zander@hamburg.de oder über die Hamburger Microcomputer Hochschulgruppe e.V. (HMH).

LinuxUser 05/2001 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben