Ceci est une ancienne révision du document !



mount et fstab : Le montage des systèmes de fichiers

Ce court article a pour but de vous présenter le montage des systèmes de fichier dans un système GNU/Linux, et plus particulièrement dans Ubuntu. Nous étudierons les cas normaux et problématiques, ainsi que quelques commandes utiles.

Il existe 2 logiciels graphiques très pratiques pour ceci : disk-manager ainsi que pysdm.
Les informations de cette page s'adressent aux utilisateurs avancés, modifier le fichier fstab peut rendre votre système non fonctionnel en cas d'erreurs.

Remarque : ce sujet du forum indique comment monter automatiquement une partition au démarrage.

http://forum.ubuntu-fr.org/viewtopic.php?pid=3813312#p3813312

Voir aussi en plus simple autofs

Cette page s'adressant plus particulièrement aux utilisateurs avancés, un simple renvoi vers la page de la documentation traitant des systèmes de fichiers semblerait ici nettement suffisant

Une unité de stockage (disque dur interne ou externe, clé USB, CDROM, DVDROM, disquette, …), pour être utilisée par un ordinateur doit être formatée. Cela signifie qu'on doit lui assigner un système de fichiers, indiquant les caractéristiques possibles des répertoires et fichiers 1) tels que le nom, la hiérarchisation, la taille maximale, les droits d'accès et d'autres options.

Liste rapide des systèmes de fichiers dont vous avez une description plus détaillée sur la page système de fichiers.

Nom Usuel Nom dans le fstab Nom détaillé
Ext2FS ext2 Extended File System v2
Ext3FS ext3 Extended File System v3
Ext4FS ext4 Extended File System v4
FAT 16 fat File Allocation Table 16b
FAT 32 vfat File Allocation Table 32b
NTFS ntfs New Technology FileSystem
XFS xfs
ReiserFS reiserfs
ISO 9660 iso9660 format des CDROM
HFS format de MacOS

et également adfs, affs, autofs, coda, coherent, cramfs, devpts, efs, hpfs, jfs, minix, msdos, ncpfs, nfs, proc, qnx4, ramfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, xenix, xfs, xiafs.

Bien que le système vfat ne permette malheureusement pas de gérer les droits d'accès aux fichiers, il a l'avantage d'être lisible (presque) partout. C'est donc un bon choix si l'on souhaite rendre des données accessibles sous plusieurs systèmes (partition de partage entre systèmes). C'est le cas également pour le NTFS maintenant qui peut être lisible sur tous les systèmes d'exploitation grâce au pilote ntfs-3g installé sur la majorité des distributions Linux et installable sur MacOS.

Dans une installation standard, un service du système assure le montage automatique des systèmes de fichier dès qu'un périphérique externe en USB (par exemple) est détecté permettant d'afficher le contenu de cette nouvelle unité de stockage.

En mode console (sans bureau) ou quand rien d'autre ne marche, nous allons utiliser un autre moyen : la commande mount.

Rappel sur la désignation des partitions

Le système voit les périphériques au travers d'une arborescence située dans le répertoire système /dev/* dont la dénomination dépend du type de périphérique et de l'ordre de branchement. (exemples pour les périphériques de stockages: /dev/hda /dev/hdb /dev/sda /dev/sdb …)

Les partitions sont désignées par leur numéro dans le disque. (exemples : /dev/hda1 /dev/hda2 …)

Avec la version 6.10 d'Ubuntu (et suivantes), l'UUID est utilisé par défaut dans le fichier fstab. Informations à ce sujet sur cette page: uuid_et_label

Avec la version 7.10 d'Ubuntu (et suivantes), tout périphérique est assimilé comme étant en série. Ainsi, tous vos hdX seront transformé en sdX. Ceci vient d'un changement dans le kernel.

