Automatiser le montage de volume inconnus

Bonjour à tous,

Je recherche un lien ou un bouquin qui traite à fond du montage des volumes sous Linux.

J’ai quelques bases sur le montage automatique via fstab mais j’aimerai bien passer par un script perso.

Je recherche entre autres des informations sur :

  • Comment Linux détecte quand un volume est branché/débranché (signal? interruption? etc…)
  • Comment capturer cet évènement et le traiter sans passer par fstab
  • Désactiver le montage automatique des volumes non présent dans fstab
  • Automatiser le montage par script.

En gros l’objectif c’est que dès qu’un nouveau volume est détecté, il est checké pour connaitre son système de fichier, si il a un label, on le monte dans un dossier qui porte le nom du label sinon il porte le nom de l’uuid.
Pour l’éjecter on le démonte et on supprime le dossier.
S’il est débranché sans être démonté, on supprime le dossier.

Je prévoit aussi de monter le volume sur une machine distante via sshfs mais ça viendra après.

J’ai du mal a trouver de la doc sur comment Linux détecte les volumes, j’imagine qu’une interruption doit être levée quelque part mais je suis pas sûr de pouvoir squeezer le fstab ni de pouvoir capturer l’évènement de détection.

Si quelqu’un avait un bon lien qui explique un peu tout ça en détail je serait grandement reconnaissant.

Il n’y a pratiquement plus besoin de rien c’est le travail du noyau de détecter et de monter automatiquement dans /media/xxx ou xxx est le nom de l’utilisateur
Il n’y a pas de dossier à gérer, c’est le label du disque qui est utilisé comme nom de dossier ou son identifiant s’il n’y a pas de label

https://www.debian.org/doc/manuals/debian-handbook/sect.hotplug.fr.html

Bonjour

Je te recommande de lire les pages man des commandes :
udev
udevadm
udisks
udisksctl

=======
Tu pourrais ouvrir deux fenêtres d’émulateur de terminal,

dans la première fenêtre de terminal entrer la commande :

udevadm monitor --property

dans la deuxième :

udisksctl monitor

puis ouvrir ton navigateur de fichiers.

====
Ensuite, en laissant ces 3 fenêtres ouvertes, connecter un disque ou autre périphérique de ce type (connecté par USB ou autre),
observer ce qui se passe,

puis, par le navigateur de fichiers, mounter un ou des systèmes de fichiers de ce disque ,
observer ce qui se passe,

dé-mounter le ou les systèmes de fichiers,
observer ce qui se passe,

puis éjecter ou déconnecter le disque dur de son connecteur USB
observer ce qui se passe.

Salut,

@grandtoubab
J’ai eté un oeil à ton lien et j’ai appris 2-3 trucs interessants :wink:

Par contre quand tu dit que tout est géré automatiquement, je suis daccord quand on utilise le navigateur de fichier mais quand on utilise uniquement la console, le volumes en sont pas montés automatiquement.

Après ça dépend sûrement de la config du système, peut être même de la config du gestionnaire de bureau, je sais pas ^^

En tout cas quand je branche une clé USB elle est détecté comme volume mais n’est pas montée et il y a encore moins un dossier portant le nom du label dans /media/xxx.
Dailleurs rien à voir mais je me suis toujours demandé quel script était appelé quand on clique sur le volume dans nautilus et qu’il n’est pas monté, c’est vrai que c’est super pratique.

En tout cas merci pour le lien, ça m’éclaire déjà pas mal.

@MicP

Pas mal ces outils, je connaissais pas.
J’ai encore du mal a tout capter parce que c’est quand même sacrément verbeux mais ça va me permettre de bien comprendre ce qu’il se passe :wink:

Donc si je vous suis bien tout les deux, il faudrai que je crée une règle générique dans /etc/udev/rules.d/ qui va faire en sorte qu’à chaque fois qu’un volume USB est détecté (que ce soit la première fois ou pas) il soit monté à un emplacement selon son label ou son uuid et qu’une fois fait, qu’il soit monté sur la machine distante avec un sshfs.
Il faudrai aussi filtrer les volumes ne correspondant pas à des clés USB pour les traiter normalement.

