Hallo
ich will hier mit einen kleinem Script Usb-Device mounten.
Ich habe da ein mir unerklaerliches Problem.
Ausgangslage:
USB-Geraet wird gesteckt.
#ll /dev/da*
crw-rw-rw- 1 root mount 0, 153 Feb 22 10:43 da0
crw-rw-rw- 1 root mount 0, 155 Feb 22 10:43 da1
crw-rw-rw- 1 root mount 0, 157 Feb 22 10:43 da1s4
crw-rw-rw- 1 root mount 0, 158 Feb 22 10:43 da2
dann lass ich das Script unten laufen
# mount
(...)
/dev/da1 on /mnt/USB_dd_da1 (msdosfs, local, nosuid, mounted by USER)
das ist schoen.
ABER
#ll /dev/da*ll da*
crw-rw-rw- 1 root mount 0, 153 Feb 22 10:43 da0
crw-rw-rw- 1 root mount 0, 155 Feb 22 10:43 da1
crw-rw-rw- 1 root mount 0, 158 Feb 22 10:43 da2
Das Device da1s4 ist verschwunden
Bei anderen USB-Geraeten ändern sich die Rechte des Device
trotz fixer Einstellung in /etc/devfs.conf
Vorher
#ll da*
crw-rw-rw- 1 root mount 0, 153 Feb 22 10:43 da0
crw-rw-rw- 1 root mount 0, 154 Feb 22 10:43 da0s1
Nachher
#ll /dev/da*
crw-rw-rw- 1 root mount 0, 153 Feb 22 10:43 da0
crw-r----- 1 root operator 0, 155 Feb 22 10:43 da0s1
Die Rechte fuer ad0s1 sind veraendert.
Das Script versucht mit einer Schleife alle gefundenen /dev/da*
zu mounten. Es wird bewusst nicht mit /fstab gearbeitet, weil
nicht vorherzusehen ist, wieviel Slice die Geraete mitbringen.
Wenn es kein mountfaehiges Slice findet oder das Device busy
ist gibt es halt einen Fehler und es beginnt der naechste Versuch.
Halte ich fuer legitim, weil ich vorher nicht prüfen kann, welches
Slice mountfaehige ist oder ist das uebel??
Warum dabei die Device veraendert werden kann ICH nicht verstehen?????
Mach ich da was falsch??
Hat da jemand eine Idee?
Gruss dd
#uname -a
FreeBSD grab.radio-do.ath.cx 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE #3:
Tue Feb 21 11:54:44 CET 2006
root(at)grab.radio-do.ath.cx:/usr/obj/usr/src/sys/GRAB amd64
Shellscript Ausschnitt:
#!/bin/sh
#Finden User an Screen :0
USR=`who -T | grep '? :0' | cut -f 1 -d " "`
#Finden Liste /dev/da*
DEV=`ls /dev/ | grep da | cut -f 1 -d " "`
for DEVAKTUELL in $DEV
#Beginn mount Schleife
do
DEV1=$DEVAKTUELL
# Mountdir anlegen
MOUNTDIR="USB_"$USR"_"$DEV1
mkdir /mnt/$MOUNTDIR
# Rechte im Mountdir aendern
chown $USR /mnt/$MOUNTDIR
# Mounten als User OHNE fstab Eintrag
su $USR -c "/sbin/mount_msdosfs /dev/$DEV1
/mnt/$MOUNTDIR"
done
#Ende der Mountschliefe
EOF
Das liegt noch in ...../local/etc/devd/umass.conf damit der devd mitbekommt
das was auf usb geschieht
attach 100 {
device-name "umass[0-9]+";
action "/bin/sleep 3; /etc/rc.d/devfs restart;
/usr/local/share/umass/umassaction
attach $device-name";
};
detach 100 {
device-name "umass[0-9]+";
action "/usr/local/share/umass/umassaction detach $device-name";
};
To Unsubscribe: send mail to majordomo(at)de.FreeBSD.org
with "unsubscribe de-bsd-questions" in the body of the message
Received on Wed 22 Feb 2006 - 12:28:57 CET