automount abschalten, bzw. konfigurieren
Hallo, ich will auf meinem suse10.1 das automount von allen devices AUSschalten! Habe mich mit udev auseinandergesetzt, komme jedoch nicht weiter. Kann mir jemand gute Docu-Links schicken, bzw. in welcher Regel (/dev/udev/rules.d) wird das Mountverhalten festgelegt. Thanks, Chris -- "Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ... Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Mittwoch, 4. April 2007 15:00 schrieb Christian Perst:
Hallo,
ich will auf meinem suse10.1 das automount von allen devices AUSschalten! Habe mich mit udev auseinandergesetzt, komme jedoch nicht weiter. Kann mir jemand gute Docu-Links schicken, bzw. in welcher Regel (/dev/udev/rules.d) wird das Mountverhalten festgelegt.
Es tut mit leid, eine klare Antwort kann ich Dir nicht geben, weil mir die 10.1 und die 10.2 zu unausgereift waren. Ich bin wieder auf der 9.3. Allerdings nach einigen Suchen, Probieren, Fluchen habe ich die Montage unter der 10.2 ein wenig kapiert. Es sieht eigentlich gut und einfach aus besser als die 9.3). Ich hoffe, dass die 10.1 auch so funktioniert: Mit udef werden die Mountpoints dynamisch definiert. Die Regeln sind in /etc/udev/rules.d/ definiert. Unter SuSE 10.2 werden als Faustregel die Platten unter /dev/disk/by-xx xx = ( id, label, path, uuid ) angelegt. Darüber kann man die Platten dann in der /etc/fstab einbinden. Bei der 10.2 ist es so, dass dann wenn eine Platte in der /etc/fstab steht, diese nicht automatisch eingebunden wird. Das Einbinden nimmt HAL vor. HAL wird auf der 10.2 unter /usr/share/hal/fdi konfiguriert. So habe ich es unter SuSE 10.2 gemacht: --------------------------------------- 1. UDEV und HAL wird nicht angefasst. 2. Im hal-device-manager die volume-id, das Label der Disk heraussuchen. 3. Unter diesen Namen findest Du einem Link in /dev/disk/by* 4. Den Namen des /dev/disk/by*/xxxx als device in /etc/fstab eintragen. Ich hoffe Dir damit geholfen zu haben Heiner PS. Beschreibung? Hmmm! Na klar gibt es eine Beschreibungen UDEV: http://www.reactivated.net/writing_udev_rules.html Sie beschreibt, was man schreiben kann, aber nicht, wie SuSEs Regeln gedacht sind. HAL: das halbe Internet sucht nach einer Doku. Aber: "One of the best sources for HAL documentation is the header file itself." -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On Mit, Apr 04, 2007 at 05:16:07 +0200, Heiner Kuhlmann wrote:
So habe ich es unter SuSE 10.2 gemacht: ---------------------------------------
1. UDEV und HAL wird nicht angefasst. 2. Im hal-device-manager die volume-id, das Label der Disk heraussuchen. 3. Unter diesen Namen findest Du einem Link in /dev/disk/by* 4. Den Namen des /dev/disk/by*/xxxx als device in /etc/fstab eintragen.
Danke für den Tipp. Ich wollte nicht jede neue platte gleich mit rw mounten (Festplattenanalyse). Aber dann scheint dies nicht der richtige Weg zu sein. Vielleicht ist dann schon eher zielführend: 1. killall udevd, ev. auch rpm -e udev 2. mknod per Hand ausführen 3. mount per Hand Gibt es bei deiner Methode eine Möglichkeit, dass Suse keine mount-rw Option ausführt? Nur die Dirs werden anlegt, aber keine mounts durchführt? Danke, Christian
Ich hoffe Dir damit geholfen zu haben
Heiner
PS. Beschreibung? Hmmm!
Na klar gibt es eine Beschreibungen
UDEV: http://www.reactivated.net/writing_udev_rules.html Sie beschreibt, was man schreiben kann, aber nicht, wie SuSEs Regeln gedacht sind.
HAL: das halbe Internet sucht nach einer Doku. Aber: "One of the best sources for HAL documentation is the header file itself."
-- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
-- PerstSecurity - DI Christian Perst, MSc, GCIH www.PerstSecurity.at +43/77 22/9 82 00 *** Wir finden Sicherheitslücken, bevor Hacker es tun! *** -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Gibt es bei deiner Methode eine Möglichkeit, dass Suse keine mount-rw Option ausführt? Nur die Dirs werden anlegt, aber keine mounts durchführt?
Habe folgendes gefunden: Kein USB mit hal mounten ------------------------- erstelle in /usr/share/hal/fdi/policy/10osvendor eine Datei mit Namen 99-ignore-some-drives.fdi ---8<--- <?xml version="1.0" encoding="UTF-8"?> <!-- -*- SGML -*- --> <deviceinfo version="0.2"> <device> <match key="@block.storage_device:storage.bus" string="usb"> <merge key="volume.ignore" type="bool">true</merge> </match> </match> </device> </deviceinfo> ---8<--- volume.ignore flag bewirkt, dass HAL nicht mehr mounted / umounted /ejected. Damit ist das Drive auch nicht mehr im Dateibrowser sichtbar. rchal restart Durch ändern von true auf false kann man diesen Mechanismus wieder deaktivieren. Funktioniert bei Suse 10.1. Kein USB-Dev. wird mehr per default gemountet :-) Christian -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
Am Donnerstag, 5. April 2007 16:29 schrieb Christian Perst:
On Mit, Apr 04, 2007 at 05:16:07 +0200, Heiner Kuhlmann wrote:
So habe ich es unter SuSE 10.2 gemacht: ---------------------------------------
1. UDEV und HAL wird nicht angefasst. 2. Im hal-device-manager die volume-id, das Label der Disk heraussuchen. 3. Unter diesen Namen findest Du einem Link in /dev/disk/by* 4. Den Namen des /dev/disk/by*/xxxx als device in /etc/fstab eintragen.
Danke für den Tipp. Ich wollte nicht jede neue platte gleich mit rw mounten (Festplattenanalyse). Aber dann scheint dies nicht der richtige Weg zu sein.
Vielleicht ist dann schon eher zielführend: 1. killall udevd, ev. auch rpm -e udev 2. mknod per Hand ausführen 3. mount per Hand
In /etc/fstab kannst Du eintragen wie montiert werden soll, z.B. /dev/disk/by-label/Save_1 /media/Save_1 auto noauto 0 0 /dev/disk/by-label/Save_2 /media/Save_2 auto noauto,user 0 0 /dev/disk/by-label/Save_3 /media/Save_3 ext3 noauto,user,ro 0 0 Save_1 wird nicht automatisch r/w montiert nur root darf montieren Save_2 wird nicht automatisch r/w montiert alle Benutzer dürfen montieren Save_3 wird nicht automatisch r-only montiert alle Benutzer dürfen montieren Bei Save_1 und Save_2 wird das Dateisystem automatisch ermittelt, bei Save_3 wird ext3 erwartet. Am besten machst Du Dich über /etc/fstab bzw. mount ein wenig schlau. Alle Geräte, die automatisch montiert werden sollen, werden _nicht_ in die /etc/fstab eingetragen. Ich fürchte ohne udevd wird es nicht laufen. Er erzeugt die Links in /dev/disk/by* Diese Links werden dynamisch erzeugt. Sie hängen von der Reihenfolge ab in z.B. der USB-Geräte angeschlossen werden. Einmal zeigt ein Link auf /dev/sda1 das nächste Mal auf /dev/sdb1. Wenn Du fest eingebaute Platten hast, kannst Du Dir den ganzen Spaß schenken und die Geräte wie /dev/hda1 ... unmittelbar in die /etc/fstab eintragen. Das kann Yast für Dich erledigen. Wenn Dich CD oder DVD stören, kannst Du einen Eintrag für /dev/cdrom oder /dev/dvd o.ä. erzeugen und sie werden nur montiert, wenn und wie Du es willst. Gruß Heiner -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
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@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
On 4/6/07, Christian Perst <chris_perst@gmx.de> wrote:
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.
Interessant! Das mit der storage.policy.should_mount hatte ich auch erst probiert und es hat unter 10.1 tatsächlich nicht mehr funktioniert (unter 9.3 ging's noch). Ich bin dann zu folgendem XML-Schnipsel gekommen: <?xml version="1.0" encoding="ISO-8859-1"?> <!-- -*- SGML -*- --> <deviceinfo version="0.2"> <device> <match key="info.udi" string="/org/freedesktop/Hal/devices/computer"> <merge key="storage.disable_volume_handling" type="bool">true</merge> </match> </device> </deviceinfo> Das hat bei mir auch das automatische Mounten zuverlässig ausgeknipst. Es gibt bei udev/hal/dbus wohl viele Wege nach Rom. kk
Christian Perst wrote:
Hallo,
ich will auf meinem suse10.1 das automount von allen devices AUSschalten! Habe mich mit udev auseinandergesetzt, komme jedoch nicht weiter. Kann mir jemand gute Docu-Links schicken, bzw. in welcher Regel (/dev/udev/rules.d) wird das Mountverhalten festgelegt.
Thanks, Chris
option noauto in /etc/fstab Wolfgang -- Um die Liste abzubestellen, schicken Sie eine Mail an: opensuse-de+unsubscribe@opensuse.org Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: opensuse-de+help@opensuse.org
participants (4)
-
Christian Perst
-
Heiner Kuhlmann
-
jwwoger@chello.at
-
Karsten Künne