<h2>But de ce document</h2>
<p class="spip">Ce document me sert de mémo pour <strong class="spip">monter et démonter des périphériques amovibles </strong>(ex : clé usb) avec différentes méthodes sous Linux. J’ai testé ce mémo sous Debian Testing et Debian Sid et sous KDE.</p>

<h2>Identifier le nom du périphérique à monter</h2>
<p class="spip">La consultation des logs permet de connaître le nom actuel du périphérique lors de son insertion :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># tail -f /var/log/syslog<br />
Aug 16 17:33:45 localhost kernel: sda: assuming drive cache: write through<br />
Aug 16 17:33:45 localhost kernel:  sda: sda1</code></div>
<p class="spip">Nous voyons donc qu’il s’agit du périphérique « <strong class="spip"> sda </strong> ».</p>

<p class="spip">Une autre méthode pour retrouver le nom d’un périphérique qu’on vient d’insérer est de regarder le contenu du dossier « <strong class="spip">/sys/block/</strong> ». Lors de l’insertion du périphérique, un nouveau dossier correspondant au nom du périphérique sera créé (ex : sda).</p>

<p class="spip">Ce nouveau périphérique (ex : sda) sera créé également dans « <strong class="spip">/dev</strong> ».</p>

<p class="spip"><strong class="spip">Remarque </strong> : Une fois le périphérique identifié, il est possible de connaître ses différentes partitions avec la commande « <strong class="spip">fdisk -l /dev/sda</strong> » ou la commande « <strong class="spip">cat /proc/partitions</strong> »</p>

<h2>Montage manuel du périphérique en ligne de commande</h2>
<p class="spip">Avant de monter un périphérique, il faut commencer par créer le répertoire devant accueillir la partition à monter. Exemple :</p>

<p class="spip"><code class='spip_code' dir='ltr'># mkdir /media/sda1</code></p>

<p class="spip">Voici un exemple de commande permettant de monter la partition « <strong class="spip"> sda1 </strong> » du périphérique « <strong class="spip">/dev/sda1</strong> » sur le dossier « <strong class="spip">/media/sda1</strong> » :</p>

<p class="spip"><code class='spip_code' dir='ltr'># mount /dev/sda1 /media/sda1 </code></p>

<p class="spip">Et voici la commande permettant de démonter ce périphérique :</p>

<p class="spip"><code class='spip_code' dir='ltr'># umount /dev/sda1 </code></p>

<p class="spip">ou :</p>

<p class="spip"><code class='spip_code' dir='ltr'># umount /media/sda1 </code></p>

<p class="spip"><strong class="spip">Remarque </strong> : Il faut obligatoirement être root pour effectuer les opérations précédentes</p>

<h2>Autoriser un simple utilisateur à monter et démonter des périphériques</h2>
<p class="spip">Pour autoriser un simple utilisateur à monter et démonter des périphériques, il faut ajouter la ligne suivante dans le fichier « <strong class="spip">/etc/fstab</strong> » :</p>

<p class="spip"><code class='spip_code' dir='ltr'>/dev/sda1 /media/sda1 vfat rw,auto,user 0 0</code></p>

<p class="spip"><strong class="spip">Remarque </strong> : L’option « user » autorise les utilisateurs à monter et démonter ce périphérique.</p>

<p class="spip">Une fois le fichier « <strong class="spip">/etc/fstab</strong> » correctement configuré, un simple utilisateur peut monter une partition avec la commande :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ mount /dev/sda1 </code></p>

<p class="spip">ou la commande :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ mount /media/sda1 </code></p>

<p class="spip">Et la démonter avec cette commande :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ umount /dev/sda1 </code></p>

<p class="spip">ou cette commande :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ umount /media/sda1 </code></p>

<h2>Remarque sur le démontage d’une clé usb</h2>
<p class="spip">Lorsque des données sont écrites sur une clé USB, celles-ci ne sont pas immédiatement écrites mais simplement stockées dans une zone mémoire.</p>

<p class="spip">L’écriture réelle des données est effectuée seulement lors du démontage de la clé USB.</p>

<p class="spip">C’est pour cela qu’il est obligatoire de démonter proprement une clé USB avant de la retirer de son emplacement sinon les fichiers ne seront pas correctement enregistrés.</p>

<p class="spip">Cela permet d’augmenter la durée de vie des clés USB, car le nombre d’écritures est limité.</p>

<h2>Ajouter un icône de périphérique dans KDE pour les monter et démonter facilement</h2>
<p class="spip">L’ajout d’un icône de périphérique, permet de monter et démonter des périphériques sans saisir de ligne de commande.</p>

