Wechselmedien einbinden mit Ivman

Reaktion vorprogrammiert

Auf eingelegte Datenträger reagiert das Desktop-unabhängige Werkzeug Ivman flexibel.

Viele reine Desktop-Nutzer betrachteten das umständliche manuelle Einbinden neu eingelegter oder angeschlossener Wechselmedien lange als entscheidenden Nachteil von Linux. Inzwischen erledigen die meisten Distributionen solche Aufgaben automatisch. Wer eine CD einlegt oder einen USB-Stick anschließt, sieht gewöhnlich kurz danach ein entsprechendes Icon oder Fenster auf dem Desktop.

Dazu legen sich die Distributionen auf eines von mehreren Systemen fest. Suse beispielsweise verwendet seit Version 9.1 Submount [1], das neue Datenträger erkennt, einbindet und den Benutzer benachrichtigt (Abbildung 1). Submount ergänzt bei neuer Hardware kurzerhand die Datei /etc/fstab um passende Einträge (Abbildung 2).

Abbildung 1: Suse erkennt Daten-CDs mittels Submount.
Abbildung 2: Die Datei "/etc/fstab" verzeichnet die Dateisysteme.

Andere setzen auf den "Hardware Abstraction Layer" (HAL) [3], der neue Hardware aber auch Ereignisse wie das Öffnen und Schließen des CD-Laufwerksschachts erkennt und eine entsprechende Nachricht ans System schickt. Mit Hilfe dieser Information kann dann ein weiteres Programm neue Dateisysteme einbinden und über die Oberfläche zugänglich machen. Gnome erledigt dies beispielsweise über den Gnome Volume Manager.

Dieser gehört jedoch zur Gnome-Oberfläche, die Kooperation mit anderen Desktop-Umgebungen sieht er nicht vor. Unter KDE greifen Sie auf von HAL gemeldete Wechselmedien beispielsweise mit dem Dateimanager Konqueror über die Eingabe von media:/ in der Adresszeile zu. Wer weder Gnome noch KDE nutzt, sondern beispielsweise Xfce oder FVWM, braucht ein Desktop-unabhängiges Werkzeug: Ivman, "Ikke's Volume Manager" [2], verwendet ebenfalls den Hardware Abstraction Layer und lässt sich flexibel konfigurieren, so dass es auf eingelegte Datenträger abhängig von deren Inhalt oder Namen reagiert. Damit überbietet es auch die Möglichkeiten der von KDE und Gnome vorgesehenen Werkzeuge.

Installation

Ivman benötigt also das Paket HAL, das zur Kommunikation mit dem System wiederum D-BUS [4] voraussetzt. Als fertiges Paket enthält Gentoo als einzige der großen Distributionen Ivman, da die anderen auf andere Systeme setzen. Gentoo-Nutzer erhalten alle drei Pakete automatisch über

emerge ivman

Ivman läuft als Daemon im Hintergrund und muss dafür beim Systemstart als Service gestartet werden. Unter Gentoo bewerkstelligt das der Befehl

rc-update add ivman boot

Auch hier erkennt Gentoo die Notwendigkeit von HAL- und D-BUS und startet beide beim nächsten Booten ebenfalls automatisch.

Einen festen Eintrag in der Datei /etc/fstab benötigt auch Ivman. Diesen generiert das Werkzeug fstab-sync automatisch. Solche Einträge sehen typischerweise etwa so aus:

/dev/hdc /media/cdrecorder ↩
auto exec,user,noauto,managed 0 0

Auch die Mount-Verzeichnisse unter /media legt HAL an. Damit ist die Installation von Ivman abgeschlossen. Von nun an bindet es Wechselmedien automatisch ins System ein.

Alles ist möglich

Der Hardware Abstraction Layer liefert eine große Zahl von Detailinformationen über Wechselmedien, die sich durch Ivman auswerten lassen. Das Werkzeug lshal bringt diese im Rohformat auf die Konsole (Listing 1). So lässt sich aus dem Eintrag volume.label der Name einer eingelegten CD oder DVD ablesen, in Listing 1 beispielsweise eine Windows-XP-CD des Namens wxp_pro. Die Ivman-Konfiguration legt fest, welche der Einträge Änderungen der Ivman-Daemon berücksichtigt.

