Ceci est une ancienne révision du document !
mount et fstab : Le montage des systèmes de fichiers
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.
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.
Outre la documentation des 2 logiciels ci-dessus, le montage graphique est documenté sur la page Rendre accessible manuellement une partition et d’autres unités de stockage.
L'utilisation des droits d'administration permet de modifier le système, et risquer de l'abîmer.
Il est préférable de sauvegarder votre fichier
/etc/fstab
avant manipulation.
Quelques liens : Les systèmes de fichiers sous Linux ainsi que le portail Partitions.
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/sdb
, etc.
Les partitions sont désignées par leur numéro dans le disque (/dev/sda1
, /dev/sda2
, …)
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 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
blkid
Vous obtiendrez la liste de vos partitions et pour chacune, son chemin d'accès, son UUID, son étiquette, le type de système de fichier qu'elle contient :
/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 trois lignes suivantes sont équivalentes :
/dev/sda3 /home ext4 defaults 0 0 UUID=8244710a-5cce-49ad-8b93-a92b5d2e53a0 /home ext4 defaults 0 0 LABEL=Home /home ext4 defaults 0 0
La première ligne est déconseillée dans la mesure où le chemin d'accès à la partition (/dev/sda3) dépend du contexte dans lequel le fichier /etc/fstab est exploité ; la seconde est la plus solide, car l'UUID d'une partition n'est qu'exceptionnellement modifiée ; la troisième est la plus claire, mais l'unicité de l'étiquette n'est pas garantie, ni sa pérennité, l'utilisateur ayant tout loisir de nommer ses partitions comme il l'entend (des conflits peuvent survenir du fait de la présence au démarrage de temps à autre de périphériques amovibles).
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’échappement \, ou le nom du dossier mis entre guillemets "" .
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, f2fs, 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.
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 automatiquement 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 partition / système de fichier.
Le fichier fstab est créé lors de l'installation, avec le montage de la partition principale, et de la swap. Mais on peut y ajouter manuellement des partitions supplémentaires, qui seront alors automatiquement lues par le système au démarrage.
/etc/fstab
par \040
Les bases
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
Ici, le disque principal est sda7, et son swap est sda6. Ces lignes ont été créées par l'installateur. Les partitions additionnelles montées sont sda5 et sda8, et on été ajoutées à la main.
- la colonne <file system> indique la partition elle-même. Il y a plusieurs solutions, mais la plus sûre est de donner l'UUID de la partition. Celle-ci sera obtenue via un sudo blkid, via gnome-disk, ou via gparted.
- la colonne <mount point> indique un répertoire quelconque sur la partition principale, et qui servira de point de montage. Pour la partition principale elle-même, c'est évidemment "/" (la racine). Pour une partition montée additionnelle, on choisit en général (ce n'est pas un emplacement obligatoire) un répertoire /media/xxx (où xxx est le nom que vous choisissez pour la partition de montage). Vous devez créer manuellement cette partition de montage une fois pour toutes par un sudo mkdir /media/xxx. Laissez-la vide, et n'y touchez plus jamais. Elle sert juste d'ancrage au fstab pour son montage.
- La colonne <type> donne le type de système de fichiers de la partition montée. Pour une partition linux, c'est souvent ext4.
- La colonne <option> permet de choisir des options au montage. Sauf si vous êtes un expert, laissez defaults pour une partition ajoutée par vous au montage.
- la colonne <dump> règle les sauvegardes; la valeur classique est 0.
- la colonne <pass> règle la vérification au démarrage. Laissez-y les valeurs par défaut de l'installation. Si vous ajoutez manuellement des partitions, les valeurs de <pass> doivent être:
- 1 pour la racine (votre partition principale),
- 2 pour les autres partitions Linux (les partitions "externes" que vous souhaitez monter),
- 0 pour le swap et les partitions windows (cf. fstab) ⇒ pas de vérification.
Lorsqu'un système de fichiers (partition) est présent dans le fichier /etc/fstab, il est monté automatiquement au démarrage de la machine.
Les utilisateurs peuvent également le démonter manuellement ou le monter en tapant unmount ou mount /media/xxx (où xxx est le nom de votre répertoire de montage).
Présentation de la structure d'un FSTAB
Problèmes éventuels
Dossier de montage inexistant
Il arrive que le répertoire de montage n'existe pas. Dans ce cas, la commande mount
renvoie une erreur explicite. Il suffit de le recréer.
Toujours dans notre exemple : (l'option -p
permet de créer récursivement les dossiers parents s'il n'existent pas)
sudo mkdir -p /media/stock
Fichiers occupés
Un système de fichier ne peut être démonté tant que certains de ses fichiers sont ouverts par des processus.
Le cas le plus simple est que le répertoire de travail actuel est dans le volume que vous voulez démonter. Sinon, la commande lsof
permet de lister tous les fichiers ouverts. En arrêtant les processus qui utilisent le volume, le démontage devient possible.
Par exemple :
sudo lsof | grep /media/stock
(grep permet de n'afficher que les lignes contenant "/media/stock
")
Les logiciels utilisant un volume sont perdus
Imaginons que vous ayez modifié le dossier de montage de /media/moi/stock
en /home/moi/stockage
.
Il est possible que des logiciels utilisent des fichiers dans /media/moi/stock
; Pour éviter des problèmes de fonctionnement, vous pouvez (si vous pensez que c'est nécessaire) créer un lien symbolique de l'ancien point de montage vers le nouveau :
- Assurez-vous que rien n'est monté dans
/media/moi/stock
:ls /media/moi/stock
- Supprimez l'ancien point de montage :
sudo rmdir /media/moi/stock
- Créez un lien :
ln -s /home/moi/stockage /media/moi/stock
Voilà !