# Dynamische fstab?

## gentop

Hi,

ich habe vor einiger Zeit mal gesehen, dass in einem Rechenzentrum die fstab dynamisch angepasst wurde, wenn "normale" Benutzer z.B. ihren memory stick eingesteckt hatten. Dann wurde dort dynamisch ein mountpoint hinzugefügt und nach dem ausstecken wieder entfernt. Das finde ich praktisch, da somit normale Benutzer (eben nicht root Benutzer) ein mitgebrachtes Laufwerk mounten können. Ansonsten bräuchte man ja root-Rechte, wenn man ein Laufwerk, welches nicht in der fstab verzeichnet ist, mounten möchte. Kann mir mal jemand sagen, welches Programm für diese dynamischen Einträge verantwortlich ist? Ich hab etwas gesucht, bin aber nicht fündig geworden.

//gentop

PS: Ich glaube, bei SuSE war das mal standardmäßig dabei... hab bloss kein SuSE zum Nachgucken  :Wink: 

----------

## dakjo

udev

----------

## gentop

HM - ich benutze eigentlich ein reines udev System - trotzdem wird bei mir nicht die fstab angepasst - wohl aber die /dev Nodes...

Any ideas?

//gentop

----------

## flo_02_mu

Mit ivman funktioniert das wunderbar. Ich weiß zwar nicht, ob ivman, hal oder d-bus dafür verantworlich ist, aber wenn man ivman installiert (die anderen beiden Pakete sind Abhängigkeiten) funktioniert es auf jedenfall.  :Smile: 

Evtl. als Anpassung in /etc/ivman/IvmConfigActions.xml:

unter

```
<ivm:Match name="hal.volume.fstype" value="vfat">
```

 die Zeile:

```
<ivm:Option name="mountoption" value="iocharset=iso8859-15" />
```

 mit anfügen, damits auch mit den Umlauten klappt.

- Flo

----------

## gentop

OK - vielen Dank erstmal für den Tip. Probier das mal aus  :Wink: 

//gentop

----------

## Vortex375

Ich bin begeistert  :Very Happy: 

Nach so etwas hab ich schon lange gesucht, und jetzt funktioniert es auch noch auf anhieb! Die Mountpoints werden korrekt erzeugt und auch wieder gelöscht, das einzige was mich jetzt noch stört, ist dass die Laufwerke anschliessen nicht automatisch gemountet werden. 

Gibt evtl. auch eine Möglichkeit das zu Bewerkstelligen?

----------

## flo_02_mu

 *Vortex375 wrote:*   

> das einzige was mich jetzt noch stört, ist dass die Laufwerke anschliessen nicht automatisch gemountet werden. 

 

Hmm, das sollte eigentlich schon so sein. Zumindest wenn ivman per /etc/init.d/ivman gestartet wird.

Evtl. mal in /etc/ivman/IvmConfigBase.xml die debug-Option auf true setzen und im syslog nachgucken was beim anstecken(?) des Laufwerks so passiert.

- Flo

----------

## gentop

Hm - ist eigentlich ein ganz nettes Tool. Mich stört lediglich, dass jetzt mein CD/DVD Laufwerk mehrfach in meine fstab geschrieben wird (cdrom0 cdrom1...). Ausserdem stört mich, dass ivman die Mountpoints in /media setzt, statt nach /mnt - ist das irgendwo konfigurierbar? Hab da nichts gefunden...

Für Änderungsideen wäre ich dankbar.

//gentop

----------

## TheCurse

Der Gnome-volume-manager macht sowas übrigens auch und man kann auch einstellen, was z.B. automatisch gemountet werden soo, hat aber auch glaub ich hal als abhängigkeit. Und das mit dem /media ist laut standart glaub ich korrekt.

MfG

TheCurse

----------

## boris64

Das ganze klappt auch ohne Ivman, in dem man Kde-3.4 in Verbindung mit Dbus und Hal benutzt.

Wenn jemand bei mir einen Usbstick oder sowas einsteckt, wird bei mir

ein Usb-Gerätesymbol auf meinem Desktop erzeugt und bei Doppelklick geöffnet/gemountet.

Natürlich kann da dann jeder auch darauf zugreifen/schreiben (dank udev und der "usb"-Benutzergruppe;)).

Inwiefern meine fstab dabei "dynamisch" ist, weiss ich leider nicht, da ich da gar nichts mehr 

einstellen muss. Imho wird das alles automagically durch Dbus/Hal geregelt.

