PROJET AUTOBLOG


Planet-Libre

source: Planet-Libre

⇐ retour index

Thuban : Monter automatiquement un disque depuis OpenBSD 6.0

dimanche 11 septembre 2016 à 11:10

La 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.

Gravatar de Thuban
Original post of Thuban.Votez pour ce billet sur Planet Libre.