Mailinglist Archive: opensuse-de (1367 mails)

< Previous Next >
Re: automount abschalten, bzw. konfigurieren
  • From: Christian Perst <chris_perst@xxxxxx>
  • Date: Fri, 6 Apr 2007 12:22:05 +0200
  • Message-id: <20070406102205.GA23039@xxxxxxxxxxxxxx>
Hallo,

danke für die Antworten. Nach einigen Stunden hatte ich die Lösung, hier
die Zusammenfassung.

Problem: ich möchte, dass externe Geräte (CD, USB, usw.) nicht
automatisch gemountet werden. 

Lösung:
1) ist etwas heftig, aber trotzdem möglich:
killall udevd
mknod /dev/<geraet> major minor
mount

Nach getaner Arbeit
rm /dev/<geraet>
/sbin/udevd --daemon

Die Major-, Minor-Nummern finden sich in
/usr/src/linux-<kernelvers>/Documentation/devices.txt


2) Angenehmer: udev darf schon die device-Dateien erstellen, aber kein
mount soll abgesetzt werden. udev ist nur für die Erzeugung und
Benennung der Devicenodes zuständig, daher findet sich für unsere Zwecke
hier nichts brauchbares. HAL verwaltet u.a. Details über Geräte, die in
einem XML-Format abgelegt werden. Er ist dafür zuständig, dass gestimmte
Aktionen gesetzt werden. Hier ist der Punkt, um anzusetzen.

Erstelle in /usr/share/hal/fdi/policy/20thirdparty eine Datei
99-ignore-usb-drives.fdi
---8<---
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->

<deviceinfo version="0.2">
<device>
  <!-- keine USB-Devices mehr mounten -->
  <match key="@block.storage_device:storage.bus" string="usb">
      <merge key="volume.ignore" type="bool">true</merge>
  </match>
</device>
</deviceinfo>
---8<---
Hal muss noch neu gestartet werden, bei Suse: rchal restart. Nun werden
USB-Speicher nicht mehr automatisch gemountet, jedoch ein Verzeichnis in
/dev wird angelegt.

Wichtig: die Dateien in /usr/share/hal/fdi/policy/* werden in
alphabetischer Reihenfolge durchlaufen. Eine Datei muss die Endung fdi
haben damit sie abgearbeitet wird. Das hat den angenehmen Effekt, dass
ich eine datei.fdi nach datei.fdi.out_of_service umbenennen kann und
schon werden die Regeln nach einen restart von hal nicht mehr
verarbeitet.

Soll nur auch CDs und DVDs einbezogen werden sieht die Datei
99-ignore_all.fdi folgendermaßen aus:
---8<---
<?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- -->

<deviceinfo version="0.2">
<device>
  <!-- gar keine ext. Devices mehr mounten -->
  <match key="volume.policy.should_mount" bool="true">
      <merge key="volume.policy.should_mount" type="bool">false</merge>
  </match>
</device>
</deviceinfo>
---8<---
Jedes Gerät, dass ein Attribut volume.policy.should_mount hat wird nicht
mehr gemounted. Wer sich die Attribute aus lshal ansieht, merkt dass die
Festplatten auch ein volume.policy.should_mount Attribut besitzen.
Jedoch werden alle Geräte, die in der fstab eingetragen sind,
defaultmäßig nicht behandelt. Damit ist sichergestellt, dass beim Booten
die notwendigen Disks gemounted werden.
Nun ist es auch möglich, gerätespezifisch oder Bus-spezifisch die
mount-Bedingungen festzulegen. Dafür ist es notwendig, sich über die
sog. namespaces von hal eine Übersicht zu verschaffen.

Nützliche Befehle:
lshal .. listet alle Geräte mit Attribute auf.
udevmonitor .. Anzeige der Kernel- und udev-Aktionen 
udevmonitor --env .. das Ganze mit Environmentvariablen
udevinfo -a -p /sys/block/hdc .. Informationen über ein Gerät (hier hdc)
Die Daten von Block-Devices liegen unter /sys/block.

Mit ein wenig Lesen und Experimentieren sind eigene Anpassungen gut zu
schaffen.

Hinweis: 
a) Alle Tests wurden auf Suse 10.1 erfolgreich ausgeführt.
b) Im Linux-Magazin 09/2006 ist eine 95userpolicy, die auf meinem System
nicht funktionierte. volume.policy.should_mount aus meinem Beispiel ist
dort durch ein storage.policy.should_mount ersetzt. Das hatte zur Folge,
dass die Geräte gemounted wurden, jedoch sich nicht mehr mounten ließen.

Weitere Literatur:
Wie Udev funktioniert, Linux-Magazin
[url]http://www.linux-magazin.de/heft_abo/ausgaben/2006/09/geraeteverwalter[/url]
Udev
[url]http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html[/url]
HAL Specification
file:///usr/share/doc/packages/hal/spec/hal-spec.html


Chris
--
Um die Liste abzubestellen, schicken Sie eine Mail an:
    opensuse-de+unsubscribe@xxxxxxxxxxxx
Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken
Sie eine Mail an: opensuse-de+help@xxxxxxxxxxxx

< Previous Next >
Follow Ups