# Script pour monter en auto les clé USB

**URL:** <https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 1:33 UTC](https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745 "2016-02-21T01:33:38Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 21, 2016, 1:33 UTC](https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745/1 "2016-02-21T01:33:38Z")

</div>

Bon je galère un poil là je me suis appuyer sur ce script pour une bonne base

[http://www.debian-fr.org/automount-en-regles-udev-uniquement-t24845.html#p310289](http://www.debian-fr.org/automount-en-regles-udev-uniquement-t24845.html#p310289)

J’ai pour l’instant commencer sérieusement la lecture de ceci :

[https://wiki.archlinux.org/index.php/Udev#Auto\_mounting\_USB\_devices](https://wiki.archlinux.org/index.php/Udev#Auto_mounting_USB_devices)

En particulier la partie sur le chiffrement et la prise en charge des cartes SD.

Je rencontre un souci pour l’instant assez ennuyeux mais surement pas grave depuis le début d’après midi avec le premier script de mougly.  
Les clés USB monte bien mais ne se démonte pas bien, de plus les entrées dans le fstab persistent ( j’ai surement dût faire une énorme gaffe c’est pour ça que j’attaque la relecture complète ).  
Et je cherche aussi le moyen pour pouvoir “binder” le montage et le démontage de partition sur disque dur USB.

Je repasserai ce soir ( petite tête blonde envahissante à l’heure actuelle ![:005](https://www.debian-fr.org/uploads/default/original/1X/cdd45e7dd754015ac5291329b843a2851a0d4fe8.gif "chaud") ![:005](https://www.debian-fr.org/uploads/default/original/1X/cdd45e7dd754015ac5291329b843a2851a0d4fe8.gif "chaud") ) pour vous dire ce qu’il en est si jamais des gens ont des idées d’où ça peut provenir n’hésitez pas j’aimerai bien aboutir rapidement sur cet “automont” de clé USB et de disque dur.

- EDIT - Ouhps le Tajine m’a cloué au canapé hier soir ![:118](https://www.debian-fr.org/uploads/default/original/1X/d1e19597f004a3fd88435bfd0efb9a00e740a16a.gif "langue-yeux")

Bon j’ai fait une relecture te comparer un peut au script de mougly et j’ai donc bel et bien cerner le souci, le “fstab” n’est pas re écris au démontage de la clé USB du coup après plusieurs branchement de la même clé USB mon fstab est littéralement pollué 😕 .

Du coup ça me saoul je vois pas où ça coince dans le script 😕

[code]#!/bin/bash  
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 `echo $mntpnt | tr ' ' '_'` $mntopt \>\> /tmp/dev\_usb  
echo “----------”\>\> /tmp/dev\_usb

#Ajustement pour les noms avec espace  
v\_=$IFS  
IFS=’  
’

# Action ADD

if [“$ACTION” = “add”] ; then  
NOM=$1\_$ID\_SERIAL  
DEVICE=/dev/$1  
if [“$ID\_FS\_TYPE” = “”] ; then  
ID\_FS\_TYPE=auto  
fi  
while [-f /tmp/\_\_insertusb] ; do /bin/true ; done  
touch /tmp/\_\_insertusb  
mkdir -p `echo $mntpnt | tr ' ' '_'`  
echo “#$NOM” \>\> /etc/fstab  
if grep -q "$DEVICE " /etc/fstab \> /dev/null ; then  
echo -n “#” \>\> /etc/fstab  
fi  
if [$ID\_FS\_TYPE = ntfs] ; then  
ID\_FS\_TYPE=ntfs-3g  
chmod 777 `echo $mntpnt | tr ' ' '_'`  
fi  
echo $DEVICE `echo $mntpnt | tr ' ' '_'` $ID\_FS\_TYPE users,defaults,uid=1000,gid=1000 0 0 \>\> /etc/fstab  
/bin/mount $DEVICE  
rm /tmp/\_\_insertusb  
fi

# Action REMOVE

if [“$ACTION” = “remove”] ; then  
NOM=$1\_$ID\_SERIAL  
DEVICE=/dev/$1  
while [-f /tmp/fstab\_mod] ; do /bin/true ; done  
touch /tmp/fstab\_mod  
/bin/umount -f `echo $mntpnt | tr ' ' '_'`  
/bin/rmdir `echo $mntpnt | tr ' ' '_'`

# echo “sed -e '/^#”$NOM"/{N;d}’ /etc/fstab \> /tmp/fstab\_$1"\> /tmp/edite.$1

# cp /etc/fstab /tmp/fstab.$1

# sh /tmp/edite.$1

```
LISTE=`cat /etc/fstab | grep " /home/clochette/media" | awk '{print $2}' | sed -e 's|/home/clochette/media/||' | sort -u`
cp /etc/fstab /tmp/fstab
for device in $LISTE ; do

```

if [! -d /home/batbat/media/$device] ; then  
grep -v $device’ ’ /tmp/fstab | grep -v $device’_’ \> /tmp/fstab_$device  
cp /tmp/fstab\_$device /tmp/fstab  
fi  
done  
if [`ls -l /tmp/fstab_$device | awk '{print $5}'` = “0”] ; then  
touch /tmp/panique.$1  
else  
mv /tmp/fstab\_$device /etc/fstab  
fi  
rm /tmp/fstab\_mod  
fi

IFS=$v\_

exit 0[/code]

les règles associé :

[code]# ne jamais laisser une variable d’environnement vide  
ACTION==“add”, ENV{mntopt}="-t auto"  
ACTION==“add”, ENV{mntpnt}="/home/clochette/media/%k"  
ACTION==“add”, ENV{mntname}=“usb\_disk”

# détermination du point de montage et du FS

ACTION==“add”, ENV{ID\_BUS}==“usb”, ENV{SUBSYSTEM}==“block”, ENV{ID\_FS\_TYPE}!="" , PROGRAM=="/sbin/blkid -c /dev/null -s TYPE -o value %N", RESULT==“vfat”,ENV{mntopt}="-t vfat -o uid=1000"  
ACTION==“add”, ENV{ID\_BUS}==“usb”, ENV{SUBSYSTEM}==“block”, ENV{ID\_FS\_TYPE}!="" , PROGRAM=="/sbin/blkid -c /dev/null -s LABEL -o value %N", RESULT!="", ENV{mntname}="%c",ENV{mntpnt}="/home/clochette/media/$env{mntname}",

# on vÃ©rifie que le point de montage n’est pas déjà utilisé

# s’il l’est on redéfinit le point de montage à /home/clochette/media/%k qui est unique

ACTION==“add”, PROGRAM!="/bin/mountpoint $env{mntpnt}", GOTO=“MONTER”  
ACTION==“add”, ENV{mntpnt}="/home/clochette/media/%k", ENV{mntname}=“usb\_disk”

# Quoi faire

LABEL=“MONTER”  
ACTION==“add”, ENV{ID\_BUS}==“usb”, ENV{SUBSYSTEM}==“block”, ENV{ID\_FS\_TYPE}!="", RUN+="/lib/udev/usb\_fstab.sh %k"  
ACTION==“remove”, ENV{ID\_BUS}==“usb”, ENV{SUBSYSTEM}==“block”, ENV{ID\_FS\_TYPE}!="" , RUN+="/lib/udev/usb\_fstab.sh %k"[/code]

d’où pourrait provenir ce souci ![:think:](https://www.debian-fr.org/uploads/default/original/1X/98cae0704aea0201d04f151843e80a3ecd391eca.gif "Think")

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 21, 2016, 1:33 UTC](https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745/2 "2016-02-21T01:33:53Z")

</div>

bon j’ai commencé à revoir de fond en comble les règles de montage pour inclure le déchiffrement à la volée d’une carte SD qui me sert habituellement pour stocker mes différentes clés de chiffrement.

Maintenant ce qui me gène c’est la partie automatique du montage des clés je ne pige toujours pas pourquoi le fstab n’est pas re écrit au propre après démontage des clés 😕

---

<div class="post-metadata">

**Author:** ![valrik](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/db5fbb/32.png) [@valrik](https://www.debian-fr.org/u/valrik)\
**Post date:** [Février 21, 2016, 1:35 UTC](https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745/3 "2016-02-21T01:35:01Z")

</div>

Salut Clochette,  
Sans vouloir offenser qui que ce soit, il me semble que modifier le fstab en dynamique afin de monter des périphériques amovibles n’est pas la bonne approche.

En effet, udev.d à été créer pour éviter cela ! (enfin entre autres 😉). Car le fstab est plutôt voué à une gestion statique des mémoires masse. A l’installation du système, ajout d’un disque fixe, à la limite montage d’une clé pour l’administrateur qui vient souvent sur la station. Vouloir bidouiller le fstab c’est prendre des risques énormes pour le système. En effet, imagine qu’un bogue se glisse dans ton script, après une modification pour amélioration par exemple, te détériore ton fstab… Tu risques de ne plus pouvoir redémarrer ton système, et là, bonjour le rescuedisk ! et encore si tu as les bonnes sauvegardes, ou bien il faut tout reprendre à la main ! Pas très glamour…

Donc le chef d’orchestre ne doit pas être un script, mais bien le démon udev.d. Il fait tout le travail pour toi, sous réserve des bonnes règles (les fameuses rules).

C’est pour pourquoi, je t’engage vivement à lire les documents pointés par les liens suivants :  
[http://www.reactivated.net/writing\_udev\_rules.html](http://www.reactivated.net/writing_udev_rules.html)  
[http://www.linuxjournal.com/article/7316?page=0,0](http://www.linuxjournal.com/article/7316?page=0,0)

Personnellement, j’utilise souvent des règles comme :

# Attribution d’un lien symbolique pour la clé USB Kingston 512Mo

ENV{ID\_FS\_LABEL}==“PH\_KING\_512”, ENV{ID\_FS\_UUID}==“9CE4-0FB7”, SUBSYSTEM==“block”, SYMLINK+="cle\_USB\_photo\_kingston\_512"  
Puis, je monte à la main, avec pmount /dev/le\_lien\_symbolique\_du\_periph, en l’occurrence /dev/cle\_USB\_photo\_kingston\_512.  
Et un pumount pour démonter. Une fois cela fait, udev.d supprime automatiquement les lien et le périphérique associé. Magique !  
RUN+=“un\_script” peut servir pour le montage automatique.

Une dernière chose… udevadm a un tas d’outils très pratiques (monitor, info…). n’hésite pas à me demander des renseignements…  
Bon courage.

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 21, 2016, 1:35 UTC](https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745/4 "2016-02-21T01:35:02Z")

</div>

[quote=“valrik”]Salut Clochette,  
Sans vouloir offenser qui que ce soit, il me semble que modifier le fstab en dynamique afin de monter des périphériques amovibles n’est pas la bonne approche.

En effet, udev.d à été créer pour éviter cela ! (enfin entre autres 😉). Car le fstab est plutôt voué à une gestion statique des mémoires masse. A l’installation du système, ajout d’un disque fixe, à la limite montage d’une clé pour l’administrateur qui vient souvent sur la station. Vouloir bidouiller le fstab c’est prendre des risques énormes pour le système. En effet, imagine qu’un bogue se glisse dans ton script, après une modification pour amélioration par exemple, te détériore ton fstab… Tu risques de ne plus pouvoir redémarrer ton système, et là, bonjour le rescuedisk ! et encore si tu as les bonnes sauvegardes, ou bien il faut tout reprendre à la main ! Pas très glamour…

Donc le chef d’orchestre ne doit pas être un script, mais bien le démon udev.d. Il fait tout le travail pour toi, sous réserve des bonnes règles (les fameuses rules).

C’est pour pourquoi, je t’engage vivement à lire les documents pointés par les liens suivants :  
[http://www.reactivated.net/writing\_udev\_rules.html](http://www.reactivated.net/writing_udev_rules.html)  
[http://www.linuxjournal.com/article/7316?page=0,0](http://www.linuxjournal.com/article/7316?page=0,0)

Personnellement, j’utilise souvent des règles comme :

# Attribution d’un lien symbolique pour la clé USB Kingston 512Mo

ENV{ID\_FS\_LABEL}==“PH\_KING\_512”, ENV{ID\_FS\_UUID}==“9CE4-0FB7”, SUBSYSTEM==“block”, SYMLINK+=“cle\_USB\_photo\_kingston\_512”  
Puis, je monte à la main, avec pmount /dev/le\_lien\_symbolique\_du\_periph, en l’occurrence /dev/cle\_USB\_photo\_kingston\_512.  
Et un pumount pour démonter. Une fois cela fait, udev.d supprime automatiquement les lien et le périphérique associé. Magique !  
RUN+=“un\_script” peut servir pour le montage automatique.

Une dernière chose… udevadm a un tas d’outils très pratiques (monitor, info…). n’hésite pas à me demander des renseignements…  
Bon courage.[/quote]

Mon di… tu me sauva la vie j’épluche dès ce soir la documentation et dès que j’ai le temps je travail dessus ![:033](https://www.debian-fr.org/uploads/default/original/1X/42cd8bd0447ecac24cdff1e26fa990a5c8442791.gif "petard")

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 21, 2016, 2:17 UTC](https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745/5 "2016-02-21T02:17:59Z")

</div>

UHu uhhuh je viens de trouver pmount dans le dépôt experimental qui n’utilise plus hal du coup plus besoin de script pour tordu ![:033](https://www.debian-fr.org/uploads/default/original/1X/42cd8bd0447ecac24cdff1e26fa990a5c8442791.gif "petard")

---

<div class="post-metadata">

**Author:** ![eol](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/e/b782af/32.png) [@eol](https://www.debian-fr.org/u/eol)\
**Post date:** [Février 21, 2016, 2:18 UTC](https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745/6 "2016-02-21T02:18:12Z")

</div>

Et il monte automatiquement tes clés lors de leur insertion sans aucune intervention de ta part ?

---

<div class="post-metadata">

**Author:** ![Clochette](https://www.debian-fr.org/user_avatar/www.debian-fr.org/clochette/32/8757_2.png) [@Clochette](https://www.debian-fr.org/u/Clochette)\
**Post date:** [Février 21, 2016, 2:18 UTC](https://www.debian-fr.org/t/script-pour-monter-en-auto-les-cle-usb/31745/7 "2016-02-21T02:18:12Z")

</div>

> [@](#):
>
> Et il monte automatiquement tes clés lors de leur insertion sans aucune intervention de ta part ?

Non mais je reprends le problème autrement, et je pense que pour cette fin de semaine j’aurai eu le temps de faire le tour des différentes possibilités donné par “pmount” ( soit un petit bout de code dans mon bashrc, soit par le biais d’un script rattaché à un raccourci clavier, soit une règle udev, voir même une entrée dans “Dmenu” je suis pas encore décidé car ça à du bon aussi de choisir quand monter la clé ).

- EDIT - d’ailleurs en écrivant ces quelques lignes j’ai à mon avis touché le point sensible … Dmenu … ![:083](https://www.debian-fr.org/uploads/default/original/1X/d14bbab5e0eb9167fe7ed1d009c5a9b723425957.gif "yeux-ciel")
