USB Speicher automatisch per Skript mounten
USB Speicher automatisch per Skript mounten
Hi,
zur Verwaltung meiner Digikam und meiner USB-Sticks habe ich ein kleines Script /etc/hotplug/usb/usb-storage geschrieben, das beim Einstecken eines USB-Speichers diesen erkennt und entweder fest nach /mnt/camera (die Kamera) oder nach /mnt/sd[a-z][1-9] mouted. Auf dem KDE-Desktop erscheint pro Partition ein Icon, das beim Abziehen wieder verschwindet. Läuft sehr gut unter 2.6.x und gut unter 2.4.x.
Ich traue es mich nicht so recht zu sagen, ich bin ein Abweichler, mein System ist Kanotix BH7A.
Alles weitere dort
Ciao Martin
zur Verwaltung meiner Digikam und meiner USB-Sticks habe ich ein kleines Script /etc/hotplug/usb/usb-storage geschrieben, das beim Einstecken eines USB-Speichers diesen erkennt und entweder fest nach /mnt/camera (die Kamera) oder nach /mnt/sd[a-z][1-9] mouted. Auf dem KDE-Desktop erscheint pro Partition ein Icon, das beim Abziehen wieder verschwindet. Läuft sehr gut unter 2.6.x und gut unter 2.4.x.
Ich traue es mich nicht so recht zu sagen, ich bin ein Abweichler, mein System ist Kanotix BH7A.
Alles weitere dort
Ciao Martin
Zuletzt geändert von horo am 07.09.2004 18:21:17, insgesamt 1-mal geändert.
Sorry, wenn ich gegen irgendwelche Forums-Richtlinien verstoßen haben sollte. Aber glaub mir, wenn ich eine Frage hätte, so stellte ich sie auch.
Nee, im Ernst, ich hatte gesehen, daß bei uns und auch hier immer das Problem des automatischen Mountens von USB-Sticks und Kameras hochkommt und wollte daher mein Skript zur Verfügung stellen.
Ciao Martin
Nee, im Ernst, ich hatte gesehen, daß bei uns und auch hier immer das Problem des automatischen Mountens von USB-Sticks und Kameras hochkommt und wollte daher mein Skript zur Verfügung stellen.
Ciao Martin
- gOtNoPhEaR
- Beiträge: 863
- Registriert: 17.04.2004 15:49:29
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: Gau-Algesheim
-
Kontaktdaten:
Hi,
mein Skript ist zur Zeit "work in progress", im Kanotix-Forum ist der Thread schon >50 Beiträge lang, das wollt ich Euch ersparen. Ein paar Ungereimtheiten existieren noch, wenn die weg sind kommt 'ne stabile Version ins Debian-Wiki. Ansonsten wird die aktuelle Version im Kanotix-Wiki gepflegt.
Ciao Martin
P.S.: Hat's denn überhaupt schon jemand ausprobiert?
mein Skript ist zur Zeit "work in progress", im Kanotix-Forum ist der Thread schon >50 Beiträge lang, das wollt ich Euch ersparen. Ein paar Ungereimtheiten existieren noch, wenn die weg sind kommt 'ne stabile Version ins Debian-Wiki. Ansonsten wird die aktuelle Version im Kanotix-Wiki gepflegt.
Ciao Martin
P.S.: Hat's denn überhaupt schon jemand ausprobiert?
USB Speicher automatisch mounten, mein Skript
Hi bart,
Du wolltest es nicht anders:
Dieser Schnappschuß aus dem Kanotix Wiki läuft bei mir ohne Probleme auf Kanotix Bug Hunter 7A mit Kernel 2.6.8.1. Für 2.4er Systeme geht es auch, es sind aber einige tools erforderlich, z.B. "scsiinfo" und "scsi_info".
(Kanotix ist die optimierte Version von Knoppix, dem von CD lauffähigen Debian. Kanotix kann problemlos auf Platte installiert werden, man hat dann ein Sid.)
Anmerkung:
Das Skript steht im Wiki, damit man es aktualisieren kann. Bei Problemen erstmal schauen, ob es schon eine neue Version gibt:
Ciao Martin
Du wolltest es nicht anders:
Dieser Schnappschuß aus dem Kanotix Wiki läuft bei mir ohne Probleme auf Kanotix Bug Hunter 7A mit Kernel 2.6.8.1. Für 2.4er Systeme geht es auch, es sind aber einige tools erforderlich, z.B. "scsiinfo" und "scsi_info".
(Kanotix ist die optimierte Version von Knoppix, dem von CD lauffähigen Debian. Kanotix kann problemlos auf Platte installiert werden, man hat dann ein Sid.)
Anmerkung:
Das Skript steht im Wiki, damit man es aktualisieren kann. Bei Problemen erstmal schauen, ob es schon eine neue Version gibt:
Code: Alles auswählen
#! /bin/bash
#
# /etc/hotplug/usb/usb-storage
# Version 20040906
#
function makeCameraIcon {
cat << EOF > $MYDESKTOPFILE
[Desktop Entry]
Name=Camera
Name[de]=Kamera
Type=Link
URL=/mnt/camera/
Actions=Sync;Digikam
Icon=camera
Comment=digital camera
Comment[de]=Digitalkamera
[Desktop Action Digikam]
Exec=/usr/bin/digikam;/bin/sync
Icon=camera
Name=Organize pictures
Name[de]=Bilder verwalten
[Desktop Action Sync]
Exec=/bin/sync
Icon=filesave
Name=Save changes
Name[de]=Änderungen speichern
EOF
}
function makeStorageIcon {
cat << EOF > $MYDESKTOPFILE
[Desktop Entry]
Name=USBStick [$MYPARTITION]
Type=Link
URL=$MYMOUNT
Actions=Sync
Icon=usb
Comment=USB storage device
Comment[de]=USB Speichergerät
[Desktop Action Sync]
Exec=/bin/sync
Icon=filesave
Name=Save changes
Name[de]=Änderungen speichern
EOF
}
DEBUG=0
LOGFILE=$0.log
echo "PRODUCT=$PRODUCT" > $LOGFILE
MYMOUNT=""
#
# (known) digicams are mounted at /mnt/camera
#
case "$PRODUCT" in
3f0/4002/100) # HP photosmart 120 (mass storage mode)
MYMOUNT="/mnt/camera"
;;
esac
# # # # # # # # # #
#
# doesn't work with kernel 2.6.x
#
function PRODUCT_to_SCSI {
MYGUID=`echo $PRODUCT | awk -F/ '{printf "%04x%04x", strtonum("0x"$1), strtonum("0x"$2)}'`
grep -lr "^ *GUID: $MYGUID" /proc/scsi/usb-storage-* | xargs grep -l "^ *Attached: Yes" | cut -d/ -f5
}
#
# # # # # # # # # #
# # # # # # # # # #
#
# first detecting method
# doesn't work with multiple devices
#
function find_partitions_1 {
sleep 1
# find the last line with " sdx: sdxn", x=a,b,c,... and n=1,2,3,4
dmesg | grep "^ \(sd[[:lower:]]\): \1[1234]" | tail -1 | tr -d \<\> | cut -d\ -f3-
}
#
# # # # # # # # # #
# # # # # # # # # #
#
# second detecting method
# uses scsidev command already in Kanotix
# doesn't work with kernel 2.6.x
#
function find_partitions_2 {
scsidev -lde 2>/dev/null >/dev/null
for MYSCSI in $(PRODUCT_to_SCSI $PRODUCT); do
ls -l /dev/scsi/sdc${MYSCSI}b0t?u?p*|cut -d/ -f6
done
}
#
# # # # # # # # # #
# # # # # # # # # #
#
# third detecting method
# uses scsiinfo and scsi_info commands already in Kanotix
#
function host_to_partitions {
local host=$1
local dev=""
for dev in `scsiinfo -l`; do
local HOST="-1"
eval $(scsi_info $dev 2>/dev/null)
if [ $HOST = $host ]; then
cat /proc/partitions | grep `basename ${dev}`[1-9] | awk '{print $4}'
fi
done
}
#
#
function find_partitions_3 {
for MYSCSI in $(PRODUCT_to_SCSI $PRODUCT); do
host_to_partitions $MYSCSI
done
}
#
# # # # # # # # # #
# # # # # # # # # #
#
# simple detecting method for kernel 2.6.x
#
function find_partitions_26 {
sleep 1
ls /sys/$DEVPATH/host[0-9]*/[0-9]*:[0-9]:[0-9]:[0-9]/block | grep sd[[:lower:]][[:digit:]]
}
#
# # # # # # # # # #
if [ $DEVPATH ]; then # kernel 2.6
MYPARTITIONS=$(find_partitions_26)
else
MYPARTITIONS=$(find_partitions_3)
fi
if [ "$MYPARTITIONS" ]; then
echo Partitions found: $MYPARTITIONS >> $LOGFILE
else
echo "Device not found" >> $LOGFILE
set >> $LOGFILE
exit 0
fi
mkdir -p /var/run/usb
echo "#!/bin/sh" > $REMOVER
chmod a+x $REMOVER
# find KDE user
MYXUSER=`who | grep " :0" | cut -d\ -f1`
for MYPARTITION in $MYPARTITIONS; do
MYDEVICE=/dev/$MYPARTITION
if [ "$MYMOUNT" != "/mnt/camera" ]; then
MYMOUNT=/mnt/$MYPARTITION
fi
# check if device or mountpoint already in use
mount | grep "$MYDEVICE \| $MYMOUNT " >/dev/null
if [ $? -eq 0 ]; then
echo -n "Already mounted: " >> $LOGFILE
mount | grep "$MYDEVICE \| $MYMOUNT " >> $LOGFILE
DEBUG=1
continue
fi
mkdir -p $MYMOUNT
# mount the device
MYMOUNTCMD="/bin/mount -s -o quiet,sync,gid=100,umask=002,noexec,showexec $MYDEVICE $MYMOUNT"
echo $MYMOUNTCMD>> $LOGFILE
`$MYMOUNTCMD 2>>$LOGFILE`
if [ $? -ne 0 ]; then
continue
fi
echo "/bin/umount -l $MYDEVICE" >> $REMOVER
if [ $MYXUSER ]; then
MYHOME=$(eval echo ~$MYXUSER)
case "$MYMOUNT" in
/mnt/camera)
MYDESKTOPFILE="$MYHOME/Desktop/Camera.desktop"
makeCameraIcon
;;
*)
MYDESKTOPFILE="$MYHOME/Desktop/USBStick_$MYPARTITION.desktop"
makeStorageIcon
;;
esac
chown $MYXUSER $MYDESKTOPFILE
echo "rm -f $MYDESKTOPFILE" >> $REMOVER
fi
sleep 1
done
if [ $DEBUG -ne 0 ]; then
set >> $LOGFILE
fi
Zuletzt geändert von horo am 08.09.2004 14:29:53, insgesamt 1-mal geändert.
Hallo,
drei Fragen dazu:
-Müssen die Mountpoints per Hand erstellt werden, oder macht das das Skript automatisch?
-Im Wiki steht etwas von Rechtsklick -> Änderungen speichern vor dem abziehen. Sind das keine Geräte-Icons, so dass auch Rechtsklick -> Auswerfen geht?
-Welche Programme sind dafür sonst so notwendig?
(bin leider Skript-mäßig total unerfahren!).
Aber sonst sieht das absolut super aus, ein großes Lob dafür, das ist das was ich bis jetzt an SuSE immer praktisch fand!
Gruß!
drei Fragen dazu:
-Müssen die Mountpoints per Hand erstellt werden, oder macht das das Skript automatisch?
-Im Wiki steht etwas von Rechtsklick -> Änderungen speichern vor dem abziehen. Sind das keine Geräte-Icons, so dass auch Rechtsklick -> Auswerfen geht?
-Welche Programme sind dafür sonst so notwendig?
(bin leider Skript-mäßig total unerfahren!).
Aber sonst sieht das absolut super aus, ein großes Lob dafür, das ist das was ich bis jetzt an SuSE immer praktisch fand!
Gruß!
there are only 10 types of people: those who understand binary and those who don't.
Hi arteist,
1.) passiert automatisch
2.) das sind Dateisystem-Icons, die auf /mnt/xxx zeigen.
3.) läuft mit Kanotix Bug Hunter "out of the box", gebraucht wird ein aktuelles hotplug, ansonsten grep, awk, alles Dinge, die auf jedem System vorhanden sein sollten (zumindest für kernel 2.6.x).
Ciao Martin
1.) passiert automatisch
2.) das sind Dateisystem-Icons, die auf /mnt/xxx zeigen.
3.) läuft mit Kanotix Bug Hunter "out of the box", gebraucht wird ein aktuelles hotplug, ansonsten grep, awk, alles Dinge, die auf jedem System vorhanden sein sollten (zumindest für kernel 2.6.x).
Ciao Martin
Hallo,
es läuft bei mir eigentlich Super, bis auf die Tatsache, dass meine Kamera nicht als solche erkannt wird:
Das ganze ist eine Olympus C-765 UZ. Falls du mehr Infos gebrauchen kanns, melde dich einfach bei mir (icq/jabber) oder hier im forum!
gruß
momo
es läuft bei mir eigentlich Super, bis auf die Tatsache, dass meine Kamera nicht als solche erkannt wird:
Code: Alles auswählen
Oct 15 00:39:02 rechengnom kernel: usb 2-2: new full speed USB device using address 3
Oct 15 00:39:04 rechengnom kernel: Initializing USB Mass Storage driver...
Oct 15 00:39:04 rechengnom kernel: scsi1 : SCSI emulation for USB Mass Storage devices
Oct 15 00:39:04 rechengnom kernel: Vendor: OLYMPUS Model: C765UZ Rev: 1.00
Oct 15 00:39:04 rechengnom kernel: Type: Direct-Access ANSI SCSI revision: 02
Oct 15 00:39:04 rechengnom kernel: SCSI device sda: 32000 512-byte hdwr sectors (16 MB)
Oct 15 00:39:04 rechengnom kernel: sda: Write Protect is off
Oct 15 00:39:04 rechengnom kernel: sda: Mode Sense: 18 00 00 08
Oct 15 00:39:04 rechengnom kernel: sda: assuming drive cache: write through
Oct 15 00:39:04 rechengnom kernel: /dev/scsi/host1/bus0/target0/lun0: p1
Oct 15 00:39:04 rechengnom kernel: Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Oct 15 00:39:04 rechengnom kernel: Attached scsi generic sg0 at scsi1, channel 0, id 0, lun 0, type 0
Oct 15 00:39:04 rechengnom usb.agent[7734]: usb-storage: loaded successfully
Oct 15 00:39:04 rechengnom kernel: USB Mass Storage device found at 3
Oct 15 00:39:04 rechengnom kernel: usbcore: registered new driver usb-storage
Oct 15 00:39:04 rechengnom kernel: USB Mass Storage support registered.
Oct 15 00:39:05 rechengnom scsi.agent[7775]: disk at /devices/pci0000:00/0000:00:04.3/usb2/2-2/2-2:1.0/host1/1:0:0:0
Oct 15 00:39:07 rechengnom usb.agent[7734]: libgphoto2: loaded successfully
gruß
momo
there are only 10 types of people: those who understand binary and those who don't.
Hi momo,
Als "Workaround" könntest Du den Speicher partitionieren und dann neu formatieren. Oder Du passt das Skript selber an...
Ciao Martin
P.S.: Die aktuelle Version, die jetzt auch wieder ext[23], bedient, steht dort.
Deine Kamera ist als "Superfloppy" formatiert, d.h. keine Partitionen (sda1), sondern Dateisystem direkt auf sda. Das unterstützt mein Skript noch nicht, steht aber auf der ToDo-Liste, habe aber momentan wenig Zeit.Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Als "Workaround" könntest Du den Speicher partitionieren und dann neu formatieren. Oder Du passt das Skript selber an...
Ciao Martin
P.S.: Die aktuelle Version, die jetzt auch wieder ext[23], bedient, steht dort.
Hi,
um mein oben bereits erwähntes Skript zum automatischen Mounten von USB-Speicher noch etwas sicherer zu gestalten, suche ich eine Möglichkeit, um den Typ des Filesystems auf einem Device (das noch nicht gemounted ist) festzustellen. Zur Zeit verwende ich "file -Lkbs /dev/xxx". Das gibt aber gerade bei OEM-Formaten (VFAT auf Kameras und USB-Sticks) oft Probleme und Erkennungsfehler. Mit etwas Tricksen habe ich es jetzt hinbekommen, aber ich suche eine _saubere_ Lösung.
Hat jemand 'nen Tip für mich.
Ciao Martin
um mein oben bereits erwähntes Skript zum automatischen Mounten von USB-Speicher noch etwas sicherer zu gestalten, suche ich eine Möglichkeit, um den Typ des Filesystems auf einem Device (das noch nicht gemounted ist) festzustellen. Zur Zeit verwende ich "file -Lkbs /dev/xxx". Das gibt aber gerade bei OEM-Formaten (VFAT auf Kameras und USB-Sticks) oft Probleme und Erkennungsfehler. Mit etwas Tricksen habe ich es jetzt hinbekommen, aber ich suche eine _saubere_ Lösung.
Hat jemand 'nen Tip für mich.
Ciao Martin
Nein, das ist sie ganz sicher nicht. Sonst würde sie mit folgendem Eintrag in der fstab nicht laufen:horo hat geschrieben:Hi momo,
Deine Kamera ist als "Superfloppy" formatiert, d.h. keine Partitionen (sda1), sondern Dateisystem direkt auf sda. Das unterstützt mein Skript noch nicht, steht aber auf der ToDo-Liste, habe aber momentan wenig Zeit.Attached scsi removable disk sda at scsi1, channel 0, id 0, lun 0
Code: Alles auswählen
/dev/sda1 /mnt/cam vfat user,noauto,gid=1000,uid=1000,umask=0002 0 0
there are only 10 types of people: those who understand binary and those who don't.
Habe das Script bei mir gestestet - Super und Danke für die Arbeit!
Zwei Anmerkungen:
1.
Wenn man den Rechner mit eingestecktem USB-Device runterfährt, bleibt das Icon beim nächsten Neustart auf dem Desktop, unabhängig davon, ob das Device noch da ist oder nicht. Es verschwindet allerdings, wenn man das Device nochmal einsteckt und dann wieder abzieht.
2.
Gibt es irgendeinen Weg, Linux dazu zu bewegen, das sync mit dem USB-Device schneller zu machen? Ich höre nämlich meine Freundin schon schreien ("Wo sind meine Dateien, ich hatte doch alles draufkopiert ....".) Nunja, da kann man tausend Mal erklären, dass man dafür sorgen muss, den Kopiervorgang auch wirklich ab zuschließen (rechte Maustaste drücken und so) - nützt nix.
Flori
Zwei Anmerkungen:
1.
Wenn man den Rechner mit eingestecktem USB-Device runterfährt, bleibt das Icon beim nächsten Neustart auf dem Desktop, unabhängig davon, ob das Device noch da ist oder nicht. Es verschwindet allerdings, wenn man das Device nochmal einsteckt und dann wieder abzieht.
2.
Gibt es irgendeinen Weg, Linux dazu zu bewegen, das sync mit dem USB-Device schneller zu machen? Ich höre nämlich meine Freundin schon schreien ("Wo sind meine Dateien, ich hatte doch alles draufkopiert ....".) Nunja, da kann man tausend Mal erklären, dass man dafür sorgen muss, den Kopiervorgang auch wirklich ab zuschließen (rechte Maustaste drücken und so) - nützt nix.
Flori
FD - debian Sarge auf Thinkpad R51
-
- Beiträge: 369
- Registriert: 06.10.2003 11:38:14
- Wohnort: Hannover