pmount c’est bien mais crée une entrée dans fstab c’est mieux. Les paquets existants sont un peu des usines à gaz. Donc un eplongée dans udev et finalement faire un système créant des répertoires et des entrées correspondantes dans fstab et les enlevant au retrait est très simple avec udev:
- Le programme effectuant les manipulations:
[code]/lib/udev/usb_fstab.sh:
#!/bin/sh
date >> /tmp/dev_usb
echo $ACTION >> /tmp/dev_usb
echo $1 $ID_FS_TYPE $ID_TYPE >> /tmp/dev_usb
echo $ID_SERIAL >> /tmp/dev_usb
echo “----------”>> /tmp/dev_usb
if [ “$ACTION” = “add” ] ; then
NOM=$1_$ID_SERIAL
DEVICE=/dev/$1
if [ “$ID_FS_TYPE” = “” ] ; then
ID_FS_TYPE=auto
fi
mkdir -p /media/$1
echo “#$NOM” >> /etc/fstab
if grep -q $DEVICE /etc/fstab > /dev/null ; then
echo -n “#” >> /etc/fstab
fi
echo $DEVICE /media/$1 $ID_FS_TYPE user,defaults 0 0 >> /etc/fstab
fi
if [ “$ACTION” = “remove” ] ; then
NOM=.*_$ID_SERIAL
DEVICE=/dev/$1
umount -f /media/$1
rmdir /media/$1
while [ -f /tmp/fstab ] ; do /bin/true ; done
echo “sed -e '/^#”$NOM"/{N;d}’ /etc/fstab > /tmp/fstab"> /tmp/edite.$1
cp /etc/fstab /tmp/fstab.$1
sh /tmp/edite.$1
mv /tmp/fstab /etc/fstab
fi
[/code]
et la règle appelant ce programme lors de l’insertion des clefs (c’est ça qui a été long à faire):
[code]/etc/udev/rules.d/z99_clef.rules
ACTION==“add”, ENV{SUBSYSTEM}==“block”, ENV{ID_TYPE}==“floppy” , PROGRAM="/lib/udev/usb_fstab.sh %k"
ACTION==“add”, ENV{SUBSYSTEM}==“block”, ENV{ID_FS_TYPE}!="" , PROGRAM="/lib/udev/usb_fstab.sh %k"
ACTION==“remove”, ENV{SUBSYSTEM}==“block”, ENV{ID_TYPE}==“floppy” , PROGRAM="/lib/udev/usb_fstab.sh %k"
ACTION==“remove”, ENV{SUBSYSTEM}==“block”, ENV{ID_FS_TYPE}!="" , PROGRAM="/lib/udev/usb_fstab.sh %k"
[/code]
J’en ai fait un paquet plugusb disponible pour Etch sur
deb boisson.homeip.net/debian etch divers
Finalement, udev est plus souple que hotplug à l’usage