créer un dossier ~/.bin et y mettre le script ci-dessous (que nous appellerons massmount)
#!/bin/sh udisksctl dump | awk -F':\n' -v'RS=\n\n' '/[ \t]*HintAuto:[ \t]*true/&&/\.Filesystem:/{ print $1 }' | while read dev do udisksctl mount --object-path "${dev##*/UDisks2/}" done
rendre le script exécutable
chmod ug+x ~/.bin/massmount
créer un fichier .xsessionrc dans votre /home
PATH=$HOME/.bin:$PATH
créer un fichier massmount.desktop que nous placerons dans ~/.config/autostart/
[Desktop Entry] Encoding=UTF-8 Exec=massmount Name=Automatically mount removable media Comment= Terminal=false Type=Application StartupNotify=false NoDisplay=true
avec tout ça, les medias usb connectés seront montés automatiquement à l'ouverture de la session.
https://wiki.archlinux.org/index.php/Udisks#inotify créer un script que nous appellerons automount et que nous placerons dans ~/.bin
#!/bin/bash pattern='sd[b-z][1-9]$' coproc inotifywait --monitor --event create,delete --format '%e %w%f' /dev while read -r -u "${COPROC[0]}" event file; do if [[ $file =~ $pattern ]]; then case $event in CREATE) echo "Settling..."; sleep 1 udisksctl mount --block-device $file --no-user-interaction ;; DELETE) ;; esac fi done
le rendre exécutable
chmod ug+x ~/.bin/automount
créer un fichier automount.desktop que nous placerons dans ~/.config/autostart/
[Desktop Entry] Encoding=UTF-8 Exec=automount Name=Automatically mount removable media Comment= Terminal=false Type=Application StartupNotify=false NoDisplay=true
inotifywait sera lancé au démarrage de la session et surveillera les changements de /dev, et montera automatiquement les media usb que nous connecterons.
script à placer dans le dossier /bin utilisateur
utilisation de udisks2
#!/bin/sh # udisks2 doit être installé demonte() { udisksctl dump | awk -F':\n' -v'RS=\n\n' '/[ \t]*HintAuto:[ \t]*true/&&/\.Filesystem:/{ print $1 }' | while read dev do # udisksctl mount --object-path "${dev##*/UDisks2/}" udisksctl unmount -p "${dev##*/UDisks2/}" done } monte() { udisksctl dump | awk -F':\n' -v'RS=\n\n' '/[ \t]*HintAuto:[ \t]*true/&&/\.Filesystem:/{ print $1 }' | while read dev do # udisksctl mount --object-path "${dev##*/UDisks2/}" udisksctl mount -p "${dev##*/UDisks2/}" done } usage() { #echo "test" notify-send "Usage: $0 [-u] [-m]" "\-u unmoun - démonte les médias usb \n-m mount - monte les médias usb" } echo "$0 $1" if [ -n $1 ] && [ "$1" = "-m" ] then monte elif [ -n $1 ] && [ "$1" = "-u" ] then demonte else usage fi
sev-usb -u → démonte l’ensemble des médias usb
sev-usb -m → monte l'ensemble des médias usb