Skip to topic | Skip to bottom
Linux.AutodevFbr1.10 - 11 May 2005 - 11:24 - FrankBurkhardt [Zum Ende]

Start of topic | Direkt zum Menü

Einfaches handling tragbarer Medien - autodev-fb

Anleitung für normale Benutzer

Dieser Abschnitt widmet sich einfachen Benutzern, die ein bereits eingerichtetes autodev-fb benutzen wollen/müssen/... .

Sobald ein Wechselmedium an den Computer angeschlossen bzw. in das entsprechende Laufwerk eingelegt wurden, kann man über einen sogenannten Automounter im Verzeichnis /MEDIA drauf zugreifen. Ein automounter ist ein magisches Verzeichnis, dessen Unterverzeichnisse man erst sieht, wenn man auf sie zugreift.

Je nachdem, in welches der Unterverzeichnisse man geht, greift man dann auf das entsprechende wechselmedium zu, wobei man durch die Syntax des Unterverzeichnissnamens noch einige Dinge genauer einstellen kann. Mit einem Hilfsprogramm kann man sich das noch etwas erleichtern:

user@host > media

Hier wird die Liste der im System bekannten Geräte gezeigt. Die storage -Geräte sind dabei eine kleine Ausnahme. Üblicherweise existieren drei davon. Einstellen kann das nur der Administrator. man kann leider nicht zur Laufzeit feststellen, wieviele storage -Geräte es wirklich gibt und welche Nummer diese jeweils haben.

Faustregel: Das erste USB-Speichergerät heisst storage , das zweit storage2 , ... . Dabei wird der Zähler nicht wieder zurückgesetzt, wenn man das Speichergerät wieder entfernt.

Wenn das Wechselmedium gemountet ist, wird der Pfad angezeigt, über den man auf das Gerät zugreifen kann. Wenn man fertig ist, drückt man Return in der media -Anwendung. media wartet nun, bis der Automounter das Gerät abgekoppelt hat (und damit alle Daten sicher gespeichert sind) und gibt dann einen Hinweis aus, dass man das Wechselmedium entnehmen kann.

Autodev-FB kommt auch mit ungewöhnlich formatierten Medien (merkwürdige Partitionierung, ungewöhnliche Dateisysteme, ...) zurrecht. Mehr dazu in den folgenden Abschnitten.

Grundlagen

Die klassische Methode, Wechselmedien unter Linux zu mounten, ist die user -Option in /etc/fstab . Damit wird es einem Benutzer ermöglicht, z.B. eine Floppy oder eine CDROM zu benutzen. Problematisch ist das jedoch immer dann, wenn Computer z.B. in einem Pool von mehreren Anwendern benutzt werden, und der Computer wie z.B. bei einer Floppy das Auswerfen des Wechselmediums nicht unterbinden kann.

autodev-fb benutzt einen Automounter, um Wechselmedien anzusprechen. Der Automounter ist wiederrum an ein Skript gekoppelt, um einige besondere Möglichkeiten zu bieten. Der Automounter arbeitet unter /MEDIA , über die darunter benutzen Verzeichnisnamen können Mountoptionen gesteuert werden. z.B. kann die Partition eines USB-Speichersticks oder auch das zu benutzende Filesystem ausgewählt werden.

