Tutoriel Linux Monter Peripherique
Tutoriel Linux Monter Peripherique
Tutoriel Linux Monter Peripherique
Pré-requis
Si vous souhaitez accéder à un périphérique de stockage (disque CD-ROM, clé USB, partition
de disque dur...) il est recommandé de lire au préalable le partitionnement. Ce tutoriel rappelle
notamment ce qu'est un système de fichiers, un device etc.
Si vous utilisez une interface graphique comme KDE ou gnome, une interface graphique permet
de gérer facilement les périphériques sous réserve que /etc/fstab soit bien configuré.
Pour modifier ce fichier de configuration /etc/fstab il faut des droits root. Pour plus de détails sur
la marche à suivre, vous pouvez consulter le tutoriel sur le mode texte et le tutoriel sur nano.
Introduction
Sous Windows, la provenance (disque CD-ROM, partition de disque dur, partage réseau...) d'un
fichier détermine dans quel lecteur il apparaîtra. Exemple :
Étant donné qu'il n'y a que 26 lettres dans l'alphabet, il y a donc au plus 26 lecteurs
(provenance). De plus certains noms de lecteurs sont "imposés" (par exemple le rôle assigné à
A: et C:), et changer la lettre assignée peu avoir des impacts dramatiques (clés de la base de
registre caduques etc...).
Sous Linux, aucune de ces contraintes n'existe. On peut accéder à autant de partages, de
Une fois l'arborescence constituée, la provenance d'un fichier est complètement transparente.
Principe
Étape 1 : brancher le périphérique (création du device)
Les blocks devices sont des devices particuliers sous Linux qui permettent de manipuler un
espace de stockage (ou média). Par exemple, une disquette, une clé USB, une partition de
disque dur ou un disque CD-ROM sont autant de médias. Ils sont créés au moment de brancher
le périphérique ou au lancement de Linux si le périphérique était déjà lancé.
Les devices associés aux périphériques USB/SCSI/SATA sont généralement notés /dev/sd...,
suivi d'une lettre associé au périphérique et d'un chiffre associé à la partition. Par exemple
/dev/sdb2 désigne la deuxième partition du disque /dev/sdb. Les périphériques IDE sont
généralement notés /dev/hd...
Toutefois, la manière dont sont nommés les devices découlent de conventions de nommage
mais peuvent être personnalisés. En réalité, les devices sont créés et supprimés par udev. Il est
possible de raffiner le comportement d'udev afin de nommer systématiquement un périphérique
avec un nom de device particulier (par exemple /dev/phone pour son téléphone). En effet, udev
est capable d'interroger le périphérique et récupérer notamment ses caractéristiques
constructeurs (marque, modèle...). Il peut donc différencier par exemple une téléphone portable
d'un appareil photo et leur attribuer à chacun un nom bien précis (par exemple /dev/phone et
/dev/camera).
Comme un device n'est jamais qu'un fichier (rangé dans /dev), celui-ci ne permet pas de
manipuler directement les données stockées sur le média. Il s'agit donc de faire apparaître son
contenu dans un répertoire vide. Ainsi, on cherche à faire apparaître le contenu d'un média
(référencé par un device) dans un répertoire vide (le point de montage). Cette étape consiste à
monter (mount) un périphérique.
Remarques
Si on monte un espace de stockage dans un répertoire non vide, son contenu sera
masqué par l'arborescence provenant de l'espace de stockage que l'on vient de monter.
Il réapparaîtra dès que cet espace de stockage sera démonté (voir étape 4).
Les partages réseaux obéissent aux mêmes règles et au même principe que les
périphériques de stockage à ceci près qu'il ne se manipulent pas via un device.
Concrètement, quand on monte un espace de stockage, linux crée un VFS (virtual filesystem)
qui représente l'arborescence de fichiers stockée sur le média. C'est une couche d'abstraction
qui permet de manipuler ces fichiers "normalement" sans se préoccuper de leur média de
provenance.
Comme le VFS est une représentation créée en mémoire, il est possible d'associer des droits
particuliers, aux fichiers qu'il représente. Ceci est y compris possible si ces fichiers sont stockés
sur un système de fichiers sans droits POSIX (comme de la FAT32 ou de la NTFS), puisque le
VFS n'est qu'une représentation en mémoire. Cependant comme ces systèmes de fichiers ne
stockent pas de droits, ces informations seront "perdues" au moment de démonter ce
périphérique (voir étape 4).
Un utilisateur ne manipule pas directement les fichiers stockés sur le média, mais le VFS (qui
est stocké en mémoire). Il faut donc répercuter les modifications faites au niveau du VFS sur le
média proprement dite avant de retirer le média. Ceci consiste à synchroniser le VFS et le
média. C'est le fameux "retirer le périphérique en toute sécurité" que l'on trouve sous Windows.
S'il s'agit d'un périphérique amovible (clé USB...) celui-ci peut désormais être retiré en toute
sécurité.
En mode texte
Il suffit de créer un répertoire vide. Comme celui-ci est placé en général dans /mnt, /media ou
/users, cette opération requiert des droits root. On utilise la commande mkdir (make directory)
ave l'option -p qui permet de créer en cascade les répertoires parents.
Exemple :
mkdir -p /mnt/usb
Cette commande crée (si nécessaire) le répertoire /mnt, puis le sous-répertoire "usb".
Cette sous-section ne concerne que les espaces de stockage autres que les partages réseaux
(samba, nfs...).
Si votre disque dur était branché au moment de lancer linux, le device associé à son en-tête et
à ses partitions est déjà créé. On peut retrouver l'ensemble des tables de partitions de disque
dur grâce à la commande fdisk. Cette commande requiert des droits root.
Ici, on constate que la machine contient un disque dur (ici SATA, d'où son nom en /dev/sd...)
composé de 4 partitions :
cfdisk /dev/sda
On retrouve par exemple ici que /dev/sda4 est en réalité un système de fichier ext3, information
qui n'apparaissait pas clairement avec fdisk.
Si c'est un périphérique USB que l'on vient de brancher, il suffit de regarder lequel est apparu.
On peut également à dmesg de nous donner cette information.
Exemple :
avant branchement :
après branchement :
Dans cet exemple on constate qu'on a juste un device /dev/sdb mais pas de device /dev/sdb1,
comme on pourrait s'y attendre. En temps normal on aurait monté /dev/sdb1, mais pour ce
genre de périphérique USB, on monte bien /dev/sdb.
Les disques CD-ROM/DVD sont accessibles via le device associé au lecteur de disque. Celui-ci
est généralement accessible via le lien symbolique /dev/cdrom. Si la machine comporte
plusieurs lecteurs, il y a un lien par lecteur (/dev/cdrom0...).
Le lecteur de disquette est noté /dev/fd0 (et ainsi de suite pour chaque lecteur de disquette).
S'il s'agit d'une partition de swap, on utilise la commande swapon. On peut avoir plusieurs
partitions de swap. Dans ce cas les différents espaces de swap sont automatiquement
"agrégées" et se comportent comme s'il n'y avait qu'une seule partition de swap.
Exemple :
swapon /dev/sda3
Sinon
Sinon, on utilise la commande mount. Il faut lui préciser le système de fichier utilisé sur l'espace
de stockage, (-t) le nom du device à monter et le point de montage. On peut également préciser
certaines options (-o) décrites dans la page de man de mount. Pour plus de détails :
man mount
La commande mount requiert des droits root (sauf si l'option user a été activée dans /etc/fstab
pour ce device).
Exemples :
Comme une commande mount est fastidieuse à taper, on se repose généralement sur le fichier
/etc/fstab afin de pouvoir sous-entendre les options, le système de fichiers, et soit le device, soit
le point de montage. Il suffit juste qu'il n'y ait pas d'ambiguïté dans ce fichier, qui sera détaillé un
peu plus loin dans le tutoriel.
mount /dev/sda2
mount /dev/cdrom
mount /dev/sdb
ou encore :
mount /mnt/windows
mount /mnt/cdrom
mount /mnt/archos
Si le périphérique est monté avec succès (ce qui sous-entend que le noyau prenne en charge
ce type de périphérique, son système de fichiers et que la table des partitions de ce média soit
cohérente avec son contenu), alors les fichiers de ce média apparaissent dans le point de
montage. Dans ce cas, toutes les informations de montage (device, options, système de
fichiers) sont référencées dans /etc/mtab.
swapoff /dev/sda2
Sinon
On utilise la commande umount qui se base sur /etc/mtab. Ainsi on peut passer au choix le
point de montage ou le device et on ne passe pas d'option à la commande umount.
Exemple :
umount /dev/sda2
umount /dev/cdrom
umount /dev/sdb
ou encore :
umount /mnt/windows
umount /mnt/cdrom
umount /mnt/archos
Le fichier /etc/fstab
Présentation
fichiers (filesystem en anglais, souvent abrégé fs sous Linux). En tant que fichier de
configuration global à la machine, il est naturel de le retrouver dans /etc. Il est postfixé "tab" car
il est structuré comme un tableau, au même titre que /etc/mtab.
Seules les lignes concernant /proc, / et la swap étaient initialement présentes dans ce fichier.
Les autres ont été rajoutées à la main.
Chaque ligne correspond à un point de montage (et donc à un device quand il s'agit d'un
périphérique de stockage ou l'adresse d'un serveur de fichier s'il s'agit d'un partage réseau). A
priori vous devriez avoir moins une ligne concernant /, /proc et la swap. Il ne faut pas modifier
ces lignes. Nous allons toutefois compléter ce fichier afin de référencer de nouveaux
périphériques et de nouveaux partages réseaux.
Chaque colonne à un rôle bien défini. On peut mettre autant d'espace ou de tabulation qu'on le
souhaite, l'objectif étant de rendre le fichier aussi lisible que possible :
1. <file system> : la provenance de la donnée, soit un device, soit l'adresse d'un partage
réseau. Dans le cas d'un device, on peut utiliser soit l'UUID (un identifiant universel et
indépendant de la manière et de l'ordre dans lequel sont branchés les périphériques) ou
le nom de device généré par udev (par exemple /dev/sda1). Ceci est explicité dans la
section suivante. Ce champ correspond au premier argument de la commande mount.
2. <mount point> : le répertoire dans lequels apparaîtront les fichiers importés. Ce
répertoire, appelé point de montage, devrait toujours être un répertoire vide. Si ce n'est
pas le cas, monter un système de fichiers dans ce répertoire masquera les fichiers qui
s'y trouvent. Ce champ correspond au second argument de la commande mount. Un
point de montage associé à un périphérique de stockage indépendant de linux (clé USB,
partition windows...) est généralement rangé dans /media ou /mnt.
3. <type> : le système de fichiers utilisé pour stocker les données. Exemples : ext3, ext4,
swap, vfat, ntfs-3g, nfs, cifs... Ce champ correspond à ce qui suit l'option -t dans une
commande mount.
4. <options> : les options de montage. C'est typiquement ici que l'on peut préciser son
propriétaire, son groupe propriétaire, les droits associés, si un utilisateur peut ou non
intéragir monter ou démonter le device/partage correspondant.
5. <dump> : en pratique on mettra presque toujours 0. Pour plus de détails voir "man
fstab".
6. <pass> : en pratique on mettra presque toujours 0, sauf pour / où l'on mettra 1. Pour
plus de détails voir "man fstab".
Les UUID
Le mapping entre les UUID et les devices générés par udev figure dans /dev/disk/by-uuid.
Exemple :
On peut utiliser dans /etc/fstab aussi bien la notation /dev/sd... que la notation basée sur les
UUID. Quand un point de montage n'est pas associé à un device amovible, on privilégie la
seconde notation. Dans le cas contraire (typiquement un point de montage associé à un
périphérique USB), on n'utilise pas d'UUID car celui-ci diffère en fonction du périphérique USB
inséré.
Options de montage
Les options de montage peuvent exister ou non selon le type du système de fichiers. On
retiendra essentiellement les options suivantes.
Comportement :
root.
uid= : précise quel est le propriétaire du système de fichiers que l'on monte. Cette option
peut être suivie d'un login (par exemple mando) ou de son uid (voir /etc/passwd).
gid= : précise quel est le groupe propriétaire du système de fichiers que l'on monte.
Cette option peut être suivie d'un nom de groupe (par exemple users) ou de son gid
(voir /etc/group).
Droits :
ro : définit des droits en lecture seule (on ne peut ni modifier, ni supprimer, ni créer de
fichier, mais on peut les ouvrir).
rw : définit des droits en lecture et écriture sur ce système de fichiers.
exec : active les droits en exécution (ceci n'a d'intérêt que si le média stocke des
exécutables compréhensibles par linux et si le système de fichiers n'implémente pas de
droits POSIX, comme par exemple de la ntfs ou de la FAT32).
noexec : contraire de l'option exec (comportement par défaut).
umask : précise les droits UNIX associés au système de fichiers (détaillés
ultérieurement).
Remarque : si un système de fichier est monté en lecture seule (ro), peu importe les droits
UNIX associés à ses fichiers et l'utilisateur qui tente d'y accéder, il ne sera pas possible de le
modifier, même en root. C'est la raison pour laquelle les options ro et rw ne sont pas rattaché à
un utilisateur.
Options spécifiques :
Pour de la swap : sw
Pour de la vfat (FAT32) : l'option quiet permet de régler certains problème quand le
système de fichiers FAT32 (vfat) n'est pas tout à fait propre
Pour / : errors=remount-ro
Pour /proc : defaults
S'il s'agit d'un périphérique de stockage, il faut déterminer le device à utiliser. Dans le
cas d'un périphérique amovible, on utilisera typiquement la commande dmesg. Sinon on
utilisera successivement fdisk et on examinera le contenu de /dev/disks/by-uuid. Nous
allons illustrer ceci dans les exemples qui suivent.
Sinon, l'adresse du partage réseau.
On se place dans le cas d'un PC stockant sur son disque des partitions windows et des
partitions Linux. L'objectif est d'accéder aux partitions Windows sous Linux. Commençons par
déterminer le device associé avec fdisk :
La partition qui nous intéresse est ici /dev/sda2 et est écrite en NTFS (appelée ntfs-3g sous
Linux). On souhaite faire apparaître cette partition dans /mnt/windows, et ce point de montage
ne servira que pour cette partition. On peut donc utiliser son UUID.
Dans cet exemple l'UUID est D0DA4397DA43792C. Il ne reste plus qu'à créer le répertoire
/mnt/windows :
mkdir -p /mnt/windows
Ici, la partition est montable/démontable par un utilisateur. Comme on n'a précisé ni l'UID, ni le
GID, ce système de fichier est attribué à root et au groupe root. L'umask défini n'autorise que
root à modifier les fichiers qui s'y trouvent. Les autres utilisateurs ne peuvent que lire ces
données. Cette partition est montée au démarrage.
mount /mnt/windows
dmesg | tail
A priori le nom commence par /dev/sd... La lettre qui suit /dev/sd... dépend de l'ordre de
branchement des périphériques USB (Linux prend la première lettre disponible, par exemple
/dev/sdc si /dev/sda et /dev/sdb sont déjà utilisés). Pour s'en affranchir on peut définir des
règles udev. Supposons que le périphérique que l'on tente de monter s'appelle /dev/sdb
En général, les données sont accessibles via /dev/sdb1 (et /dev/sda2, /dev/sda3 etc... s'il y a
plus d'une partition). Pour certains périphériques USB, on accède aux données directement via
/dev/sdb. Ceci se reconnaît quand /dev/sdb1 n'apparaît pas dans /dev. C'est typiquement le cas
de certains lecteurs MP3.
On créé ensuite un point de montage, par exemple /mnt/usb en tant que root :
mkdir -p /mnt/usb
On complète ensuite le fichier /etc/fstab. On n'a pas intérêt à préciser le type de système de
fichiers utilisé (vfat ou ntfs), on laisse plutôt carte blanche en utilisant le mot clé auto. Ainsi, la
ligne résultante dans /etc/fstab deviendrait :
Le système de fichiers peut être monté/démonté par un utilisateur et sera monté, attribué à cet
utilisateur et au groupe root. Le périphérique ne sera pas monté au démarrage (un support
amovible n'étant pas forcément branché, cela paraît naturel !).
Si l'on utilise KDE ou gnome, la prochaine fois que le périphérique sera branché, il devrait être
automatiquement monté. On peut d'ores et déjà y accéder en tapant la commande mount
appropriée.
Accéder à un CD/DVD
Le lecteur CD/DVD est généralement pointé par /dev/cdrom. Si la machine comporte plusieurs
lecteurs, d'autres liens sont créés (/dev/cdrom0, /dev/cdrom1 etc..., /dev/cdrom pointant sur l'un
deux). En général cette ligne est déjà générée pour le lecteur CD /DVD par défaut, mais quand
on a plusieurs lecteurs il faut souvent ajouter une ligne pour les autres.
Il suffit de copier coller la ligne associée au lecteur CD/DVD par défaut et corrigé le device
associé.
Remarque : il n'est pas nécessaire de préciser plus de droits (notamment rw). Les logiciels de
gravure (k3b, brasero...) disposent d'un assistant qui leur permettra d'accéder avec des droits
root au disque qu'ils doivent graver.
Si l'on utilise KDE ou gnome, la prochaine fois que le disque sera inséré, il devrait être
automatiquement monté. On peut d'ores et déjà y accéder en tapant la commande mount
appropriée.
Dans ce tutoriel nous ne détaillerons pas trop la mise en place des partages réseaux. Il existe
principalement deux solutions :
les partages samba (solution adoptée communément sous windows en faisant un clic
droit partager dans l'explorateur)
les partages nfs (solution communément adoptée sous linux)
Le serveur (au sens nfs ou samba) est la machine qui effectue le partage et met à disposition
des fichiers. Le client (au sens nfs ou samba) est la machine qui accède à ces fichiers. Une
même machine peut donc avoir à la fois un rôle de serveur et de client. Utiliser samba n'est pas
exclusif avec utiliser nfs (que ce soit en tant que serveur ou client). Tous ces rôles sont
décorrélés.
Pour plus de détails sur la mise en oeuvre d'un partage réseau, on pourra se référer à ces liens
:
http://doc.ubuntu-fr.org/nfs
http://doc.ubuntu-fr.org/samba
En mode graphique
Accès à un périphérique non amovible
Pour accéder aux fichiers correspondants, il suffit de cliquer sur "ouvrir dans le gestionnaire de
fichiers".