Thuban : Monter automatiquement un disque depuis OpenBSD 6.0
dimanche 11 septembre 2016 à 11:10La version 6.0 a supprimé l'option kern.usermount qui permettait à un simple utilisateur de monter un disque. Cela a entrainé l'inefficacité du démon toad qui se chargeait de monter les disques de façon transparente.
Heureusement, tout n'est pas perdu. Il est possible d'utiliser le démon hotplug qui se charge de lancer un script /etc/hotplug/attach lorsqu'un appareil est branché en USB.
Après un peu de recherche, on s'aperçoit qu'il est très simple de vérifier qu'il s'agit bien d'un disque qui est branché. Le man hotplug aide beaucoup ☺. Puis on bricole un peu, et on s'aperçoit que quelqu'un l'a déjà fait.
En gros, on commence par activer hotplugd :
# pkg_add hotplugd
# rcctl enable hotplugd
# rcctl start hotplugd
On remplit ensuite le script /etc/hotplug/attach avec :
#!/bin/sh DEVCLASS=$1 DEVNAME=$2 MOUNTROOT="/mnt" case $DEVCLASS in 0) if [ -n "$(echo $DEVNAME | grep -o "ugen[0-9]")" ]; then DEVDESCR=$(usbdevs -d | grep -B1 $DEVNAME | sed -Ee 's/ addr [0-9]+: (.+)$/\\1/' -e 1q) if [ "${DEVDESCR}" == "HL-2130 series, Brother" ]; then chown _cups /dev/${DEVNAME}.* /dev/usb1 fi fi ;; 2) # disk devices # thanks to # https://www.tumfatig.net/20110903/automount-usb-stick-on-openbsd/ disklabel=`/sbin/disklabel $DEVNAME 2>&1 | sed -n '/^disk: /s/^disk: //p'` case $disklabel in "SCSI disk") slices=`/sbin/disklabel $DEVNAME 2>&1 | sed -n '/^ *[abd-z]: /s/^ *\\([abd-z]\\):.*/ \\1/p'` echo $slices > /tmp/test for slice in ${slices}; do mkdir -p -m 1777 $MOUNTROOT/$DEVNAME$slice mount /dev/$DEVNAME$slice $MOUNTROOT/$DEVNAME$slice done ;; esac ;; esac exit
Maintenant, à chaque fois qu'un disque est branché, des dossiers sont créés dans /mnt pour monter les disques. Et un simple utilisateur peut écrire dedans. Youhou! ☺
Tout ceci a été repris dans le wiki.
Original post of Thuban.Votez pour ce billet sur Planet Libre.