Listing 1

Ausgabe von "lshal"

Dumping 43 device(s) from the Global Device List:
————————————————-
udi = '/org/freedesktop/Hal/devices/block_wxp_pro'
  info.udi = '/org/freedesktop/Hal/devices/block_wxp_pro'  (string)
  volume.disc.is_rewritable = false  (bool)
  volume.disc.is_appendable = false  (bool)
  volume.disc.is_blank = false  (bool)
  volume.disc.has_data = true  (bool)
  volume.disc.has_audio = false  (bool)
  volume.disc.type = 'cd_r'  (string)
  volume.size = 3434496  (0x346800)  (uint64)
  volume.block_size = 2048  (0x800)  (int)
  volume.num_blocks = 1210968  (0x127a58)  (int)
  volume.is_disc = true  (bool)
  volume.is_mounted = false  (bool)
  volume.mount_point = ''  (string)
  volume.label = 'wxp_pro'  (string)
  volume.uuid = ''  (string)
  volume.fsversion = ''  (string)
  volume.fsusage = 'filesystem'  (string)
  volume.fstype = 'iso9660'  (string)
  info.product = 'wxp_pro'  (string)
  info.parent = '/org/freedesktop/Hal/devices/block_22_0'  (string)
  info.category = 'volume'  (string)
  info.capabilities = 'block volume'  (string)
  info.bus = 'block'  (string)
  block.no_partitions = true  (bool)
  block.have_scanned = false  (bool)
  block.is_volume = true  (bool)
  block.device = '/dev/hdc'  (string)
  block.major = 22  (0x16)  (int)
  block.minor = 0  (0x0)  (int)
  block.storage_device = '/org/freedesktop/Hal/devices/block_22_0'  (string)

Den Kern der Ivman-Konfiguration bilden die Dateien im XML-Format unter /etc/ivman/ (Kasten 1). Die mitgelieferten Files enthalten bereits zahlreiche Beispieleinträge, die einen ersten Eindruck zur korrekten Anwendung verschaffen.

Kasten 1: Die Konfigurationsdateien von Ivman

  • IvmConfigBase.xml: Enthält nur wenige Optionen, die das allgemeine Verhalten von Ivman steuern. In aller Regel reichen die Standardeinträge.
  • IvmConfigActions.xml: Legt fest, welche Aktionen ausgeführt werden, wenn ein Medium eingelegt oder ein Gerät angeschlossen wird.
  • IvmConfigMappings.xml: Teilt Ivman mit, welche Einträge in /etc/fstab lediglich einen symbolischen Link zu einem Gerät unterhalb von /dev enthalten. Das ist wichtig, da Ivman von HAL den echten Geräte-Namen wie /dev/hdc, aber keine Links wie /dev/cdrecorder erhält.
  • IvmConfigProperties.xml: Soll Ivman auf eine Geräte-Eigenschaft reagieren, beispielsweise das Entriegeln oder Verriegeln eines Laufwerks, beschreibt das diese Datei.

Der Ivman-Entwickler selbst regt als Beispiel an, eine Windows-XP-CD direkt nach dem Einlegen wieder auswerfen zu lassen. Folgender Eintrag in der Datei /etc/ivman/IvmConfigActions.xml erledigt diese Aufgabe:

<ivm:Match name="hal.volume.↩
label" value="wxp_pro">
    <ivm:Option name="exec" value↩
="/usr/bin/eject $hal.block.↩
device$" />
</ivm:Match>

Legt jemand eine CD ein, überprüft Ivman daraufhin die Variable hal.volume.label. Sie entspricht der Variable volume.label, die lshal liefert. Enthält sie den Wert wxp_pro, führt Ivman den Befehl /usr/bin/eject aus, der die CD auswirft. Die Variable $hal.block.device$ steht dabei für das Gerät, das den Datenträger enthält.