Salut
Un test simple:

  • Préparer une fenêtre terminal avec la commande:

tail -f /var/log/kern.log

  • Insérer une clé usb

  • Voici ce que le kernel dit:

Jul 13 15:06:23 debian kernel: [ 4455.301537] usb 2-2: new high-speed USB device number 4 using ehci-pci
Jul 13 15:06:23 debian kernel: [ 4455.456946] usb 2-2: New USB device found, idVendor=13fe, idProduct=3100
Jul 13 15:06:23 debian kernel: [ 4455.456954] usb 2-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 13 15:06:23 debian kernel: [ 4455.456958] usb 2-2: Product: 360
Jul 13 15:06:23 debian kernel: [ 4455.456962] usb 2-2: Manufacturer: Integral
Jul 13 15:06:23 debian kernel: [ 4455.456965] usb 2-2: SerialNumber: 07A20A00174E9332
Jul 13 15:06:23 debian kernel: [ 4455.458520] usb-storage 2-2:1.0: USB Mass Storage device detected
Jul 13 15:06:23 debian kernel: [ 4455.458722] scsi host4: usb-storage 2-2:1.0
Jul 13 15:06:24 debian kernel: [ 4456.502267] scsi 4:0:0:0: Direct-Access     Integral 360              PMAP PQ: 0 ANSI: 0 CCS
Jul 13 15:06:24 debian kernel: [ 4456.503749] sd 4:0:0:0: Attached scsi generic sg2 type 0
Jul 13 15:06:25 debian kernel: [ 4457.161182] sd 4:0:0:0: [sdb] 7831552 512-byte logical blocks: (4.01 GB/3.73 GiB)
Jul 13 15:06:25 debian kernel: [ 4457.164919] sd 4:0:0:0: [sdb] Write Protect is off
Jul 13 15:06:25 debian kernel: [ 4457.164929] sd 4:0:0:0: [sdb] Mode Sense: 23 00 00 00
Jul 13 15:06:25 debian kernel: [ 4457.168668] sd 4:0:0:0: [sdb] No Caching mode page found
Jul 13 15:06:25 debian kernel: [ 4457.168684] sd 4:0:0:0: [sdb] Assuming drive cache: write through
Jul 13 15:06:25 debian kernel: [ 4457.198753]  sdb: sdb1
Jul 13 15:06:25 debian kernel: [ 4457.210626] sd 4:0:0:0: [sdb] Attached SCSI removable disk

Et notification du gestionnaire de fichiers-> ouvrir avec open folder -> affichage dans le gestionnaire de fichiers Thunar

  • Clic droit sur le nom de la clé dans le gestionnaire de fichiers -> eject

  • Retrait de la clé

    Jul 13 15:09:46 debian kernel: [ 4658.210445] usb 2-2: USB disconnect, device number 4

Bon j’ai commencé à regarder plus précisément la syntaxe des règles udev et franchement… c’est très très moche :sweat_smile:

Je suis aussi tombé la dessus :
automount en regles udev uniquement
script pour monter en auto les cle usb

Je vais essayer de m’inspirer de ce qui a été fait mais ça fait peur ^^

Pour être sûr d’avoir bien compris :

ACTION==“add”, ENV{mntopt}="-t auto" correspond à :

SI (action == add) ALORS
        definir variable d'environnement "mntopt" égale à "-t auto"

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" correspond à :

SI (action == add ET $SUBSYSTEM == block ET ........) ALORS
        definir variable d'environnement "mntopt" égale à "-t vfat -o uid=1000"

ACTION==“add”, ENV{ID_BUS}==“usb”, ENV{SUBSYSTEM}==“block”, ENV{ID_FS_TYPE}!="", RUN+="/lib/udev/usb_fstab.sh %k" correspond à :

SI ( action == add ET $ID_BUS == "usb" ET $SUB_SYSTEM= "block" ET $ID_FS_TYPE != "" ) ALORS
         Ajouter la commande "/lib/udev/usb_fstab.sh %k"

Déjà si j’ai compris la syntaxe c’est pas mal, le reste viendra au fur et à mesure.