<p class="spip">Pour créer un icône de périphérique, il faut commencer par configurer « <strong class="spip">/etc/fstab</strong> » comme indiqué précédemment et ensuite effectuer les opérations suivantes :
<br /></p>
<li> Clic-droit sur le fond du bureau ou dans un dossier sous Konqueror
<br /><li> Menu « Créer un nouveau / Lien vers un périphérique » et choisir votre périphérique
<br /><li> Dans l’onglet « Général » mettre le nom de votre périphérique
<br /><li> Dans l’onglet « Périphérique », sélectionner la ligne de votre « /etc/fstab » correspondant à votre périphérique.
<p class="spip">Une fois l’icône créé, un clic droit sur celui-ci permettra de monter ou démonter la partition.</p>

<h2>Montage de périphériques avec pmount</h2>
<p class="spip">La commande « <strong class="spip"> pmount </strong> » permet de simplifier le montage et le démontage de périphériques amovibles. Elle offre plusieurs avantages par rapport a la commande « <strong class="spip"> mount </strong> » :
<br /></p>
<li> Il n’est plus nécessaire de configurer le fichier « <strong class="spip">/etc/fstab</strong> » pour les périphériques amovibles et si des entrées existent, il est même conseillé de les supprimer.
<br /><li> Un simple utilisateur peut monter et démonter des périphériques à condition qu’il appartienne au groupe « plugdev ».
<br /><li> Le point de montage dans « <strong class="spip">/media</strong> » est créé et supprimé automatiquement lors du montage et du démontage du périphérique.
<p class="spip">Si ce n’est pas déjà fait, il faut commencer par installer le paquet « <strong class="spip"> pmount </strong> » qui est désormais installé en standard avec KDE sous Debian Testing et Sid.</p>

<p class="spip">La commande suivante permet de monter le périphérique :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ pmount /dev/NomDuPeripherique</code></p>

<p class="spip">ou même plus simplement :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ pmount NomDuPeripherique        </code></p>

<p class="spip">La commande suivante permet de démonter le périphérique :</p>

<p class="spip"><code class='spip_code' dir='ltr'>$ pumount NomDuPeripherique        </code></p>

<h2>Montage automatique des périphériques avec udev sous kde 3.4 ou supérieur</h2>
<p class="spip"><strong class="spip">Grâce à udev et pmount et depuis la version 3.4 de kde</strong>, lors de la connexion d’un nouveau périphérique, plusieurs opérations sont effectuées automatiquement :
<br /></p>
<li> Un icône apparaît sur le bureau lors de la connexion et disparaît lors de la déconnexion du périphérique. Si ce n’est pas le cas, il faut vérifier dans la configuration du bureau et dans la section « <strong class="spip"> Comportement </strong> » et dans l’onglet « <strong class="spip">Icônes de périphériques</strong> » que les icônes sont biens affichés.
<br /><li> Une fenêtre s’ouvre demandant quelle opération il faut effectuer. Si ce n’est pas le cas, il faut aller dans « <strong class="spip">Centre de configuration de KDE / Périphériques / Support de stockage</strong> », sélectionner le type de périphérique à configurer et déterminer une action.
<br /><li> Le montage du périphérique est réalisé automatiquement dans le dossier « <strong class="spip">/Media</strong> ».
<p class="spip"><strong class="spip">Remarque </strong> : Le nom de l’icône qui apparaît sur le bureau est déterminé automatiquement par KDE et à priori, il n’est pas possible de le changer (en tout cas, je n’ai pas trouvé).</p>

<h2>Configurer udev pour renommer ses périphériques</h2>
<p class="spip"><strong class="spip">udev</strong> s’occupe entre autre de la gestion et la création des noms des périphériques dans « <strong class="spip">/dev</strong> ». Il permet en particulier de renommer ses périphériques usb  automatiquement en fonction des caractéristiques et des identifiants de ceux-ci. Par exemple une clé usb sera nommée /dev/cle_usb un appareil photo /dev/apareil_photo et non pas simplement /dev/sda1. Mais pour cela, il faut configurer udev comme indiqué ci-dessous.</p>

<h3>Obtenir des informations sur votre périphérique pour l’identifier de manière unique</h3>
<p class="spip">Une fois le nom du périphérique identifié, la commande suivante permet d’obtenir de nombreuses informations sur celui-ci :</p>

<p class="spip"><code class='spip_code' dir='ltr'>udevinfo -a -p /sys/block/sda</code></p>

<p class="spip">Dans les nombreuses informations précédentes, il faut isoler une ligne identifiant de manière unique votre périphérique. Exemple :</p>

<p class="spip"><code class='spip_code' dir='ltr'>    SYSFS{serial}=="18113A4123115881"</code></p>

<h3>Configurer udev</h3>
<p class="spip">Une fois votre périphérique clairement identifié, il faut configurer udev, pour lui indiquer le nom que nous souhaitons désormais donner à ce périphérique. Pour cela, il faut éditer le fichier « <strong class="spip">/etc/udev/rules.d/udev.rules</strong> » et ajouter vers le début une ligne ressemblant à cela :</p>

