règle
Comment assurer le montage automatique d'une clé USB et d'un appareil numérique ? La première étape est de donner toujours le même nom de périphérique à un matériel donné. Nous avons besoin pour cela d'utiliser Udev et Hotplug, disponibles dans toutes les distributions récentes à noyau 2.6.
La seule chose qui reste alors à faire est d'automatiser le montage et le démontage du périphérique. Plusieurs solutions existent pour ce faire ; nous utiliserons Autofs qui a l'avantage, contrairement à Hotplug, de ne pas nécessiter un noyau 2.6.
La clé USB sera montée dans le dossier /media/cle
et
l'APN, un Panasonic LC-33, dans /media/lc33
.
Elle est dévolue à Udev. Il faut simplement savoir que les périphériques
de stockage USB sont vus généralement comme un disque SCSI c'est à dire,
s'il n'en existe pas déjà un fixe sur votre système,
/dev/sda
(nom du premier disque SCSI). Sinon, voir
/dev/sdb
, /dev/sdc
, etc...
En fait, on monte la première partition de ces disques, soit
/dev/sda1
, /dev/sdb1
, /dev/sdc1
,
etc... Attention : dans le cas où les supports mémoire concernés n'ont
qu'une seule partition.
Le problème est que ces noms peuvent changer à chaque fois, car il dépendent de plusieurs conditions :
Voyons donc comment identifier la clé USB. Ce ne sera possible que si le
module usb-storage
est chargé, soit manuellement, soit
automatiquement (très probable avec un noyau 2.6).
Par la commande /sbin/fdisk -l
, vous obtenez la liste des
partitions matériellement reconnues par votre système. Supposons que
vous avez reconnu votre clé dans le «disque» /dev/sda
contenant une unique partition /dev/sda1
.
Par la commande udevinfo -a -p /sys/block/sda/
, on relève
des informations qui peuvent être plus ou moins précises (marque ou type
de périphérique) ou, à l'inverse, uniques (numéro de série). Cette
commande tapée dans un terminal me révéle SYSFS{model}="USB Flash
Disk "
si je regarde dans la rubrique BUS="scsi"
et
son numéro de série si je regarde dans BUS="usb"
. Comme je
ne souhaite pas que n'importe qui puisse réaliser un montage automatique
de sa clé sur ma machine, je choisis plutôt la référence au numéro de
série.
Les règles Udev que j'ai retenues sont :
BUS="usb", KERNEL="sd?1", SYSFS{serial}=="20030926xxxxxx*", SYMLINK="cle" BUS="usb", KERNEL="sd?1", SYSFS{product}=="DMC-LC33", SYMLINK="lc33"
que j'ai enregistrées dans le fichier 00-perso.rules
, à
placer dans le dossier /etc/udev
ou
/etc/udev/rules.d
.
Pour adapter ces règles, il vous suffit de regarder dans la sortie de
udevinfo
la caractéristique qui vous parait la plus
pertinente selon le but recherché. Si vous voulez que seul votre
exemplaire soit montable, vous indiquerez son numéro de série ; si vous
voulez monter n'importe quel exemplaire du même modèle, contentez vous
des vendor
et product
en hexadécimal révélés
par la commande udevinfo
ou, plus simplement, par
lsusb
. De telles indications sont à reporter dans
SYSFS{idVendor}
et SYSFS{idProduct}
. Les
caractères de substitution (*
, ?
etc...) sont
utilisables.
La partie la plus intéressante est sans doute SYMLINK="cle"
qui signifie que quel que soit l'emplacement effectif de ce périphérique
(ce que Udev appelle nom noyau), un lien symbolique sera créà
en /dev/cle
pour la clé et en /dev/lc33
pour
l'APN.
En attendant de parvenir à gérer le montage automatique de ces
périphériques, on peut toujours rajouter dans /etc/fstab
:
/dev/cle /media/cle vfat rw,user,noauto,sync 0 0 /dev/lc33 /media/lc33 vfat rw,user,noauto,sync 0 0
ce qui permet au moins de monter le périphérique avec toujours la même ligne de commande et donc de créer sans autre forme de procés une icéne dédiée à chacun de vos périphériques, même dans un environnement ne possédant aucun mécanisme de montage automatique.
Ces lignes deviennent inutiles Dès que votre montage automatique est fiable.
À l'ancienne car on fera appel ici à autofs
, daemon de
montage disponible même dans des distributions un peu datées, comme par
exemple la Debian 3.0 Woody.
Après avoir installé ce paquet, vous pouvez rajouter (ou laisser seule)
la ligne suivante dans /etc/auto.master
:
/media /etc/auto.media --timeout=3
Elle veut dire que des périphériques montables dans des sous-dossiers de
/media
sont gérés dans le fichier de configuration
/etc/auto.media
. Lequel contient justement les lignes :
cle -fstype=vfat,umask=000,sync :/dev/cle lc33 -fstype=vfat,umask=000,sync :/dev/lc33
Ces deux fichiers, à eux deux, indiquent que le périphérique
/dev/cle
sera monté dans /media/cle
et
/dev/lc33
dans /media/lc33
. Et montés
automatiquement, Dès que l'on tentera d'accéder au dossier de montage
prévu... Un simple cd /media/cle
en console suffit à
assurer le montage.
En mode graphique, un simple raccourci suffit, que ce soit dans le plus miséreux des navigateurs de fichiers ou dans un environnement qui ne gére pas lui-même le montage des périphériques. Le démontage sera lui aussi automatique au bout de 3 secondes, délai suffisant après extinction de la diode de la clé, suite à un transfert de fichiers.