• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Automounter beeinflussen

Hallo Leute!

Ich habe derzeit über USB sowohl einen Stick als auch eine externe Festplatte in Verwendung und an sich funktioniert ja alles. Nur 2 Dingen stören mich:

1.) Die Geräte werden als /dev/sda1 oder /dev/sdb1 erkannt. Das Problem ist nur, dass das davon abhängt, was zuerst angesteckt/eingeschaltet wurde. Das erste Gerät wird dann /dev/sda1, das zweite /dev/sdb1, was natürlich für einen Eintrag ins /etc/fstab äußerst blöd ist, weil sich die Zuordnung immer ändert.

Wisst ihr eine Möglichkeit wie ich das in den Griff kriegen könnte?

2.) Der Automounter hängt mir die Platten immer unter /media/usb-seriennummer ein, was zwar gut und schnell funktioniert, ich es aber sehr unkomfortabel finde wenn ich mir immer die Seriennimmer merken muss. Noch schlimmer wirds dann wenn mir jemand einen weiteren USB-Stick ansteckt, dann kenn ich mich überhaupt nicht mehr aus.

Wisst ihr eine Möglichkeit, wie ich das automatisch einhängen beeinflussen kann, zum Beispiel würde ich gerne die Platte unter /dev/extern und den Stick unter /dev/usbstick einhängen.

lg markus
 
OP
M

Markus Wagner

Member
Gut, also erstes Problem konnte ich selbst lösen, man kann die Geräte auch als
/dev/disk/by-id/Hama-FlashPen1
/dev/disk/by-path/usb-0BE06550D022094B:0:0:0p1
ansprechen. :)

Für zweites Problem suche ich aber noch nach einer Lösung.
 

misiu

Moderator
Teammitglied
http://portal.suse.de/sdb/de/2005/05/dkukawka_hal_mountpoints.html

MfG
misiu
 
OP
M

Markus Wagner

Member
Danke, das hab ich dann auch noch gefunden, gilt aber nur für SuSE 9.3, nicht für 9.1

Hab aber jetzt selbst rausgefunden wies funktioniert nach Studium der Logs. Habe dann die Funktionen mount_media() und unmount_media() in der Datei /etc/hotplug/hotplug.subfs.functions gepatcht, sodass zuerst versucht wird über /etc/fstab zu mounten und erst dann die übliche Prozedur gestartet wird.

Wenns wen interessiert, stell ichs gern hier rein, funktioniert aber glaub ich nur unter 9.1.
 

misiu

Moderator
Teammitglied
Aus deinem Beitrag ging nicht hervor, dass es SuSE 9.1 ist und
ich habe nicht nachgefragt, na ja...
Du kannst es den "Wichtigen" Beiträgen anschlissen, oder
stell hier rein, dann übertrage ich es.

MfG
misiu
 
OP
M

Markus Wagner

Member
Ich weiß, ich hab vergessen, dazuzusagen, dass es 9.1 ist, hatte nicht gedacht, dass da so ein Unterschied ist, aber hinterher ist man immer schlauer.

Folgende Codezeilen habe ich hinzugefügt: (Datei /etc/hotplug/hotplug.subfs.functions)

Code:
function mount_media()
{
	...

            #
	# make it possible to use an explicit file
	#
	[ "$3" ] && desktop="$3"
	
	if [ ! -e "$MPDIR" ]; then
		mkdir "$MPDIR"
	fi

	# by Markus Wagner
	# First try to use mountpoint in /etc/fstab		
	if [[ $(less /etc/fstab | grep "/dev/$1") ]]; then
		if [[ ! $(less /etc/fstab | grep "/dev/$1"| cut --fields=1,2 | grep "#") ]]; then
			mesg "Mountpoint in /etc/fstab: $(less /etc/fstab | grep "/dev/$1" | cut --fields=2)"
			if [[ "$(less /etc/fstab | grep "/dev/$1" | cut --fields=2)" ]]; then
				$(mkdir "$(less /etc/fstab | grep "/dev/$1" | cut --fields=2)")
				mesg "mount /dev/$entry"
				mount /dev/$entry
				return
			fi
		fi
	fi
	
            #
	# create mountpoint and mount device
	#
	if [ ! -e "$MPDIR" ]; then
		mkdir "$MPDIR"
	fi
	...
}

function unmount_media()
{
	entry="$1"
	device="/dev/$entry"

	# by Markus Wagner
	# If mountpoint in /etc/fstab was used, work with it	
	if [[ -e "$(less /etc/fstab | grep "/dev/$1" | cut --fields=2)" ]]; then
		mesg "umount /dev/$entry"
		umount /dev/$entry
		$(rm -r "$(less /etc/fstab | grep "/dev/$1" | cut --fields=2)")
		return
	fi

	#
	# create mountpoint and mount device
	#
	umount $device -t subfs
	if [ "$?" == "0" ]; then
		#
		# remove desktop file
		#
		rm -f $DESKTOPDIR/${entry##*/}.desktop

 		rmdir  $MPDIR/${entry##*/}
		[ -e /usr/sbin/hwscanqueue ] && hwscanqueue --partition $device
	fi
}

Ich weiß, ist jetzt nicht die Offenbarung was Stil und Verständlichkeit betrifft, aber bei mir funktionierts. Im Prinzip sieht er nur in der /etc/fstab nach, ob es einen Eintrag gibt und nimmt den. Wenn es keinen gibt, dann macht er weiter so wie immer.

Was man beachten muss:
In der /etc/fstab müssen die Einträge in der Form "/dev/disk/by-path/hardwarennummer" vorliegen, ein "/dev/sda1" oder sowas erkennt er nicht. Außerdem muss nach der ersten und zweiten Spalte in /etc/fstab ein Tabulator kommen, Leerzeichen kennt er glaube ich nicht.

lg markus

PS: Gibts in diesem Board keine Möglichkeit eine Datei anzuhängen, weil sonst würd ich das tun.
 
Oben