Table des matières

Montage automatique d'un média USB

Introduction

Installation

Médias connectés à l'ouverture de la session

créer un dossier ~/.bin et y mettre le script ci-dessous (que nous appellerons massmount)

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/

massmount.desktop
[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.


Montage automatique des médias quand on les connecte

https://wiki.archlinux.org/index.php/Udisks#inotify créer un script que nous appellerons automount et que nous placerons dans ~/.bin

automount
#!/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/

automount.desktop
[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.


Montage / Démontage des médias USB

script à placer dans le dossier /bin utilisateur
utilisation de udisks2

sev-usb
#!/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

utilisation :

sev-usb -u → démonte l’ensemble des médias usb
sev-usb -m → monte l'ensemble des médias usb

Liens