Si comme moi vous aviez supprimé les UUID de votre fichier /etc/fstab pour les remplacer par des bons /dev/hdX (qui ne bougent pas si vous repartitionnez votre disque), la transition hdX → sdX n'a pas été transparente. Deux solutions pour remédier à ce problème :
  1. vous éditez à la main votre fstab et remplacez vous même les hdX par des sdX
  2. vous souhaitez revenir à la version avec les UUID (notamment pour éviter les futurs changements s'il y en a et revenir à la version choisie par défaut par Ubuntu), vous pouvez lancer le script /usr/lib/udev/migrate-fstab-to-uuid.sh dans un terminal (valable à partir de Gutsy). hda -> sda transition not handled during upgrade
Les cartes mémoires se montent bien dans /dev, mais la plupart ne sont pas en /dev/sd*. On les trouve sous /dev/mspblk0. De plus, les partitions ne sont pas notées 1, 2, …, mais p1, p2, … La seconde partition d'une carte mémoire sera donc : /dev/mspblk0p2

La commande mount permet de manipuler tous les montages de systèmes de fichier de manière très précise. Elle est invoquée de la manière suivante et il vous faudra les droits d'administration pour l'utiliser. :

sudo mount /dev/hda3 /media/stock

La précédente commande a pour effet de monter l'unité de stockage "/dev/hda3" dans le dossier "/media/stock". Le système de fichier utilisé est détecté automatiquement.

Sous Ubuntu, l'utilisateur par défaut ne peut pas forcément accéder de cette manière aux dossiers montés. Pour cela, il faut définir un u-mask (voir ci-dessous).

Le point de montage est un répertoire de l'arborescence de votre système de fichier. Vous pouvez monter un disque dans n'importe quel répertoire de votre système de fichier, il suffit de vérifier qu'il existe (le créer avant sinon) et qu'il soit vide bien entendu. Ubuntu monte automatiquement les disques dans des sous-dossiers du répertoire /media par exemple, dossiers qu'il crée automatiquement avant.

Point de montage dont le nom comporte un espace.

Pour la commande mount : l'espace doit être précédé d'un caractère d'echappement \, ou le nom du dossier mis entre guillements ""

Pour Fstab : l'espace doit être remplacé par \040

Il est possible de passer des options à mount pour spécifier un système de fichier s'il ne le trouve pas ou pour imposer des droits particuliers sur le volume monté par exemple. Nous allons voir ici les principales d'entre elles.

Options de montage

Format de la partition :
Le type de fichier peut être détecté automatiquement par mount par une analyse des premiers bits de la partition demandée, néanmoins dans certains cas il peut être nécessaire de lui imposer un format.

sudo mount -t [type] /dev/hda3 /media/stock
[type] peut être une des valeurs suivantes (voir tableau plus haut pour les formats courants) :
adfs, affs, autofs, cifs, coda, coherent, cramfs, debugfs, devpts, efs, ext, ext2, ext3, hfs, hfsplus, hpfs, iso9660, jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4, ramfs, reiserfs, romfs, smbfs, sysv, tmpfs, udf, ufs, umsdos, usbfs, vfat, xenix, xfs, xiafs.

exemples :

  mount -t ext3 /dev/hda3 /media/stock
  mount -t vfat /dev/hda3 /media/partage
  mount -t iso9660 /dev/hdd /media/cdrom
On peut également monter un fichier, comme un iso de cdrom:
mount -o loop sauvegardes.iso /media/loop

Droits par défaut du volume :
Cas concret : vous avez une partition en vfat sur votre disque dur et vous voudriez, en tant qu'utilisateur lambda, pouvoir lire et écrire dessus. Le système de fichier vfat ne spécifiant aucun droit, nous devons les lui spécifier lors du montage. Il faut alors indiquer à mount la valeur de umask adéquate grâce à l'option homonyme.

sudo mount -o umask=0 /dev/hda7 /media/win_d

Cette méthode a un inconvénient : les autorisations en exécution sont nécessaires pour les répertoires mais pénibles pour les fichiers. On peut alors préciser un umask pour chacun d'eux :

sudo mount -o fmask=111 -o dmask=0 /dev/hda7 /media/win_d

Vous pouvez également restreindre les droits en montant le système de fichier en lecture seule (c'est-à-dire avec aucun droit en écriture). L'option "-o umask=0222" est alors tout indiquée.

En ce qui concerne les systèmes de fichiers qui ont une gestion des permissions (comme Ext2, Ext3, ReiserFs etc…), si vous souhaitez pouvoir écrire dans cette partition en tant que simple utilisateur, vous devez changer les permissions ou l'appartenance du dossier. Exemple:

sudo mkdir /media/stock
sudo mount -t ext3 /dev/hda6 /media/stock
sudo chown utilisateur:utilisateur /media/stock

Avec la commande chown, nous changeons le propriétaire de la racine de la partition hda6, le système de fichier est Ext3, les droits seront donc conservés et désormais cette partition appartient à l'utilisateur peu importe où elle sera montée.

Le fichier /etc/fstab contient les points de montage pour chacun des systèmes de fichiers utilisés couramment sur le système et qui seront montés au démarrage. Un fstab est composé de plusieurs lignes décrivant chacune les conditions de montage de chaque système de fichier.

Point de montage dont le nom comporte un espace.

Pour la commande mount : l'espace doit être précédé d'un caractère d'echappement \, ou le nom du dossier mis entre guillements ""

Pour Fstab : l'espace doit être remplacé par \040

On retrouve dans ce fichier toutes les informations que nous avons déjà mentionnées. Certains systèmes de fichiers tels que /proc ou la swap sont un peu particuliers, et il est fortement recommandé de ne pas y toucher sans savoir ce que l'on fait. Les options de dump et de pass sont utilisées respectivement pour les sauvegardes (dump) et l'ordre de vérification au démarrage (pass). Laissez-y également les valeurs par défaut. Si vous ajoutez manuellement des partitions par la suite, les valeurs de <pass> doivent rester à 1 pour la racine, à 2 pour les autres partitions UNIX, et à 0 pour le swap et les partitions windows (cf. man fstab). Une valeur de <pass> à 0 signifie qu'il n'y aura pas de vérification au démarrage (Déconseillé dans la plupart des cas).

Le fichier /etc/fstab suivant résume une configuration classique :

  # /etc/fstab: static file system information.
  #
  # file system mount point     type        options                     dump pass
  proc          /proc           proc        defaults                    0    0
  # / was on /dev/sda7 during installation
UUID=33b870b8-a81e-4203-a4fd-7affa9f412fb /               ext4    errors=remount-ro 0       1
# /boot was on /dev/sda5 during installation
UUID=c3cc32c0-b4bd-49f6-b23c-35fed37adea5 /boot           ext2    defaults        0       2
# /home was on /dev/sda8 during installation
UUID=c2d386a1-c2f9-4d2f-957a-65a5d9b4c4d7 /home           ext4    defaults        0       2
# /opt was on /dev/sda9 during installation
UUID=050d0aa7-e04c-4f3a-895d-4b228a0ba049 /opt            ext4    defaults        0       2
# swap was on /dev/sda6 during installation
UUID=2c442228-1991-48c7-bad9-a80dfc8267cf none            swap    sw              0       0

Lorsqu'un système de fichier est présent dans le fichier /etc/fstab, tous les utilisateurs peuvent le monter en tapant "mount /media/stock" par exemple. En outre, il est monté automatiquement au démarrage de la machine.

Options Description Compatible
defaults Correspond a rw,suid,dev,exec,auto,nouser et async FIXME
discard compatible ext4 SSD seulement, active le TRIM SSD partition ext4
auto Montage automatique lors d'un appel mount -a (par défaut) FIXME
noauto Pas de montage automatique FIXME
nouser Seul le compte root peut monter/démonter le système de fichier (par défaut) FIXME
user Autorise l'utilisateur courant à monter/démonter le système de fichier. Ceci entraîne l'utilisation des options noexec, nosuid, et nodev (à moins qu'elles ne soient explicitement surchargées, comme dans une ligne d'option user,exec,dev,suid). FIXME
rw Montage en lecture/écriture (par défaut) FIXME
ro Montage en lecture seule FIXME
atime Met a jour la date à chaque manipulation (par défaut) FIXME
noatime Pas de mise à jour de la date (Augmente la durée de vie de votre SSD) FIXME
exec Autorise l'exécution des programmes (par défaut) FIXME
noexec Pas d'exécution FIXME
showexec ? FIXME FIXME
suid Les bits SUID et SGID sont pris en compte (par défaut) FIXME
nosuid Les bits SUID et SGID ne sont pas pris en compte FIXME
async Montage asynchrone (par défaut) FIXME
sync Montage synchrone FIXME
dev Interpréte les fichiers spéciaux de périphériques présents sur le système (par défaut) FIXME
nodev N'interpréte pas les fichiers spéciaux de périphériques présents sur le système de fichiers FIXME
uid= spécifie le n° du user propriétaire des fichiers (si omis : root) fat, FIXME
gid= spécifie le n° du groupe propriétaire des fichiers (si omis : root) fat, FIXME
umask= umask=000 pour avoir chmod 777 - spécifie les droits d'usage des fichiers (et des dossiers ? FIXME) - voir Permissions (ou droits d'accès) permission=777-umask (si omis : ? FIXME) fat, hfs, hpfs, ntfs, udf
dmask= spécifie les droits d'usage des dossiers - (si omis : ? FIXME) FIXME
fmask= spécifie les droits d'usage des fichiers - (si omis : ? FIXME) FIXME
utf8 (autres possibilités ?FIXME) (par exemple) spécifie l'encodage utf8 pour les noms de fichiers FIXME

Note sur les UUIDs

Il est préférable de noter les UUIDs des partitions plutôt que leur types bloc (exemple : /dev/sda4, /dev/sdb2…). En effet, l'UUID est unique à la partition, elle vous assure qu'il n'y aura pas d'ambiguïté dans votre fstab.
Pour obtenir les UUIDs de vos partitions, tapez

sudo blkid

Vous obtiendrez la liste de vos partitions, leurs types blocs, leurs UUIDs, leurs étiquettes, leurs types:

/dev/sda5: UUID="c3cc32c0-b4bd-49f6-b23c-35fed37adea5" TYPE="ext2" 
/dev/sda6: UUID="2c442228-1991-48c7-bad9-a80dfc8267cf" TYPE="swap" 
/dev/sda7: UUID="33b870b8-a81e-4203-a4fd-7affa9f412fb" TYPE="ext4" 
/dev/sda8: UUID="c2d386a1-c2f9-4d2f-957a-65a5d9b4c4d7" TYPE="ext4" 
/dev/sda9: UUID="050d0aa7-e04c-4f3a-895d-4b228a0ba049" TYPE="ext4"
/dev/sdd1: LABEL="Datas" UUID="77F65A7545C503E9" TYPE="ntfs" 

Ainsi, dans votre fstab, les deux lignes suivantes sont équivalentes, mais on préfèrera la seconde :

/dev/sdd1 /mnt/Datas ntfs defaults 0 0
UUID=77F65A7545C503E9 /mnt/Datas ntfs defaults 0 0

Voir aussi la page Comment accéder à ses partitions Windows depuis GNU/Linux ? et Monter des partages Windows au démarrage

Dossier cdrom0 inexistant
Il arrive que le répertoire /media/cdrom0 soit effacé. Dans ce cas, un mount renvoie une erreur explicite. Il est possible de le recréer tout simplement.

sudo mkdir /media/cdrom0
mount /media/cdrom0

Fichiers occupés
Un système de fichier ne peut être démonté tant que certains de ses fichiers sont utilisés. C'est le cas par exemple lorsque vous avez un navigateur de fichiers qui affiche encore le volume en question, ou si vous êtes vous-même dans le répertoire. Dans ce cas, il faut s'assurer que le répertoire courant n'appartient pas au volume que l'on souhaite démonter.

Il arrive aussi que ce soit un peu plus compliqué, et que l'on ne sache pas quelle est la ressource qui utilise le volume en question. Dans ces cas-là, il faut trouver la ressource qui gêne, grâce par exemple à la commande lsof (en tant que super-utilisateur, cette commande permet de connaître tous les descripteurs de fichiers ouverts), filtrée pour n'afficher que les descripteurs sur le volume. En tuant le processus qui utilise le volume, le démontage devient possible.

Ubuntu ne monte un périphérique USB
Il peut arriver lors de l'installation d'Ubuntu à partir d'une carte mémoire ou d'une clef USB qu'il devienne impossible de monter un périphérique USB (clef, disque dur externe…).
Afin dé résoudre ce problème Ouvrez le fichier /etc/fstab et supprimez en la dernière ligne:

/dev/sdb1 /media/cdrom0 udf,iso9660 user,noauto,exec,utf8 0 0

Une fois les modifications apportées, enregistrez votre ou vos fichiers de configuration, afin de prendre en compte ces modifications.

Vous pouvez redémarrer votre ordinateur dans le but de tester si les partitions sont montées automatiquement. Si vous préférez redémarrer plus tard, vous pouvez simplement saisir les deux commandes suivantes dans un terminal :

  sudo umount -a
  sudo mount -a

Attention la commande "umount -a" peut être très dangereuse suivant l'organisation de votre fichier fstab

Vous pouvez nommer facilement vos partitions et ainsi organiser votre espace de travail. Pour cela vous devez changer le nom de votre partition dans le fichier fstab et créer un repertoire avec le même nom dans /media.

Le répertoire /media appartient par défault à root, vous devez donc utiliser les droits du superutilisateur pour le modifier.

Exemple pour renommer hda1 en stock:

sudo mkdir /media/stock
Point de montage dont le nom comporte un espace.

Pour la commande mount : l'espace doit être précédé d'un caractère d'echappement \, ou le nom du dossier mis entre guillements ""

Pour Fstab : l'espace doit être remplacé par /040

ensuite éditer le fichier /etc/fstab et modifier le nom de votre partition. Chercher /media/hda1 et remplacer hda1 par stock.

Cependant, il est possible que de nombreux logiciels aient mémorisé le chemin de fichiers sous l'ancien nom /media/hda1/suiteblabla. Plutôt que de modifier tous ces chemins, il est possible de faire un lien symbolique de sorte que media/hda1 mène à /media/stock

Vérifier que /media/hda1 n'est plus monté:

 ls /media/hda1

Si le dossier est vide (hda1 n'est plus monté), effectuer:

   sudo rmdir /media/hda1
   ln -s /media/stock /media/hda1
Version 10.10, il est possible de changer le nom des partitions grâce à l'Utilitaire de disque qui se trouve dans Système⇒administration⇒utilitaire de disque

Après avoir monté un disque, par exemple dans /media/disque-test, il peut être intéressant de monter l'intégralité du contenu, ou un répertoire seulement, de ce disque dans un autre répertoire sans démonter /media/disque-test.

Cela permet par exemple :

  • de « recopier » ce contenu dans un répertoire tout spécialement destiné à un partage FTP,
  • un utilisateur qui n'a pas accès au disque-test par le répertoire de montage peut ainsi se voir conférer des droits d'accès à un sous répertoire du disque-test s'il a accès au répertoire lié (le répertoire lié et les fichiers qu'il contient doivent autoriser cet accès)

Cela est possible avec l'option "bind" (bind signifie lier en anglais) de la commande « mount » qui s'utilise ainsi en ligne de commande :

mount --bind /media/répertoire-à-lier /home/user/répertoire-lié
mount --bind /source-"privée"-à-rendre-visible /répertoire-accessible-à-tous
sudo mount --bind /media/disque/répertoire /home/user/répertoire-lié

Attention : l'utilisateur du répertoire lié peut aussi modifier les données auxquelles il a accès, si les droits qui lui sont conférés par le répertoire lié et les fichiers qu'il contient le lui permettent.

On peut démonter le répertoire lié par la commande : 'umount /home/user/répertoire-lié'

sudo umount /home/user/répertoire-lié

De toute façon, lors d'un redémarrage les montages vont disparaître.

Pour faire perdurer ces montages, il faut alors spécifier ce montage dans le fichier fstab.

Éditez le fichier /etc/fstab.

On indique le montage 'bind' de la façon suivante : '/media/disque/répertoire /home/user/répertoire-lié none bind 0 0'

Voici un exemple :

  # /etc/fstab: static file system information.
  #
  # file system   mount point     type         options                    dump  pass
  proc            /proc           proc         defaults                   0     0
  /dev/hda2       /               ext3         defaults,errors=remount-ro 0     1
  /dev/hda3       /home           ext3         defaults                   0     2
  /dev/hda6       /media/stock    ext3         defaults                   0     2
  /dev/hda1       /media/win_c    vfat         defaults,umask=0           0     0
  /dev/hda7       /media/win_d    vfat         defaults,umask=0           0     0
  /dev/hdb1       /media/windows  ntfs         ro,uid=1000,gid=1000       0     2
  /dev/hda8       /media/debian   reiserfs     defaults                   0     2
  /dev/hda5       none            swap         sw                         0     0
  /dev/hdc        /media/cdrom0   udf,iso9660  ro,user,noauto             0     0


# mes répertoires liés
/media/Maxtor1 /home/user/Maxtor1 none bind 0 0

Il suffit de retirer le dernier paragraphe du fichier fstab pour annuler l'opération au prochain redémarrage.

Pour lister les partitions, utiliser en sudo la commande fdisk -l:

  login@ubuntu:login$ sudo fdisk -l /dev/hda
  Disk /dev/hda: 60.0 GB, 60011642880 bytes
  255 heads, 63 sectors/track, 7296 cylinders
  Units = cylinders of 16065 * 512 = 8225280 bytes
  Device Boot      Start         End      Blocks   Id  System
  /dev/hda1   *           1        1275    10241406    c  W95 FAT32 (LBA)
  /dev/hda2            1276        1913     5124735   83  Linux
  /dev/hda3            1914        2551     5124735   83  Linux
  /dev/hda4            2552        5191    21205800    5  Extended
  /dev/hda5            2552        2653      819283+  82  Linux swap
  /dev/hda6            2654        3291     5124703+  83  Linux
  /dev/hda7            3292        4553    10136983+   c  W95 FAT32 (LBA)
  /dev/hda8            4554        5191     5124703+  83  Linux

Contributeurs : helly.


1)
Il faut noter que dans la philosophie Unix, un répertoire est un fichier, mais ce n'est pas là notre propos. Consultez google pour plus d'information à ce sujet.
  • mount_fstab.1327145619.txt.gz
  • Dernière modification: Le 21/01/2012, 12:33
  • par 84.101.159.21