von : Dr. Suse
PROBLEM:
Stecken wir einen USB-Stick oder eine Festplatte in den USB-Port, weist die Suse an Hand des Gerätenamens einen beliebigen Mountpunkt unterhalb des Verzeichnisses /media zu. Leider ist die Reihenfolge nicht immer die Gleiche, wenn man mehrere Geräte anstöpselt. Auch wechseln die Verzeichnisnamen ( Mountpunkte).Das lässt sich ändern und zwar in dem man eigene Regeln definiert um immer die gleichen Bedingungen zu haben. Wie das geht folgt nun hier.
Ausgangszenario:[/u]
Wir haben einen USB-Stick und zwei externe USB-Festplatten mit jeweils einer Partition und benutzen openSUSE_10.xx oder 11.0 mit KDE 3.5.x Desktop
Voraussetzung:
Alle USB-Geräte vom Rechner abziehen!!
Nun stellen wir erst mal sicher, dass die Pakete hal und dbus installiert und aktiviert sind z.B. per yast, sowie der MidnightCommander installiert ist ( mc ). Anschließend in yast->System->Runleveleditor->Expertenmodus prüfen, ob Hal und Dbus läuft. Falls nicht, diese Dienste in Runlevel 2 , 3 und 5 aktivieren und die Änderung speichern.
Nächster Schritt:[/u]
Eine Konsole öffnen
und mittels
su - ENTER
DAS ROOOTPASSWORT EINGEBEN ENTER
Rootrechte erlangen
Nun legen wir uns erst mal ein paar Verzeichnisse an, wohin die
USB-Geräte gemountet werden ( Mountpunkte )und setzen anschließend die richtigen Zugiffsrechte darauf.
Tippe nun ein:
cd / ENTER
mkdir /media/usbstick ENTER
mkdir /medie/usbplatte1 ENTER
mkdir /media/usbplatte2 ENTER
Nun setzen wir die Rechte auf die angelegten Verzeichnisse
chown -R root:users /media ENTER
chmod -R 0775 /media ENTER
Jetzt legen wir uns eine Datei an, in die wir gleich unsere eigenen Regeln definieren.
Tippe:
touch /etc/udev/rules.d/50-meineusb.rules ENTER
Der Befehl touch erzeugt eine leere Textdatei, die man mit einem Editor seiner Wahl mit Leben füllen kann. Wir werden dazu mcedit aus dem Midgnight Commander Paket benutzen. Aber dazu gleich mehr.
Zuerst gilt es die Seriennummer des USB-Sticks, bzw. der USB-Laufwerke herauszufinden. Dazu hat die Suse ein hilfreiches Tool namens udevmonitor (bis openSUSE10.2) an Bord, ab 10.3 ist es udevadm. Starten wir diesen.
openSUSE_10.2
udevmonitor ENTER
openSUSE ab Version 10.3
udevadm monitor ENTER
Außer einer kurzen Statusausgabe passiert erst mal nichts.
Sieht dann so aus:
udevmonitor will print the received events for:
UDEV the event which udev sends out after rule processing
UEVENT the kernel uevent
Nun stecken wir den USB-Stick ein, und siehe da, es werden eine Menge Infos angezeigt. Uns interessiert nur das Device in der vorletzten Zeile z.B.
UDEV [1215957571.562477] add /block/sda (block)
sda merken wir uns an dieser Stelle. Sollte es sdb , sdc oder auch hda, hdb , bzw. bei externen DVD Laufwerken sr sein dies an der entsprechenden Stelle im nachfolgenden Befehl singemäss ersetzen. Mit
bis openSUSE_10.2
udevinfo -a -p `udevinfo -q path -n /dev/sda` | grep ATTRS{serial}
ab openSUSE_10.3
udevadm info -a -p `udevadm info -q path -n /dev/sda` | grep ATTRS{serial}
ermitteln wir nun die Seriennummer unseres USB Sticks.
Die Ausgabe sieht dann wie folgt aus:
ATTRS{serial}=="660550912222"
ATTRS{serial}=="0000:00:02.2"
Die Seriennummer unseres USB-Sticks ist die Erste und die brauchen wir im nächsten Schritt.
Nun öffnen wir mit mcedit unsere oben angelegte Textdatei und füllen diese mit Leben.
mcedit /etc/udev/rules.d/50-meineusb.rules ENTER
Jetzt kann man sich eine eigene udev Regel erstellen. Hinweis: udev arbeitet die Dateien in alphabetischer Reihenfolge ab. In die Datei trägt man nun folgendes ein:
SUBSYSTEMS=="usb", ATTRS{serial}=="660550912222", KERNEL=="sd*", SYMLINK+="usbstick%n"
------------------------
Hinweis: serial: Die Nummer natürlich durch die eigene ermittelte Nummer ersetzen. Kernel==" " entweder sd, sr oder hd einsetzen, siehe oben.
Nun mit der Taste F2 die Änderung speichern un den Editor mit F10 wieder verlassen. Jetzt noch die udev Regeln neu laden.bis openSUSE_10.2
udevcontrol reload_rules ENTER
ab openSUSE_10.3
udevadm control --reload_rules
Udev sollte jetzt beim Einstöpseln (vorausgesetzt der Stick enthält eine Partition) zwei Symlinks, die auf das "reale" Device zeigen, im Verzeichnis /dev erstellen. usbstick für den Stick an sich und usbstick1 für die (erste) Partition. Dies kann und solle man mit einem Dateimanager überprüfen. Ab jetzt kann über diese Links auf den Stick zugegriffen werden. Enthält der Stick mehr als eine Partition wird für jede ein eigener Link mit der Partitionsnummer angelegt, wie bei einer Festplatte auch.
zum Beispiel:
/dev/usbstick
/dev/usbstick1
/dev/usbstick2
Das war es fast. Unsere Suse benennt nun den usbstick nicht mehr beim ursprünglichen Devicenamen sda, sondern nimmt unseren in der
udevregel festgelegten Namen usbstick. Die eindeutige Identifizierung erfolgt über die Seriennummer.
Nun brauchen wir noch eine Regel in der Datei /etc/fstab, welche die Partititonsregeln beherbergt, um unseren Stick auch in das gewünschte Verzeichnis einzuhängen ( zu mounten ).
Bemühen wir wieder unseren Editor und geben ein:
mcedit /etc/fstab ENTER
Am Ende der Datei hängen wir nun folgende Befehlszeile an:
/dev/usbstick1 /media/usbstick auto noauto,rw,users,umask=0000 0 0
und speichern dies wieder per F2
Was noch fehlt ist nun ein Desktopicon für die bequeme Handhabung des USB-Sticks per Mausklicks.
Dazu einen Rechtsklick auf den Desktop tätigen ->Neu erstellen->Verknüpfung zu Gerät->Festplatte
auswählen
In das Feld, wo nun blau hinterlegt das Wort Festplatte steht, tragen wir USBSTICK ein. Nun noch ein Klick auf den Reiter Gerät und aus der Tabelle /dev/usbstick1 /media/usbstick auswählen. Das Ganze mit einem Klick auf Ok beenden.
Nun kann man bequem durch Linksklick auf das Icon den Stick ins Dateisystem einhängen,den Inhalt ansehen, damit arbeiten und mit einem Rechtsklick auf das Symbol z.B. den Stick auch wieder aus dem Dateisystem entfernen ( Laufwerkseinbindung lösen ).
Mit weiteren Laufwerken wird sinngemäß verfahren.
Have Fun