Du coup j’imagine que ce que je peux faire c’est appeler un script perso quand il y a une nouveau volume avec ID_BUS égal à usb pour traiter (ou SUB_SYSTEM), de toute façon je pense que j’ai pas des connaissances suffisantes pour aller très loin.

Va faloir que je bouffe de la doc à propos des systèmes de fichiers et des périphériques de stockage.

est-ce que t’es pas en train de réinventer les règles qui existe dans le paquet udev?
https://packages.debian.org/stretch/amd64/udev/filelist

/lib/udev/hwdb.d/20-usb-classes.hwdb
/lib/udev/hwdb.d/20-usb-vendor-model.hwdb

Salut,

est-ce que t’es pas en train de réinventer les règles qui existe dans le paquet udev?

Je t’avoue que je sais pas trop, ça dépasse de loin mes connaissances/compétences actuelles et du coup je suis un peu perdu.

Ce que j’ai mis est à 100% inspiré de ce que j’ai vu sur les forums. Je me dit que si ils font comme ça c’est que c’est un bon moyen, après si tu me dit que non bah… ptètre pas alors ^^

J’ai regardé le contenu des fichiers que tu cite. Si je comprend bien ma condition se serait celle la :

usb:v*p*d*dc08*
 ID_USB_CLASS_FROM_DATABASE=Mass Storage

En recherchant je suis tombé sur quelques liens parlant de libudev et nottament celui la : libudevusb

Storage device is matched with the following criteria:

current device SUBSYSTEM is “scsi” and DEVTYPE is “scsi_device”
child device exists where SUBSYSTEM is “block”
child device exists where SUBSYSTEM is “scsi_disk”
parent device exists where SUBSYSTEM is “usb” and DEVTYPE is “usb_device”

J’imagine que c’est les règles qui déterminent si le device est un support de stockage usb

Du coup la condition usb:vpddc08 correspondrait à ces 4 conditions?

Edit : J’ai fait quelques tests parce qu’au bout d’un moment faut bien essayer.

Du coup j’ai créé un fichier de règles /etc/udev/rules.d/85-usb-detect.rules contenant bêtement

ACTION=="add", RUN+="/home/julien/Scripts/mount-sshfs.sh %M %m"

Du coup à chaque fois que le noyau envoit l’évenement add à udev, mon script devrait être éxécuté.
Ce script écrit tout simplement le majeur et le mineur dans un fichier texte.

J’ai bien rechargé la configuration avec

udevadm control --reload
systemctl daemon-reload

mais pourtant lorsque je branche un device usb il ne se passe rien.
En traquant avec udevadm monitor je voit pourtant les évènements noyau envoyés à udev

$ udevadm monitor
monitor will print the received events for:
UDEV - the event which udev sends out after rule processing
KERNEL - the kernel uevent

KERNEL[359.902016] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8 (usb)
KERNEL[359.902104] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0 (usb)
KERNEL[359.902226] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4 (scsi)
KERNEL[359.902262] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/scsi_host/host4 (scsi_host)
UDEV  [359.908369] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8 (usb)
UDEV  [359.912170] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0 (usb)
UDEV  [359.914201] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4 (scsi)
UDEV  [359.914238] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/scsi_host/host4 (scsi_host)
KERNEL[361.107495] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0 (scsi)
KERNEL[361.107528] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0 (scsi)
KERNEL[361.107541] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_disk/4:0:0:0 (scsi_disk)
KERNEL[361.107551] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_device/4:0:0:0 (scsi_device)
KERNEL[361.107568] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_generic/sg1 (scsi_generic)
KERNEL[361.107588] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/bsg/4:0:0:0 (bsg)
UDEV  [361.108701] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0 (scsi)
UDEV  [361.109594] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0 (scsi)
UDEV  [361.110310] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_disk/4:0:0:0 (scsi_disk)
KERNEL[361.111094] add      /devices/virtual/bdi/8:16 (bdi)
UDEV  [361.111336] add      /devices/virtual/bdi/8:16 (bdi)
UDEV  [361.111490] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_device/4:0:0:0 (scsi_device)
UDEV  [361.111907] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/bsg/4:0:0:0 (bsg)
UDEV  [361.112591] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/scsi_generic/sg1 (scsi_generic)
KERNEL[361.118056] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/block/sdb (block)
KERNEL[361.118097] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1 (block)
UDEV  [361.201403] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/block/sdb (block)
UDEV  [361.273539] add      /devices/pci0000:00/0000:00:1d.7/usb3/3-8/3-8:1.0/host4/target4:0:0/4:0:0:0/block/sdb/sdb1 (block)

