Chapitre 7. Utiliser des médias de stockage

/etc/fstab
Monter ses partitions Windows
Monter sa clé USB

Comme expliqué au chapitre Le système de fichiers, vos fichiers sont écrits dans des systèmes de fichiers, eux-mêmes stockés sur des périphériques de stockage : disquette, clef USB, CD, partition de disque dur... Pour utiliser un support de stockage, on le monte dans l'arborescence.

/etc/fstab

Le fichier de configuration /etc/fstab contient les informations statiques sur le montage des systèmes de fichiers que vous utilisez régulièrement.

La syntaxe du fichier

Les règles de syntaxe du fichier sont les suivantes : une ligne par système de fichier, chaque ligne devant contenir dans l'ordre les informations suivantes séparées par au moins un espace :

  1. l'emplacement physique du système de fichiers : /dev/partition pour une partition physique,

  2. le point de montage (le répertoire doit déjà exister, sinon il faut le créer au préalable avec la commande mkdir),

  3. le (ou les) type de système de fichier (par exemple swap, ext3, vfat, ntfs, nfs, iso9660 et udf pour les CD-ROM et DVD-ROM), auto pour autodétecter le type ;

  4. les options de montage, séparées par des virgules :

    • ro pour monter le système de fichiers en lecture seule,

    • rw pour monter le système de fichiers en lecture-écriture,

    • noauto pour que le système de fichiers ne soit pas monté au démarrage (option contraire : auto),

    • user pour qu'un simple utilisateur puisse monter et démonter le système de fichiers et pas seulement le root (option contraire : nouser),

    • exec pour permettre l'exécution de binaires (option contraire : noexec),

    • uid, gid et umask pour définir des permissions pour l'ensemble du système de fichiers (pour les systèmes déficients comme FAT ou NTFS),

    • defaults pour les options par défaut (notamment rw, exec, auto et nouser),

    • et enfin sw pour les systèmes de swap.

  5. la valeur 1 si le système de fichier doit être sauvegardé ou la valeur 0 sinon (mettez 0 si vous n'avez pas de système de sauvegarde),

  6. la priorité pour la vérification des systèmes de fichiers par fsck au démarrage quand cela est nécessaire : la partition racine doit avoir la plus grande priorité (valeur 1), les autres doivent avoir une priorité inférieure (valeur 2). Les systèmes de fichiers qui ne doivent pas être vérifiés auront la valeur 0.

Donc pour un système classique, le fichier contient par exemple :

/dev/hda1  /              ext3        defaults	        0     1
/dev/hda2  none           swap        sw                0     0
/dev/hda5  /home          ext3        defaults          0     2
proc       /proc          proc        defaults          0     0
/dev/fd0   /media/floppy0 auto        user,noauto       0     0
/dev/sda1  /media/clef0   vfat        user,noauto       0     0
/dev/cdrom /media/cdrom0  udf,iso9660 ro,user,noauto    0     0

Monter et démonter une partition citée dans fstab

Un des avantages d'utiliser le fichier /etc/fstab est que le montage et le démontage des systèmes de fichiers cités dans ce fichier de configuration sont très simples. Il suffit d'utiliser la commande mount pour monter et umount pour démonter, suivie du périphérique ou du répertoire de montage.

Ainsi, les deux commandes suivantes sont équivalentes, et permettent de monter la disquette :

# mount /media/floppy0
# mount /dev/fd0

Comme nous avons précisé l'option user pour le lecteur de disquette dans fstab, les deux commandes précédentes peuvent être exécutées en tant que simple utilisateur. Dans ce cas, seul l'utilisateur en question et le root pourront démonter le système de fichier avec l'une des deux commandes suivantes :

# umount /media/floppy0
# umount /dev/fd0

Important

Pour démonter un système de fichier, il faut qu'aucun des utilisateurs du système et aucun processus ne soit en train d'ouvrir un des fichiers du système de fichier à démonter et qu'aucun utilisateur ne se trouve dans un des répertoires du système de fichiers à démonter. Sinon, la commande umount renverra le message d'erreur suivant :

              
umount : /media/floppy0 : périphérique occupé

            

Pour voir qui est responsable de cette occupation, utilise la commande lsof qui liste les fichiers ouverts :

# apt-get install lsof
% lsof | grep floppy

Monter ses partitions Windows

Préparer le montage d'une partition FAT

Le système de fichier de type FAT (FAT 16 ou FAT 32) est utilisé par Windows 95/98/ME et parfois par Windows 2000/XP. Le driver Linux pour ce type de système de fichiers permet d'y avoir accès en lecture et en écriture.

Supposons que votre partition Windows de type FAT soit /dev/hda1 (première partition primaire sur le disque dur IDE Primary Master). Nous allons la monter dans le répertoire /media/win1 qu'il faut créer au préalable :

# mkdir /media/win1

Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante :

/dev/hda1     /media/win1       vfat       defaults,user      0     0

Préparer le montage d'une partition NTFS

Le système de fichier de type NTFS est souvent utilisé par Windows 2000 et XP. Pour pouvoir lire et écrire sur ces systèmes, il faut d'abord installer un pilote particulier, NTFS-3g. Celui-ci n'est pas disponible dans les sources de Debian Etch, en revanche, il est possible de l'installer depuis les dépôts des rétroportages. Pour cela, en tant que root, ajoutez ces deux lignes au fichier /etc/apt/sources.list :

deb http://www.backports.org/debian etch-backports main contrib non-free
deb http://www.backports.org/debian sarge-backports main contrib non-free

Ensuite, vous pouvez mettre à jours la liste des paquets, puis installer NTFS-3g :

# apt-get update
# apt-get install ntfs-3g

Supposons que votre partition Windows de type NTFS soit /dev/sda5 (premier lecteur logique sur le premier disque dur SATA). Nous allons la monter dans le répertoire /media/win2 qu'il faut créer au préalable :

# mkdir /media/win2

Ensuite, éditez en root le fichier /etc/fstab et rajoutez la ligne suivante :

/dev/sda5     /media/win2       ntfs-3g    defaults,user      0     0

Monter les partitions

Vous avez rajouté les entrées nécessaires dans le fichier /etc/fstab : vos partitions Windows seront donc dorénavant montées automatiquement dès le démarrage. Mais pour éviter de redémarrer, vous allez simplement demander au système de monter les partitions citées dans fstab et non déjà montées avec la commande suivante :

# mount -a

Si aucun message d'erreur n'apparaît, vous devez maintenant pouvoir voir le contenu de votre ou vos partition(s) Windows dans l'arborescence de votre système.

Modifier les droits sur les partitions Windows

Par défaut, les partitions Windows montées appartiennent à root, et dans le cas des partitions NTFS, elles ne sont pas lisibles par les autres utilisateurs. Pour modifier les droits d'accès appliquées aux partitions Windows, vous pouvez rajouter des options dans la ligne qui leur correspond dans le fichier /etc/fstab.

Par exemple, si vous voulez que sur la partition Windows /dev/hda1 formatée en FAT, les fichiers et les répertoires :

  • appartiennent à root, dont l'ID est 0,

  • appartiennent à un groupe win, que vous avez créé avec la commande addgroup, et dont l'ID est 1003,

  • aient des droits rw-rw-r-- pour les fichiers réguliers, et rwxrwxr-x pour les répertoires,

alors la ligne correspondant à la partition dans fstab devient la suivante :

/dev/hda1    /media/win1    vfat    defaults,user,uid=0,gid=1003,umask=113,dmask=002    0    0

Pour que les changements soient pris en compte, la commande mount -a ne suffit pas. Il faut démonter et remonter la partition :

% umount /media/win1
% mount /media/win1

Monter sa clé USB

Si vous avez une clé USB (ou n'importe quel périphérique compatible avec la norme "USB mass storage"), commencez par créer le répertoire dans lequel vous monterez la clé :

# mkdir /media/clef0

Identifiez le nom de périphérique correspondant à votre clef USB : listez le contenu de /dev/sd*, puis introduisez votre clef, et, après quelques secondes, listez à nouveau /dev/sd*, dans lequel votre clef à du apparaître (chez moi, elle s'appelle /dev/sda1, mais si vous avez des disques SATA, ce nom peut être décalé de quelques lettres).

Enfin, si votre clé USB est formatée en FAT et que vous voulez que les fichiers une fois montés appartiennent à root et au groupe win (cf. plus haut), rajoutez la ligne suivante à la fin du fichier /etc/fstab :

/dev/sda1    /media/clef0    vfat    defaults,user,uid=0,gid=1003,umask=113,dmask=002    0    0

Vous pouvez alors monter votre clé USB :

% mount /media/clef0

Attention

N'oubliez pas de démonter votre clé USB avant de la débrancher, sous peine de corrompre les données qui y sont stockées :

% umount /media/clef0