Ivman kennt zwei Gruppen von Variablen: Diejenigen, die es von HAL erhält, werden durch ein vorangestelltes hal. gekennzeichnet. Daneben gibt es Ivman-eigene Variablen wie ivm.mountable.

In jeder Konfigurationsdatei arbeitet Ivman die einzelnen Einträge in der Reihenfolge ab, in der sie in der Datei stehen. In /etc/ivman/IvmConfigActions.xml stehen in der Voreinstellung bereits folgende Zeilen:

<ivm:Match name="ivm.mountable" ↩
value="true">
    <ivm:Option name="mount" ↩
value="true" />
</ivm:Match>

Dieser Eintrag sorgt dafür, dass Ivman bei jedem Medium versucht, es einzubinden. Steht die oben beschriebene Anweisung zum Auswerfen einer Windows-CD vor diesen Zeilen, wird Ivman nach dem Auswerfen der CD zusätzlich den Datenträger einbinden. Üblicherweise führt diese Aktion dazu, dass sich die Laufwerksschublade wieder schließt und dann die CD eingebunden wird. Deshalb sollte der Mount-Befehl vor dem Auswerfen stehen, wenn Sie ihn nicht löschen möchten.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • LVM – Logical Volume Management
    Wer regelmäßig Plattenpartionen rangieren, vergrößern und verkleinern muss, findet im Logical Volume Manager eine hilfreiche Technologie.
  • Arduino-Programmierung
    Der Arduino lockt mit Offenheit und Portabilität: Die Schaltung des Minirechners ist ebenso frei lizenziert wie die zugehörige Entwicklungsumgebung. Grund genug, sich näher mit der Programmierung zu beschäftigen.
  • Butter bei dat Dateisystem
    Den Titel können Sie nur schätzen, wenn Ihnen der Ausspruch "Butter bei die Fisch!" geläufig ist. Der bedeutet, man soll endlich zum Kern der Sache kommen, und darum verraten wir in diesem Artikel ohne Umschweife, was es mit dem neuen Dateisystem BtrFS (Butter-Ef-Es; englisch ausgesprochen) auf sich hat.
  • Pimp my SSD
    Nichts beschleunigt einen PC so nachhaltig wie der Umstieg auf eine SSD. Damit diese ihr volles Potenzial erreicht und möglichst lange lebt, gilt es, das Linux-System an einigen kritischen Stellen anzupassen.
  • Verriegelt und verrammelt
    Egal ob privat oder geschäftlich: Sensible Daten gehören in sichere Verwahrung. Das kostenlose Programm Truecrypt verwandelt Ihre Festplatte in einen Datensafe.
Kommentare

Infos zur Publikation

LU 09/2016: Ciao, Windows!

Digitale Ausgabe: Preis € 5,99
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Aktuelle Fragen

Scannen nicht möglich
Werner Hahn, 19.08.2016 22:33, 3 Antworten
Laptop DELL Latitude E6510 mit Ubuntu 16,04, Canon Pixma MG5450. Das Drucken funktioniert, Scann...
Wie kann man das berichtigen
Udo Muelle, 17.07.2016 20:39, 1 Antworten
Fehlschlag beim Holen von http://extra.linuxmint.com/dists/rosa/main/binary-i386/Packages Hash-S...
Installation Genimotion
Horst Müller, 15.07.2016 17:00, 1 Antworten
Hallo, ich kann Genimotion nicht installieren. Folgende Fehlermeldung habe ich beim Aufruf erh...
Probleme beim Hochfahren der Terastaion 5400 mit Unix-Distrib
Sheldon Cooper, 10.07.2016 09:32, 0 Antworten
Hallo ihr lieben, habe seit zwei Tagen das Problem, das das NAS (Raid5) nicht mehr sauber hoch...
Mit Firewire Videos improtieren?
Werner Hahn, 09.06.2016 11:06, 5 Antworten
Ich besitze den Camcorder Panasonic NV-GS330, bei dem die Videos in guter Qualität nur über den 4...