ps: Ich benutze kein Gnome, denke aber, dass das dort auch genauso problemlos funktioniert.

----------

## misterjack

 *gentop wrote:*   

> Ausserdem stört mich, dass ivman die Mountpoints in /media setzt, statt nach /mnt - ist das irgendwo konfigurierbar? Hab da nichts gefunden...
> 
> 

 

kleine anmerkung: das ist standart. /mnt ist für festplatten und sowas, während /media für dynamische laufwerke ist, also cdom, usbstick etc

----------

## hoschi

udev + dbus/hal erledigen das meines wissens alles, wenn bequem sein soll (und das solls) muss famd auch noch an board - ist glaube ich desktopunabhängig?!

----------

## Neo_0815

 *Vortex375 wrote:*   

> Ich bin begeistert 
> 
> Nach so etwas hab ich schon lange gesucht, und jetzt funktioniert es auch noch auf anhieb! Die Mountpoints werden korrekt erzeugt und auch wieder gelöscht, das einzige was mich jetzt noch stört, ist dass die Laufwerke anschliessen nicht automatisch gemountet werden. 
> 
> Gibt evtl. auch eine Möglichkeit das zu Bewerkstelligen?

 

Automounter nutzen.

Gruß

----------

## misterjack

 *Neo_0815 wrote:*   

> 
> 
> Automounter nutzen.
> 
> 

 

kann man auch gleich n link geben  :Wink: 

http://de.gentoo-wiki.com/Automatisches_Mounten

----------

## Yonathan

soweit so gut. aber wenn ich ivman starten will, bekomme ich folgenden fehler:

```
bash-2.05b# /etc/init.d/ivman start

 * Starting Automounter...

libhal.c 644 : Error connecting to system bus: Failed to connect to socket /var/                                            lib/dbus/system_bus_socket: No such file or directory

** (process:12191): WARNING **: manager.c/656: Failed to initialize HAL!                [ !! ]
```

 *borisdigital wrote:*   

> Das ganze klappt auch ohne Ivman, in dem man Kde-3.4 in Verbindung mit Dbus und Hal benutzt.
> 
> Wenn jemand bei mir einen Usbstick oder sowas einsteckt, wird bei mir
> 
> ein Usb-Gerätesymbol auf meinem Desktop erzeugt und bei Doppelklick geöffnet/gemountet.
> ...

 

das funktioniert bei mir ebenfalls nicht. dabei werden hal und dbus automatisch beim booten über das bekannte rc-update add hald/dbus default gestartet. wenn ich den usb-stick einstecke, erhalte ich lediglich in der /var/log/messages den bericht, dass sda jetzt existiert und eingerichtet wurde. aber gemountet oder gar nen symbol auf den desktop bekomme ich nicht. 

hat jemand eine idee?

lg. yona

----------

## flo_02_mu

 *Yonathan wrote:*   

> soweit so gut. aber wenn ich ivman starten will, bekomme ich folgenden fehler:
> 
> ```
> bash-2.05b# /etc/init.d/ivman start
> 
> ...

 

Versuch mal dbus neu zu emergen, denn die oben bemängelte Datei müsste eigentlich da sein:

```
florian@My-Castle:~ $ ls -l /var/lib/dbus/

insgesamt 0

srwxrwxrwx  1 root root 0  9. Mai 18:06 system_bus_socket
```

- Flo

----------

## Yonathan

habe dbus neu emerged, aber die datei ist nicht aufgetaucht  :Sad: 

liegt es vielleicht daran, dass ich nicht die *-cvs pakete sondern die pakete aus dem portage-tree genommen habe? kann doch eigentlich nicht, oder?  :Sad: 

lg. yona

----------

## flo_02_mu

Hmm, ich habe hier:

```
sys-apps/dbus-0.23.4

sys-apps/hal-0.4.7-r2  -debug -doc -pcmcia 0 kB

sys-apps/ivman-0.5_pre3
```

Sind glaub ich die ~x86 aus dem Portage-Tree.

Um deinem Problem mal auf dem Grund zu gehen, könntest du folgendes (als root!) machen:

1. Falls dbus (+hal +ivman) gestartet sind, per

```
/etc/init.d/dbus stop
```

herunterfahren.

2. Evtl. falls vorhanden die Datei /var/run/dbus.pid löschen

3. dbus von Hand mit strace (evtl. vorher emerge strace) starten:

```
strace dbus-daemon-1 --system --nofork
```

Dann ein wenig nach oben scrollen, dort erscheinen bei mir folgende Zeilen, bezgl. des vermissten sockets:

```
socket(PF_FILE, SOCK_STREAM, 0)         = 3