J’en conclus que soit l’évènement n’est pas traité par udev soit ma règle est fausse, pourtant je voit pas comment je pourrai faire plus simple.
Je précise que mon script est bien exécutable.

Une idée de se qui pourrait planter?

Edit 2 : Bon finalement ça vient du fait que je fesait ça dans mon dossier personnel, bizarrement, quand j’appelle un script de mon dossier personnel ça marche pas mais si je met le script dans /usr/bin il n’y a plus de soucis.

je croyais que la recommandation c’était
binaires des programmes locaux: /usr/local/bin

je croyais que la recommandation c’était
binaires des programmes locaux: /usr/local/bin

Et tu as sûrement raison. Je les ai déplacés dans ce dossier.

Au point où j’en suis, j’arrive à détecter le branchement et le débranchement du périphérique de stockage USB.
Pour l’instant j’ai testé uniquement avec une clé USB et un disque dur externe, quand j’aurai de quoi sous la main je testerai avec les cartes SD à travers un adaptateur SD/USB mais ça devrait marcher pareil logiquement.

Voilà mes deux règles si ça interesse quelqu’un :

/etc/udev/rules.d/10-usb-detect.rules : 
ACTION=="add", KERNEL=="sd*[0-9]", SUBSYSTEM=="block", RUN+="/usr/local/bin/add.sh %k"
ACTION=="remove", KERNEL=="sd*[0-9]", SUBSYSTEM=="block", RUN+="/usr/local/bin/remove.sh %k"

J’arrive également à récupérer les infos du volume avec les variables d’environnement $ID_FS_UUID, $ID_FS_LABEL et $ID_FS_TYPE

Je commence à avoir des résultats ^^ ça fait plaisir.

Maintenant faudrait tester également avec un périphérique qui contient plusieurs partitions histoire de renforcer le truc mais ça avance.

Dailleurs à ce sujet, est ce que tu sais comment gérer les partitions au dessus de 10?
Parce que sd*[0-9] ne catchera pas le nombre 10 j’imagine et la syntaxe [0-9]+ n’est pas reconnue comme pour les regex.

En tout cas merci, tu m’aura fait gagner beaucoup de temps :wink:

Non pas du tout, faut peut être ouvrir une autre discussion sur ce sujet pour attirer l’attention des experts codeurs :grinning:

Je vais continuer de chercher et si vraiment je trouve pas je posterai un nouveau topic.

J’ai un nouveau soucis que j’arrive pas à résoudre.
J’arrive à détecter le plug, à récupérer les infos, créer le dossier en fonction de si il y a un label ou pas. Par contre au moment de monter, rien ne se passe, pourtant la variable $? contient bien 0.

C’est assez étrange car si je le fait manuellement avec un sudo, aucun soucis. $? = 0
Si je le fait manuellement sans sudo : $? = 1 et message d’erreur : mount: only root can do that => Logique

Par contre avec le script que je mette sudo ou pas, la valeur de retour $? = 0 mais le volume n’est pas visible avec un df donc pas monté.

Par contre au branchement suivant, la lettre est incrémenté => Passe de /dev/sde1 à /dev/sdf1
Du coup je pense que ça doit être monté sous root mais avec un sudo su puis un df en tant que root, je ne voit rien non plus.

Une idée?

Edit : Avec les logs c’est mieux.

