Ceci est une ancienne révision du document !
mount et fstab : Le montage des systèmes de fichiers
Outre les outils graphiques, la gestion du montage des périphériques de stockage peut s'effectuer en ligne de commande, ou grâce au fichier /etc/fstab
(montage automatique).
Nous allons découvrir ces outils, ainsi que quelques commandes utiles.
Le montage graphique est documenté ici.
Voir aussi autofs. (non installé par défaut)
Les systèmes de fichiers sous Linux
Un nouveau périphérique de stockage, lorsqu'il est détecté, est la plupart du temps monté automatiquement. Mais il peut être intéressant de monter manuellement, ou de spécifier des options de montage ou de modifier celles des partitions système.
Le montage des partitions a un impact sur le système et nécessite donc les droits d'administration.
Rappel sur la désignation des partitions
Les périphériques sont désignés par le système par des fichiers dans le répertoire /dev/
.
Les périphériques de stockage seront donc reconnus par /dev/sda
, /dev/hdb
, etc.
Les partitions sont désignées par leur numéro dans le disque (/dev/hda1
, /dev/hda2
, etc)
Les partitions peuvent aussi être reconnues par leur UUID et leur label
Liste des partitions
Vous pouvez lister les partitions en lançant la commande :
sudo fdisk -l
Ce qui vous ressortira quelque chose comme :
Disk /dev/sda: 117.3 GB, 117298257920 bytes 255 têtes, 63 secteurs/piste, 14260 cylindres, total 229098160 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets Identifiant de disque : 0x00067e35 Périphérique Amorce Début Fin Blocs Id Système /dev/sda1 2048 41945087 20971520 83 Linux /dev/sda2 41945088 58722303 8388608 82 partition d'échange Linux / Solaris /dev/sda3 58722304 121636863 31457280 83 Linux /dev/sda4 * 121636864 206187183 42275160 7 HPFS/NTFS/exFAT Disk /dev/sdb: 500.1 GB, 500107862016 bytes 255 têtes, 63 secteurs/piste, 60801 cylindres, total 976773168 secteurs Unités = secteurs de 1 * 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 4096 octets taille d'E/S (minimale / optimale) : 4096 octets / 4096 octets Identifiant de disque : 0x000e4fe9 Périphérique Amorce Début Fin Blocs Id Système /dev/sdb1 2048 976773119 488385536 83 Linux
Vous pouvez alors lire la liste des périphériques de stockage (disques dur, clés usb,…) avec la liste des partitions et leur taille.
Note sur les UUIDs
L'UUID est défini dans pour chaque partition de façon quasi-unique, et assure qu'il n'y aura pas d'ambiguïtés 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/sda1: UUID="8bf33340-e94c-4c4c-981d-35e73f8bc65c" TYPE="ext4" /dev/sda2: UUID="ac56a704-260b-45f5-85ac-e1b451bb79bc" TYPE="swap" /dev/sda3: LABEL="Home" UUID="8244710a-5cce-49ad-8b93-a92b5d2e53a0" TYPE="ext4" /dev/sda4: UUID="DCF041AFF0419126" TYPE="ntfs" /dev/sdb1: LABEL="Home" UUID="2c313d40-6bdc-4e42-917a-b04f88764aac" UUID_SUB="c21f5351-4022-41af-b504-6b59b455bf23" TYPE="btrfs"
Ainsi, dans votre fstab, les deux lignes suivantes sont équivalentes, mais on préfèrera la seconde :
/dev/sda3 /home ext4 defaults 0 0 UUID=8244710a-5cce-49ad-8b93-a92b5d2e53a0 /home ext4 defaults 0 0
La commande mount
Pour monter un périphérique, il faut connaître son nom, qui sera de la forme /dev/sda1, par exemple.
La commande mount permet de manipuler tous les montages de systèmes de fichier de manière très précise. Par exemple, pour monter l'unité de stockage "/dev/sdc3" dans le dossier "/media/stock" :
sudo mount /dev/sdc3 /media/stock
Le système de fichier utilisé est détecté automatiquement.
Le point de montage doit être un dossier, quelconque mais existant et vide au moment du montage.
Ubuntu monte automatiquement les disques dans des sous-dossiers du répertoire /media par exemple, dossiers qu'il crée automatiquement avant.
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
Nous allons voir comment spécifier des options ou le système de fichiers.
Format de la partition
Le type de fichiers est normalement détecté par la commande mount
. Néanmoins il peut être nécessaire de lui imposer un format :
sudo mount -t [type] /dev/sdc3 /media/stock
[type] est le format de système de fichiers (Les systèmes de fichiers). Voici les plus fréquents :
ext2, ext3, ext4, fat
(Fat16), vfat
(Fat32), ntfs, reiserfs, btrfs, tmpfs, iso9660
(Disques),…
Exemples :
mount -t ext4 /dev/sdc3 /media/stock # Système de fichiers en ext4 mount -t vfat /dev/sdc3 /media/partage # Système de fichiers et Fat32 mount -t iso9660 /dev/sdd /media/cdrom # CD
On peut aussi monter des fichiers, comme par exemple des Isos (images disque) :
mount -o loop ubuntu-cdrom.iso /media/cd-installation
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.
Utilité encore aujourd'hui ? Jamais eu à utiliser ça…
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.
Dans notre exemple précédent, si /dev/sdc3
est en ext3 :
Après avoir monté la partition dans /media/stock
:
sudo chown utilisateur /media/stock
Désormais cette partition appartient à l'utilisateur peu importe où elle sera montée ensuite.
Autres options
D'autres options peuvent être spécifiées au montage comme nous le verrons dans le paragraphe suivant. Les mêmes options (default
, etc) peuvent être spécifiées avec mount
, après "-o
". Par exemple :
mount -t vfat -o defaults,rw,user,umask=022,uid=1000 /dev/sdc3 /media/stock
Le fichier fstab
Le fichier /etc/fstab
liste les partitions qui seront montées au démarrage ou à la connexion du périphérique, avec toujours les mêmes options.
Il est composé de plusieurs lignes décrivant chacune les conditions de montage de chaque système de fichier.
/etc/fstab
par \040
Le fichier /etc/fstab suivant résume une configuration classique :
# /etc/fstab: static file system information. # # Use 'blkid' to print the universally unique identifier for a # device; this may be used with UUID= as a more robust way to name devices # that works even if disks are added and removed. See fstab(5). # # <file system> <mount point> <type> <options> <dump> <pass> # / 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 # swap was on /dev/sda6 during installation UUID=2c442228-1991-48c7-bad9-a80dfc8267cf none swap sw 0 0
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). 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 à: rw,suid,dev,exec,auto,nouser et async | |
discard | compatible ext4 SSD seulement, active le TRIM | SSD partition ext4 |
auto | Montage automatique lors d'un appel mount -a (par défaut) | |
noauto | Pas de montage automatique | |
nouser | Seul le compte root peut monter/démonter le système de fichier (par défaut) | |
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). | |
rw | Montage en lecture/écriture (par défaut) | |
ro | Montage en lecture seule | |
atime | Met a jour la date à chaque manipulation (par défaut) | |
noatime | Pas de mise à jour de la date (Augmente la durée de vie de votre SSD) | |
exec | Autorise l'exécution des programmes (par défaut) | |
noexec | Pas d'exécution | |
showexec | ? | ! pas ext ! |
suid | Les bits SUID et SGID sont pris en compte (par défaut) | |
nosuid | Les bits SUID et SGID ne sont pas pris en compte | |
async | Montage asynchrone (par défaut) | |
sync | Montage synchrone | |
dev | Interpréte les fichiers spéciaux de périphériques présents sur le système (par défaut) | |
nodev | N'interpréte pas les fichiers spéciaux de périphériques présents sur le système de fichiers | |
uid= | spécifie le n° du user propriétaire des fichiers (si omis : root) [n° du user ou nom en toutes lettres ???]. Les numéros des utilisateurs se trouve dans "/etc/passwd". | fat, ntfs, |
gid= | spécifie le n° du groupe propriétaire des fichiers (si omis : root). Les numéros des groupes se trouve dans "/etc/group". | fat, ntfs, (! pas ext4) |
umask= | umask=000 pour avoir chmod 777 - spécifie les droits d'usage des fichiers (et des dossiers ? ) - voir Permissions (ou droits d'accès) permission=777-umask (si omis : ? ) explication du fonctionnement de umask et dmask | fat, hfs, hpfs, ntfs, udf (! pas ext4) |
dmask= | (obsolète, utiliser dir_mode) spécifie les droits d'usage des dossiers - (si omis : ? ) | (! pas ext4) |
dir_mode= | pour les répertoires, indique le chmod, par exemple 0777 pour un accès complet ! | |
fmask= | (obsolète, utiliser file_mode) spécifie les droits d'usage des fichiers - (si omis : ? ) | (! pas ext4) |
file_mode= | pour les fichiers, indique le chmod, par exemple 0777 pour un accès complet ! | |
utf8 (autres possibilités ?) | (par exemple) spécifie l'encodage utf8 pour les noms de fichiers | |
sw | montage des partitions swap | swap |
windows_names | interdit l'usage des caractères non compatibles avec Windows dans les noms de fichiers. À savoir / \ : ? * < > " et le caractère barre verticale. Remarque : ces caractères ne peuvent de toutes façons pas être utilisés dans les partitions de format FAT. | ntfs (! pas ext4) |
Voir aussi la page Comment accéder à ses partitions Windows depuis GNU/Linux ? et Monter des partages Windows au démarrage
Problèmes
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 pas 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 de 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
Sauvegarde des fichiers et montage des partitions
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
Donner un nom explicite à votre partition
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
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
Monter un répertoire avec l'option « bind » de la commande « mount »
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.
Liens
- Lien vers le montage de partitions Windows : Comment accéder à ses partitions Windows ?
Contributeurs : helly.