stat64("/var/lib/dbus/system_bus_socket", {st_mode=S_IFSOCK|0777, st_size=0, ...}) = 0

unlink("/var/lib/dbus/system_bus_socket") = 0

bind(3, {sa_family=AF_FILE, path="/var/lib/dbus/system_bus_socket"}, 110) = 0

listen(3, 30)                           = 0

fcntl64(3, F_GETFL)                     = 0x2 (flags O_RDWR)

fcntl64(3, F_SETFL, O_RDWR|O_NONBLOCK)  = 0

chmod("/var/lib/dbus/system_bus_socket", 0777) = 0
```

Gibt es bei dir etwas vergleichbares?

- Flo

----------

## Yonathan

ich habe hier:

 *Quote:*   

> sys-apps/dbus-0.23-r3
> 
> sys-apps/hal-0.4.5-r2
> 
> sys-apps/ivman-0.5_pre2

 

[hmm.... sehr strange alles...

eben wollte ich die /var/run/dbus.pid löschen. ging net, weil die nicht da war.

also habe ich hal auch gestoppt.

```
bash-2.05b# /etc/init.d/hald stop

 * ERROR:  "hald" has not yet been started.

bash-2.05b# /etc/init.d/hald start

 * Starting D-BUS system messagebus...

Failed to start message bus: The pid file "/var/run/dbus.pid" exists, if the mes                                            sage bus is not running, remove this file                                 [ !! ]

 * ERROR:  Problem starting needed services.

 *         "hald" was not started.

bash-2.05b# /etc/init.d/dbus start

 * Starting D-BUS system messagebus...

Failed to start message bus: The pid file "/var/run/dbus.pid" exists, if the mes                                            sage bus is not running, remove this file                                 [ !! ]

bash-2.05b# rm /var/run/dbus.pid

bash-2.05b# /etc/init.d/dbus start

 * Starting D-BUS system messagebus...                                    [ ok ]

bash-2.05b# /etc/init.d/hald start

 * Starting Hardware Abstraction Layer daemon...                          [ ok ]

bash-2.05b# /etc/init.d/ivman start

 * Starting Automounter...                                                [ ok ]