So funktionierts:

  • Der Rechner boot, schreibt dabei Meldungen über gefundene Hardware in den Kernel Ring Buffer (-> der Output von dmesg )
  • /etc/init.d/autodev-fb führt das Hardware-Erkennungsskript /usr/sbin/autodev-fb und schreibt Informationen über gefundene Geräte nach /var/lib/autodev-fb. Zusätzlich werden einige Informationen in /var/lib/links abgelegt, die beschreiben, welche gültige Aliase für bestimmte Geräte existieren.
  • Jeder Zugriff auf /MEDIA/* führt jetzt dazu, dass das Skript /usr/sbin/auto.MEDIA zuschlägt und anhand der Informationen in /var/lib/autodev-fb

Namenskonventionen für Wechselmedien

Jeder Name eines Wechselmedium (entspricht der Pfadkomponente hinter /MEDIA/ ), der von autodev-fb erkannt wird, ist in der folgenden Tabelle aufgeführt. Wenn mehrere Geräte eines Types existieren, so wird beim zweiten eine 2, beim dritten ein 3 usw. angehängt.

Gerätename Beschreibung
CD Dieser Name steht für einfache CDROMs - also CD-Laufwerke, die ausschliesslich zum Lesen geeignet sind.
DVD Solche Geräte sind zum Lesen von DVDs und CDROMs geeignet, können jedoch ebenfalls keine Medien beschreiben.
FLOPPY Dieses Gerät wird spekulativ angelegt. Von dieser Geräteart existiert ohne Änderung an /etc/autodev-fb.conf genau eines. Es handelt sich dabei um das Standard-PC-Floppy-Laufwerk (keine USB-Laufwerke, keine SCSI-Floppy-Drives!)
ZIP ZIP-Laufwerke, die entweder per ATAPI oder per SCSI angeschlossen sind, fallen in diese Geräteklasse.
STORAGE Diese Geräteklasse umfasst USB-Massstorage-kompatible Geräte - also z.B. USB-Speichersticks, USB-Cardreader, jedoch auch USB-Festplatten und USB-Storage-kompatible Kameras.
CDWRITER Ein Gerät, dass CDs lesen und beschreiben kann.
WRITER Ein 1:1-Alias auf CDWRITER -Geräte (aus Kompatibilitätsgründen mit alten autodev-fb -Versionen vorhanden)
DVDWRITER Ein Gerät, dass CDs zumindest lesen, DVDs jedoch lesen und beschreiben kann. DVD-RAMs fallen auch in diese Geräteklasse.
CDROM Diese Geräte sind Aliase für sämmtliche Geräte, die in der Lage sind, eine CDs zu lesen. Ein Computer, in den etwas CDROM-ähliches eingebaut ist, stellt also unter /MEDIA/CDROM immer etwas sinnvolles zur Verfügung.

Was ist bei USB-Storage zu beachten?

Der Kernel 2.4 macht es einem nicht einfach, wenn um den Umgang mit USB-Storage-Geräten geht. Die Geräte werden hart durchnummeriert ( beginnend beim ersten freien SCSI-Disk-Device - also z.B: /dev/sda ). Problematisch ist, dass der usb-storage.o -Treiber die SCSI-Geräte nicht wieder freigibt, wenn das entsprechende USB-Gerät entfernt wurde - solange bis man das usb-storage -Modul aus dem Kernel schmeisst und neu lädt.

Daraus folgt, dass man auf das als zweites angesteckte Gerät über ein anderes Blockdevice zugreifen muß, als beim ersten. autodev-fb legt dazu einfach spekulativ mehrere STORAGE -Geräte an. Dabei muss man abwägen zwischen zwei Extremen:

  • Viele STORAGE -Devices: Damit hat man zwar bestimmt immer ein freies Device, jedoch werden die Wechselmedienlisten unübersichtlich.
  • Wenige STORAGE -Devices: Benutzt man zuviele verschiedene USB-Wechselmedien, kann es sein, dass man irgendwann keine neuen Speichergeräte mehr ansprechen kann. Man muß dann mit root -Rechten das usb-storage -Modul neu laden.

Spezielle Optionen

Per default werden bestimmte defaults für die zu mountenden Medien angenommen. Im Folgenden wird beschrieben, um welche Parameter es sich dabei handelt. Diese Parameter werden dabei in den benutzten Pfad unter /MEDIA codiert.

Beispiel:

  • Diese Floppy ist ganz normal unter Windows formatiert worden:
user@host > cd /MEDIA/FLOPPY
  • Diese Floppy wurde unter Linux mit dem Filesystem ext3 formatiert (über Sinn und Zweck kann man streiten):
user@host > cd /MEDIA/FLOPPY:ext3

Dabei ist folgendes Format für das Verzeichnis unter /MEDIA einzuhalten: [Geräteklasse]{[Optionale Gerätenummer]}{+[durch Komma getrennte Optionen]}{:[Filesystemtyp]}

Auswahl der Partition

Bei einigen Geräten kann eine Partitionsnummer angegeben werden, auf die zugegriffen werden. Das ist z.B. sinnvoll, wenn man auf einer USB-Festplatte mehrere Partitionen benötigt. Folgende Defaults gelten:

Geräteklasse Default-Partition Erklärung
ZIP 4 Merkwürdigerweise hat IOmega das Filesystem auf Standard-ZIP-Disketten auf Partition 4 vorformatiert. Probleme bereitet das, wenn man ein USB-ZIP benutzt und dieses als STORAGE -Device benutzen muss.
STORAGE 1 Die meisten Speichersticks und Speicherkarten besitzen lediglich eine Partition - die erste. Es wurden jedoch auch schon USB-Sticks gesichtet, bei denen die das Filesystem direkt auf der Partitionstabelle war - also Partition 0
alle anderen - Andere Geräte unterstützen keine Partitionen

Hinweis: Die Nummerierung der Partitionen beginnt bei 1. Partition 0 ist lediglich die einfachere Umschreibung von keine Partition .

Beispiele:

  • Jemand hat seine ZIP-Diskette umpartitioniert - das (DOS-kompatible) Dateisystem liegt jetzt auf Partition 3:
    user@host > cd /MEDIA/ZIP+part=3
  • Das Filesystem eines Memorysticks liegt direkt auf der Partitionstabelle:
    user@host > cd /MEDIA/STORAGE+part=0

Auswahl des Filesystems

Autodev akzeptiert die Nutzung folgender Dateisysteme:

  • ext2, ext3, xfs - Alle diese Filesysteme werden aus sicherheitsgründen mit den Mountoptionen nodev und nosuid gemountet.
  • cdfs - Dieses Filesystem gehört nicht zum Kernel, man muss es sich extra besorgen. Es stellt ein virtuelles Filesystem mit Images der Tracks einer CD zum direkten Zugriff bereit. Das heisst z.B. folgendes:
    • Audio-Tracks können direkt als WAV-Dateien kopiert werden.
    • Die Video-Tracks von Video-CDs können als .mpg -Files einfach kopiert werden.
    • Daten-CD können direkt als .iso -Images ausgelesen werden
    • Der Zugriff auf die .iso -Images alter Sessions von Multisession-CDs ist einfach möglich.
  • vfat - Dieses Filesystem hat sich für plattformunabhängigen Datenaustausch zum Quasi-Standard entwickelt. Es wird z.B. auf USB-Speichersticks, auf Speicherkarten und in Digitalkameras benutzt. Viele USB-Storage-Geräte benutzen es per Default.
  • iso9660 - Auf praktisch allen CDs kommt dieses (nicht wiederbeschreibbare) Filesystem zum Einsatz.

Aus der Geräteklasse folgt i.d.R. das zu benutzende Filesystem:

Geräteklasse Filesystem
CD , CDWRITER , DVD iso9660
STORAGE, FLOPPY vfat

Das kann man jedoch übersteuern.

Beispiel:

  • Wenn man eine Diskette mit ext2 formatiert hat, kann man diese wie folgt ansprechen:
    user@host > cd /MEDIA/FLOPPY:ext2

Schreibschutz

Wer auf Nummer sicher gehen will, kann bei wiebeschreibbaren Medien/Filesystemen einen Schreibschutz anfordern. Die Option dazu heisst ro .

Beispiel:

  • Eine hochwichtige Diskette darf nicht beschrieben werden:
    user@host > cd /MEDIA/FLOPPY+ro

Synchrones Filesystem

Mountet man das Filesystem synchron kann man sich 100-prozentig darauf verlassen, dass alles, was man auf das Wechselmedium kopiert/gespeichert hat, auch wirklich drauf ist (solange kein Programm eine Fehlermeldung generiert hat). Dafür wirken Schreibzugriffe auf das Medium auch etwas träger und langsamer. Diese Option lohnt sich z.B. beim kopieren hochwichtiger Daten auf USB-Speicher.

Beispiel:

  • Auf einem Memorystick sollen hochwichtige Daten unter Umgehung des Blockpuffers Gespeichert werden:
    user@host > cd /MEDIA/STORAGE+sync

Dateien von Wechselmedium ausführen

Es ist unter Debian sehr ungewöhnlich, Programme direkt von Wechselmedien zu starten. Deshalb und aus Sicherheitsgründen sind deshalb alle Filesysteme unter autodev-fb per default mit dem noexec -Flag gemountet, welches das Einfache Ausführen von Programmen und Skripten verhindert. Man kann das jedoch übersteuern.

Beispiel:

  • Ein Programm soll von Diskette ausgeführt werden können:
    user@host > cd /MEDIA/FLOPPY+exec

Alles zusammen

Beispiele:

  • Auf einen Memorystick sollen hochwichtige Programme geschrieben und von ihm ausgeführt werden. Das Filesystem ist ext3 und liegt auf Partition 2:
    user@host > cd /MEDIA/STORAGE:ext3+part=2,exec,sync
    Hinweis: Die Reihenfolge der Optionen hinter dem + ist egal.
  • Eine USB-Festplatte wird zusätzlich zum Memorystick ans System angeschlossen. Auf das xfs -Dateisystem auf Partition 5 sollen Dateien kopiert werden:
    user@host > cd /MEDIA/STORAGE2:xfs+part=5

Problembehebung

Der Zugriff auf /MEDIA/* funktioniert nicht.

autodev-fb baut auf einen Automounter. Die entsprechenden Pakete werden bei der Installation eigentlich automatisch nachgezogen und konfiguriert. Wichtig ist vor allem der Inhalt der Datei /etc/auto.master . Da muss eine Zeile drinstehen, die wie folgt aussieht:

user@host > cat /etc/auto.master
/MEDIA /usr/sbin/auto.MEDIA --timeout=1
user@host >

Wenn Die Datei leer ist oder nicht existiert, muß man dafür sorgen, dass die gezeigte Zeile in die Datei wandert. Anschliessend muss man den Automounter neu starten:

root@host > /etc/init.d/autofs force-reload

Wechselmedien unter /MEDIA werden nicht wieder ge- unmount ed

Der Automounter wird per /etc/auto.master angewiesen, nach 1 Sek. Inaktivität ein Wechselmedium wieder zu unmount en. Inaktivität bedeutet, dass gerade kein Prozess mehr damit arbeitet. Ob noch ein Prozess damit arbeitet findet man (am Beispiel von /MEDIA/CD ) wie folgt herraus:

user@host > fuser /MEDIA/CD

Ist das Paket scripts-fb installiert, geht's auch komfortabler:

user@host > fusers -c /MEDIA/CD

( -c bewirkt, dass die Namen der Programme angezeigt werden, die auf die entsprechenden Wechselmedien noch Zugreifen)

Ein bestimmter USB-Speicherstick/USB-Festplatte funktioniert nicht - andere gehen

Es gibt USB-Medien, die nicht mit Linux zusammenarbeiten - oder das nur sehr fehleranfällig tun. Zwei häufige Ursachen gibt es dafür:

  • Der entsprechende USB-Hostcontroller wird unter Linux noch nicht richtig unterstützt. Sehr gut unterstützt werden Controller von NEC. Wenn das der Fall ist, hilft der Einbau einer mit NEC-Controller bestückten USB-2.0-PCI-Karte. Mit Chips von folgenden Firmen gibt's sehr oft Probleme:
    • VIA
    • Intel (persönlich kann ich z.B. von den USB-Fähigkeiten der ICH5 nur stark abraten)
  • Manche USB-Speicher (Speichersticks, USB-zu-IDE-Adapter) sind nicht 100% USB-Kompatibel ( Erfahrungsbericht ). Der Hersteller legt in solch einem Fall meist eine CD bei, die die Hardwareprobleme dieser Geräte im Treiber ausgleicht. Es versteht sich von selbst, dass der Hersteller dabei regelmäßig Linux vergisst , ganz davon abgesehen, dass es ein Unding ist, für jeden möglichen Hardware-Defekt eines Gerätes eigene Treiber im System verankern zu müssen.
    Tip: Hände weg von solchen Geräten.

[Zurück zum Start]

Aktuelle Wiki-Seite: Linux > DebianProjekte > AutodevFb

[Zurück zum Start]