$ sudo dmesg | tail
[20393.010151] scsi host10: usb-storage 5-8:1.0
[20394.199040] scsi 10:0:0:0: Direct-Access     SMI      USB DISK         1100 PQ: 0 ANSI: 4
[20394.199505] sd 10:0:0:0: Attached scsi generic sg1 type 0
[20394.201153] sd 10:0:0:0: [sdh] 7864320 512-byte logical blocks: (4.03 GB/3.75 GiB)
[20394.202266] sd 10:0:0:0: [sdh] Write Protect is off
[20394.202269] sd 10:0:0:0: [sdh] Mode Sense: 43 00 00 00
[20394.203397] sd 10:0:0:0: [sdh] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[20394.211031]  sdh: sdh1
[20394.215509] sd 10:0:0:0: [sdh] Attached SCSI removable disk
[20394.449506] FAT-fs (sdh1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.

Donc le problème serait que le volume a pas été démonté correctement? Je trouve ça bizarre car il n’y a pas de soucis quand je monte le volume manuellement et de toute façon mount ne devrait pas retourner 0.

au premier branchement verifier avec la commande mount les caractéristiques du montage

mount

exemple branchement d’une clé prise en charge automatiquement donne ça

/dev/sdb1 on /media/guy/DATA type vfat (rw,nosuid,nodev,relatime,uid=1001,gid=1001,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)

le montage est fait par udisksd
http://storaged.org/doc/udisks2-api/latest/udisks.8.html

Salut,

Alors je confirme qu’au final le volume n’est pas monté car il n’apparait pas non plus dans la liste des points de montage après l’éxécution du script.

Voila le retour quand je monte le volume manuellement :
/dev/sdb1 on /media/julien/pyb type vfat (rw,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=ascii,shortname=mixed,utf8,errors=remount-ro)

Par contre j’ai une erreur sur le volume dans le syslog quand je le branche :

Jul 19 10:30:34 PC325 kernel: [ 1842.454415] usb 1-8: USB disconnect, device number 7
Jul 19 10:30:37 PC325 kernel: [ 1846.320013] usb 1-8: new high-speed USB device number 8 using ehci-pci
Jul 19 10:30:38 PC325 kernel: [ 1846.469816] usb 1-8: New USB device found, idVendor=090c, idProduct=1000
Jul 19 10:30:38 PC325 kernel: [ 1846.469819] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 19 10:30:38 PC325 kernel: [ 1846.469821] usb 1-8: SerialNumber: CCYYMMDDHHmmSSWXFQIW
Jul 19 10:30:38 PC325 kernel: [ 1846.470104] usb-storage 1-8:1.0: USB Mass Storage device detected
Jul 19 10:30:38 PC325 kernel: [ 1846.470614] scsi host5: usb-storage 1-8:1.0
Jul 19 10:30:38 PC325 systemd-udevd[2666]: failed to execute '/lib/udev/mtp-probe' 'mtp-probe /sys/devices/pci0000:00/0000:00:1d.7/usb1/1-8 1 8': No such file or directory
Jul 19 10:30:39 PC325 kernel: [ 1847.663598] scsi 5:0:0:0: Direct-Access                               1100 PQ: 0 ANSI: 4
Jul 19 10:30:39 PC325 kernel: [ 1847.664019] sd 5:0:0:0: Attached scsi generic sg1 type 0
Jul 19 10:30:39 PC325 kernel: [ 1847.664828] sd 5:0:0:0: [sdc] 15646720 512-byte logical blocks: (8.01 GB/7.46 GiB)
Jul 19 10:30:39 PC325 kernel: [ 1847.665584] sd 5:0:0:0: [sdc] Write Protect is off
Jul 19 10:30:39 PC325 kernel: [ 1847.665586] sd 5:0:0:0: [sdc] Mode Sense: 43 00 00 00
Jul 19 10:30:39 PC325 kernel: [ 1847.666324] sd 5:0:0:0: [sdc] No Caching mode page found
Jul 19 10:30:39 PC325 kernel: [ 1847.666330] sd 5:0:0:0: [sdc] Assuming drive cache: write through
Jul 19 10:30:39 PC325 kernel: [ 1847.671464]  sdc: sdc1
Jul 19 10:30:39 PC325 kernel: [ 1847.674328] sd 5:0:0:0: [sdc] Attached SCSI removable disk

Je pense pas que ca soit le problème car le message apparait quoi qu’il arrive et ne m’empêche pas de monter le volume en ligne de comande.

J’ai testé de monter le volume avec un petit script qui reprend ce que je fait dans l’autre et pas de soucis.

Du coup c’est surement parce que le script est appelé depuis udev que ça marche pas. Je voit pas comment solutionner ça ><

mtp c’est pour le multimedia et udev a des règles aussi pour ça

/lib/udev/mtp-probe
/lib/udev/hwdb.d/69-libmtp.hwdb
/lib/udev/rules.d/69-libmtp.rules

ATTR{idVendor}==" “, ATTR{idProduct}==” " doivent etre ceux reconnu par lsusb
dans ton cas
idVendor=090c, idProduct=1000

paquet
libmtp-common
protocole de transfert de media (MTP) - fichiers communs

Je comprend pas bien l’erreur qu’il me sort.
Tu pense que ça a quel que chose a voir avec le fait que le volume est pas monté par le script?

Ca veut dire qu’il faut que je précise les id fabriquant et produit au moment du montage?
Vu que je veux être générique il faut que ma condition gère les volumes usb quel que soit le fabriquant et le produit.

tout ceux que le systeme est supposé connaitre pour mtp doivent figurer dans /lib/udev/rules.d/69-libmtp.rules

Après une petite recherche il semble que l’erreur vienne du fait que le paquet libmtp-runtime n’est pas dans les dépendances de udev.

Après l’avoir installé, l’erreur n’apparait plus et mtp-probe me dit que ce n’est pas un périphérique multimédia.

Jul 19 13:17:13 PC325 kernel: [11842.271024] usb 1-8: USB disconnect, device number 16
Jul 19 13:17:15 PC325 kernel: [11844.196022] usb 1-8: new high-speed USB device number 17 using ehci-pci
Jul 19 13:17:15 PC325 kernel: [11844.345730] usb 1-8: New USB device found, idVendor=090c, idProduct=1000
Jul 19 13:17:15 PC325 kernel: [11844.345734] usb 1-8: New USB device strings: Mfr=1, Product=2, SerialNumber=3
Jul 19 13:17:15 PC325 kernel: [11844.345736] usb 1-8: SerialNumber: CCYYMMDDHHmmSSWXFQIW
Jul 19 13:17:15 PC325 kernel: [11844.346009] usb-storage 1-8:1.0: USB Mass Storage device detected
Jul 19 13:17:15 PC325 kernel: [11844.346194] scsi host7: usb-storage 1-8:1.0
Jul 19 13:17:16 PC325 mtp-probe: checking bus 1, device 17: "/sys/devices/pci0000:00/0000:00:1d.7/usb1/1-8"
Jul 19 13:17:16 PC325 mtp-probe: bus: 1, device: 17 was not an MTP device
Jul 19 13:17:17 PC325 kernel: [11845.561512] scsi 7:0:0:0: Direct-Access                               1100 PQ: 0 ANSI: 4
Jul 19 13:17:17 PC325 kernel: [11845.561928] sd 7:0:0:0: Attached scsi generic sg1 type 0
Jul 19 13:17:17 PC325 kernel: [11845.562491] sd 7:0:0:0: [sde] 15646720 512-byte logical blocks: (8.01 GB/7.46 GiB)
Jul 19 13:17:17 PC325 kernel: [11845.563247] sd 7:0:0:0: [sde] Write Protect is off
Jul 19 13:17:17 PC325 kernel: [11845.563251] sd 7:0:0:0: [sde] Mode Sense: 43 00 00 00
Jul 19 13:17:17 PC325 kernel: [11845.563982] sd 7:0:0:0: [sde] No Caching mode page found
Jul 19 13:17:17 PC325 kernel: [11845.563987] sd 7:0:0:0: [sde] Assuming drive cache: write through
Jul 19 13:17:17 PC325 kernel: [11845.570506]  sde: sde1
Jul 19 13:17:17 PC325 kernel: [11845.573361] sd 7:0:0:0: [sde] Attached SCSI removable disk

Par contre ça ne solutionne pas le problème de montage qui ne s’effectue pas depuis le script.
Tu pense pas que ça peut être un problème de contexte d’éxécution?

Parce que si je modifie légèrement le script et que je l’appelle depuis un terminal, il n’y a pas de soucis.