```

wie und warum auch immer. jetzt funzt es  :Smile: 

nun sind zwar noch meine beiden cd-laufwerke doppelt gemountet, aber das lässt sich ja durch auskommentieren in der fstab oder anderweitig lösen  :Smile: 

vielen dank soweit.

lg yona

----------

## firefly

wegen dem doppelten "mounten" des cdrom-Laufwerk könnte folgendes helfen:

erstelle in /etc/udev/rules.d/10-locale.rules folgende Regel(Angaben entsprechend deines Setups anpassen):

```
KERNEL="hdd", SYMLINK="dvd cdrw"
```

Dadurch wird, so wie ich das bei mir gesehen habe, verhindert das fstab-sync für diese device aufgerufen wird.

Da ,wie es scheint, udev das device erst an hald weiter gibt, wenn udev keine regel in seiner config dafür findet.

Denn nachdem ich die Regel für meinen USB-Stick aus /etc/udev/rules.d/10-locale.rules entfernt hatte,

wurde nachdem einstecken des Sticks in /media ein mountpoint erzeugt  und ein entsprechender eintrag in die fstab geschrieben.

gruß

firefly

----------

## boris64

 *Yonathan wrote:*   

> das funktioniert bei mir ebenfalls nicht. dabei werden hal und dbus automatisch beim booten über das bekannte rc-update add hald/dbus default gestartet. wenn ich den usb-stick einstecke, erhalte ich lediglich in der /var/log/messages den bericht, dass sda jetzt existiert und eingerichtet wurde. aber gemountet oder gar nen symbol auf den desktop bekomme ich nicht. 
> 
> ...

 

Das ist eigentlich ein KDE-Feature (geht auch unter Gnome, nicht hauen  :Wink: ).

Du müsstest eigentlich nur irgendwo im KDE-Kontrolzentrum

(sorry, genauer gehts nicht, baue gerade mein 64er System und bin nur unter links hier  :Razz: ) 

einstellen können, dass auf dem Desktop Gerätesymbole für Wechseldatenträger

angezeigt werden sollen.

Dabei nicht vergessen: auch "ungemountete Geräte anzeigen"(o.ä.) muss angewählt sein,

nur so wird beim Einstecken des USB-Sticks (z.B.) ein neues Symbol auf dem Deskop erzeugt,

welches man dann simpel per Klick einhängen/öffnen kann.

PS: Anbei bemerkt, ich benutze die ~x86-Versionen von Hal/Dbus/KDE.

Die neueste KDE-Version ist auch wichtig, da imho erst ab v3.4 eine 

direkte Unterstützung für Hal/Dbus besitzt.

viel Glück  :Wink: 

----------

## Yonathan

habe die kde 3.4 drauf. werde die ~x86 pakete mal freischalten bei gelegenheit und emergen.

habe im kontrollcentrum alles gefunden, haken an der sache ist nur, dass mein mp3 player als festplattenpartition erkannt wird und ich nun sämtliche partitionen als symbol auf meinem desktop habe....

außerdem werden diese partitionen nun in media geöffnet, wenn ich auf eins der symbole klicke... aber naja. gibt schlimmeres. mal schauen, ob ich da irgendwo was zu finde, damit das nicht passiert. werde erstmal ivman wieder stoppen und ein wenig testen *g*

lg. yona

----------

## Sonic Lux

Hab ebend das gefunden:

http://gentoo-wiki.com/HOWTO_D-BUS,_HAL,_KDE_media:/

----------

## Yonathan

wenn ich allerdings, wie in dem howto: kdebase-kioslaves emergen will, dann muss ich 

1. viele pakete ent-keyworden

2. blockt das alte kde-base/kde-base die ganzen pakete, die da freigeschaltet werden sollen.

frage ist nun:

kann ich die alte kdebase einfach so unmergen und dafür das kdebase-kioslaves nehmen?

lg. yona

----------

## tgurr

Entweder kdebase mit Useflag "hal" neu mergen, oder kdebase runterschmeißen und kdebase-meta emergen und bei kde-base/kdebase-kioslaves "hal" Useflag setzen.

----------

## Yonathan

super.

vielen dank.

werde mal schauen, was ich mache, aber ich denke mal, einfach nur das alte mit neuem flag emergen ist schneller, als diese vielen pakete neu bauen.

edit: finde es ja ein bisschen komisch, dass ich folgendes bekomme, wenn ich emerge -pu kde-base/kdebase eingebe:

kde-base/kdebase-3.4.0-r1  +arts +cups -debug -hal -ieee1394 +java -kdeenablefinal -ldap -lm_sensors -logitech-mouse +opengl +pam +samba +ssl -xinerama

habe hal jetzt als use-flag im der make.conf, warum wird hal dann immernoch mit nem - gesetzt? müsste da nicht jetzt ein -hal* stehen?

lg. yona

----------

## Linuxpeter

In deinem Fall muesste dann +hal* da stehen.

----------

## Yonathan

ja. meine ich ja.

habe mich nur vertippt.

tut es aber trotzdem net O_O

----------

## Tanetal

Hilft vielleicht:

emerge -p --newuse kde-base/kdebase

Ist ja nur ein Rebuild, kein Update.

Greetings

Tanetal

----------

## Yonathan

nein.... das bringt es auch irgendwie nicht  :Sad: 

```
kde-base/kdebase-3.4.0-r1  +arts +cups -debug -hal -ieee1394 +java -kdeenablefinal -ldap -lm_sensors -logitech-mouse +opengl +pam +samba +ssl -xinerama
```

da steht immernoch -hal und net +hal*

----------

## Linuxpeter

Poste bitte mal deine /etc/make.conf.

----------

## Yonathan

```
# These settings were set by the catalyst build script that automatically built this stage

# Please consult /etc/make.conf.example for a more detailed example

CFLAGS="-O3 -march=athlon-xp -mcpu=athlon-xp -fomit-frame-pointer -pipe -fforce-addr -falign-functions=4 -fprefetch-loop-ar

rays"

CHOST="i686-pc-linux-gnu"

CXXFLAGS="${CFLAGS}"

MAKEOPTS="-j2"

SYNC="rsync://rsync16.de.gentoo.org/gentoo-merged"

GENTOO_MIRRORS="http://ftp-stud.fht-esslingen.de/pub/Mirrors/gentoo/

http://gentoo.osuosl.org/ ftp://ftp.gtlib.cc.gatech.edu/pub/gentoo