<p class="spip"><code class='spip_code' dir='ltr'>BUS=="usb", SYSFS{serial}=="18113A4123115881", NAME="cle_usb"</code></p>

<p class="spip">Après avoir déconnecté et reconnecté votre périphérique usb, celui-ci sera désormais renommé avec le nom indiqué ci-dessus soit « cle_usb »</p>

<p class="spip"><strong class="spip">Remarque</strong> : Pour que le montage manuel de vos périphériques continue à fonctionner correctement, il faudra encore modifier votre fichier « <strong class="spip">/etc/fstab</strong> » pour lui indiquer les nouveaux noms de vos périphériques.</p>

<h3>Points à vérifier si cela ne fonctionne pas correctement</h3>
<br /><li> Vérifier que les paquets kdebase-kio-plugins, udev, hal et dbus-1 sont installés
<br /><li> Vérifier que l’utilisateur appartient au groupe <strong class="spip">plugdev</strong>
<br /><li> Vérifier que le démon dbus est bien démarré (ps aux | grep dbus)
<br /><li> Vérifier que la version de votre noyau est supérieure à 2.6.13 (uname -r)
<br /><li> Vérifier que votre version de KDE est supérieure ou égale à 3.4
<br /><li> Vérifier que le périphérique apparaît correctement dans <strong class="spip">Konqueror à l’adresse « media :/ »</strong>
<br /><li> Vous pouvez éventuellement installer le paquet « <strong class="spip">hal-device-manager</strong> » et lancer le programme du même nom pour vérifier que le périphérique apparaît correctement. Pour éviter d’installer les dépendances de gnomes, vous pouvez aussi utiliser la commande « <strong class="spip"> lshal </strong> », mais le résultat est beaucoup moins lisible.
<h2>Gérer les droits sur vos périphériques avec udev</h2>
<p class="spip">En plus de nommer vos périphériques, udev permet d’autres choses et en particulier la gestion des droits. En reprenant l’exemple précédent, il est possible d’affecter un groupe avec le paramètre « <strong class="spip">GROUP=</strong> » et un masque avec le paramètre « <strong class="spip">MODE=</strong> » à notre clé USB. Exemple :</p>

<p class="spip"><code class='spip_code' dir='ltr'>BUS=="usb", SYSFS{serial}=="18113A4123115881", NAME="cle_usb", GROUP="tony", MODE="0770"</code></p>

<p class="spip">Voici le résultat :</p>

<div style='text-align: left;' class='spip_code' dir='ltr'><code># ls -la /dev/cle_usb<br />
brwxrwx--- 1 root tony 8, 97 2007-04-07 10:08 /dev/cle_usb</code></div>
<h2>Gérer les droits des périphériques montés sous KDE</h2>
<p class="spip">Sous KDE quand une clé USB est insérée, celle-ci est montée automatiquement dans « <strong class="spip">/media</strong> » sans que celle-ci soit déclarée dans « /etc/fstab » grâce à pmount.</p>

<p class="spip">Si vous souhaitez maîtriser le point le montage ou la gestion des droits sur ce périphérique, vous pouvez créer une entrée dans « <strong class="spip">/etc/fstab</strong> » pour cela. Dans cet exemple, le point de montage est indiqué dans « <strong class="spip">/mn</strong>t », et grâce à « <strong class="spip"> umask </strong> » et « <strong class="spip"> gid </strong> », il n’y aura que les utilisateurs appartenant à « mongroup » qui auront accès à ce périphérique :</p>

<p class="spip"><code class='spip_code' dir='ltr'>/dev/cle_usb /mnt/cle_usb vfat rw,user,noauto,umask=0007,gid=mongroup 0 0</code></p>

<p class="spip">Il ne faut pas oublier de créer manuellement le dossier qui va contenir le point de montage :</p>

<p class="spip"><code class='spip_code' dir='ltr'># mkdir  mnt/cle_usb</code></p>

<h2>Autres sources d’informations</h2>
<p class="spip">La documentation de référence de udev :
<br /></p>
<li> <a href="http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html" class="spip_out">http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html</a>
<h2>Historique des modifications</h2>
<table class="spip">
<thead><tr class='row_first'><th scope='col'><strong class="spip">Version</strong></th><th scope='col'><strong class="spip">Date</strong></th><th scope='col'><strong class="spip">Commentaire</strong></th></tr></thead>
<tbody>
<tr class="row_even"><td>0.1</td><td>20/08/06</td><td>Création par Tony GALMICHE</td></tr>
<tr class="row_odd"><td>0.2</td><td>07/04/07</td><td>Ajout « Gérer les droits sur vos périphériques avec udev » et « Gérer les droits des périphériques montés sous KDE »</td></tr>
</tbody>
</table>