ftp://csociety-ftp.ecn.purdue.edu/pub/gentoo/

ftp://ftp.ussg.iu.edu/pub/linux/gentoo ftp://ftp.ucsb.edu/pub/mirrors/linux/gentoo/

http://gentoo.chem.wisc.edu/gentoo/ http://gentoo.mirrors.pair.com/

http://gentoo.ccccom.com http://gentoo.mirrors.tds.net/gentoo

ftp://gentoo.netnitco.net/pub/mirrors/gentoo/source/

http://mirror.tucdemonic.org/gentoo/ http://mirrors.acm.cs.rpi.edu/gentoo/

ftp://ftp.ndlug.nd.edu/pub/gentoo/"

USE="3dnow X aalib acpi aim alsa apache2 apm arts audiofile avi bash-completion bmp bzlib bcmath cdr crypt cups dga directfb divx4linux dvd encode exif fam fbcon foomaticdb ftp gd gif gimp gphoto2 gpm gtk gtk2 hal icq imagemagick imap imlib ipv6 jabber java jpeg kde kdexdeltas libwww maildir mime mmx mpeg mozilla msn mysql ncurses nls ntpl ntplonly odbc odd ogg oggvorbis openal opengl oss pdflib php perl png ppds python qt quicktime samba scanner sdl ssl svg svga szip tcltk tcpd tiff truetype unicode usb wmf wxwindows xine xml xml2 xmms xpm xprint yahoo zlib

-debug -doc -kdeenablefinal -mbox -pcmcia -static -threads -xinerama"

PORTDIR_OVERLAY="/usr/portage/ /usr/local/overlays/gentoo-de"

ALSA_CARDS="intel8x0"

FEATURES=" ccache -strict sandbox"

CCACHE_SIZE="3G"

LINGUAS="de"

```

----------

## Linuxpeter

Dann ist es mir ein Rätsel, warum bei dir bei kdebase -hal angezeigt wird.  :Shocked: 

----------

## Tanetal

Dann fällt mir nur noch ein, dass du in der Datei /etc/portage/package.use die Zeile

kde-base/kdebase hal

hinzufügst und schaust, ob sich dann was tut.

Greetings

/me

----------

## Yonathan

das war die lösung.

in der /etc/portage/package.use hatte ich noch -hal eingetragen  :Confused:   :Confused:   :Confused: 

jetzt geht es problemlos  :Very Happy: 

vielen dank.

yona

----------

## Tanetal

Pfeift!  :Very Happy: 

Freut mich zu hören.

Have fun

Tanetal

----------

## null_

Ich benutze GNOME 2.10 und den gnome-volume-manager. Funktioniert auch ohne Probleme usw, allerdings habe ich folgendes Problem:

Mein Computer hat ein DVD Laufwerk. Wenn ich eine DVD einlege, wird diese auch schön brav mit VLC abgespielt, wie eingestellt. Drücke ich allerdings den Auswerfenknopf an meinem Laufwerk, bleibt die CD so lange drin, bis ich sie selber umounte oder mit Rechtsklick + Eject rauswerfe.

Gibt's da eine Lösung, damit der das automatisch umountet wenn ich den Knopf drücke?

----------

## firefly

tja so einfach ist das nicht, da beim mounten das Laufwerk gelockt wird, d.h. die Auswurftaste wird komplett ignoriert vom gerät/system. 

Das einzigste was du machen könntest ist folgendes:

Schau mal im gnome-volume-manager ob du dort einstellen kannst das beim mounten das device nocht gelockt wird.

gruß

firefly

----------

## null_

Das heisst ich muss dafür SubFS gebrauchen und famd sagen, er soll das CD Device ignorieren?

----------

## furanku

Eine "dynamische fstab" ist eigentlich keine so gute Idee. Dies ist eine der zentralen Konfigurationsdateien eines Unix Systems, und darin andauernd herumzuschreiben, wenn ein User seine Digitalkamera oder einen USB Stick anschließt schrei geradezu danach, daß es irgendwann mal in die Hose geht und ihr ein nicht mehr bootendes System habt.

Aus diesem Grund wurde pmount entwickelt. Ein Howto (das bei mir ganz gut funktioniert hat) für KDE+DBUS+HAL+pmount finder ihr hier, Gentoo spezifische informationen (auch was bei mir mit pmount noch nicht richtig funktioniert) am Ende von diesem Thread

----------

