mount et fstab : monter des partitions de disques ou NFS, CIFS sur Linux

Sur Linux, lorsque l'on ajoute un nouveau disque local ou après avoir créé une partition de disque, vous devez monter la partition de disque dans un emplacement que l'on nomme point de montage.
Il va en de même pour accéder à un partage réseau NFS ou CIFS.
La commande mount peut monter n'importe quel type de périphériques supportés par le noyau Linux (ext3, ext4, nfs, hpfs, ntfs, vfat, cifs, jfs, ReiserFS, XFS, Btrfs, ...)

Pour cela, on utilise deux éléments :

  • mount : la commande pour monter un disque local ou réseau sur un point de montage
  • umount : démonter la partition de disque
  • /etc/fstab : le fichier de configuration des points de montage automatique au démarrage de Linux

Ce tutoriel vous guide pour utiliser mount avec toutes les options ainsi que les exemple de configuration de /etc/fstab.

mount et fstab : monter des partitions de disques ou NFS, CIFS sur Linux
mount et fstab : monter des partitions de disques ou NFS, CIFS sur Linux

Comment utiliser mount sur Linux

Avant de commencer, il faut avoir une idée du fonctionnement es partitions de disques sur Linux.
Pour cela, reportez-vous à ce tutoriel :

L'utilisation générique est :

mount -t TYPE NOM_PERIPHERIQUE REPERTOIRE

Si vous ne spécifiez pas l'option -t, mount tente de déduire le système de fichiers du périphérique pour le monter.

Les optionsDescription
-aMonte tous les périphériques décrits dans /etc/fstab
-lRépertorie tous les systèmes de fichiers déjà montés
-o, --options Utilisez les options de montage spécifiées. L'argument opts est une liste séparée par des virgules.
Par exemple: mount LABEL = mydisk -o noatime, nodev, nosuid
-rMode lecture seule monté
-tType de périphérique de système de fichiers utilisé
-TDécrit un fichier fstab alternatif
-hAffiche les options de commande
-VAffiche les informations de version
Les options de la commande mount

Par exemple pour monter une partition NTFS Windows se trouvant dans /dev/sda1 sur Linux :

mount -t nfs /dev/sda1 /media/sda1/

Le paramètre -o de mount est utile pour spécifier des options additionnelles.
Il existe des options communes (comme rw, ro, etc) communes à tous les types de périphériques et des options spécifiques aux types de périphériques.

Enfin tout comme mkfs, la commande mount se décline selon le type de périphériques, on peut donc aussi utiliser les commandes mount.cifs, mount.nfs;, ...

Comment lister les systèmes de fichiers montés

En utilisant la commande mount sans aucune option et paramètres, cela liste les points de montage.
La syntaxe est alors :

[Périphérique] [Point de montage] [Type de système de fichiers] [Options]
Lister les points de montage sur Linux avec la commande mount

Par exemple, voici un point de montage nfs4 (nfs-server 4) dont le partage est 10.1.1.100:/media/share que l'on a monté dans /share-nfs avec les différents options du montage.

10.1.1.100:/media/share on /share-nfs type nfs4 (rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=51.210.214.71,local_lock=none,addr=51.68.36.221)

Monter des partitions de disques

Rien de vraiment particulier pour monter des partitions de disque, on utilise la syntaxe classique de mount.

Par exemple pour monter le disque /dev/sdb2 sur /data :

mount /dev/sd2 /media/usb

Pour monter une partition de disque en FAT32 :

mount -t vfat /dev/sda1 /media/usb

Pour la monter en lecture seule :

mount -t vfat -o ro,noexec /dev/sda1 /media/usb

Mais aussi pour monter une clé USB :

mount /dev/sdd1 /media/usb
Les options -o communesDescription
asyncLes modifications des données des fichiers sont initialement effectuées en mémoire. Cela accélère les performances mais est plus susceptible d'entraîner une perte de données. Sur certaines distributions, c'est la valeur par défaut.
defaultsUtilisez les options par défaut: rw, suid, dev, exec, auto, nouser et async
rw
ro
Monte la partition en lecture/écriture (read-write) ou en lecture seule (read-only).
group
users
Permettez à un utilisateur ou groupe utilisateur de monter le système de fichiers.
Cette option implique les options noexec, nosuid et nodev (sauf si elles sont remplacées par les options suivantes, comme dans la ligne d'option user, exec, dev, suid).
exec
noexec
Permet ou ne permet pas d'exécuterr des fichiers (programmes ou script) situés sur la partition.
noatimeNe pas mettre à jour les temps d'accès aux inodes sur ce système de fichiers.
Cela fonctionne pour tous les types d'inœuds (répertoires aussi), donc cela implique nodiratime.
ownerAutorise un utilisateur ordinaire à monter le système de fichiers si cet utilisateur est le propriétaire du périphérique.
Cette option implique les options nosuid et nodev (sauf si elles sont remplacées par les options suivantes, comme dans la ligne d'options propriétaire, dev, suid).
relatimeL'inode de répertoire n'est pas mis à jour sur le système de fichiers lors de l'accès. Cela peut améliorer les performances de la même manière que ne pas mettre à jour le temps d'accès aux fichiers.
remountEssaye de remonter un système de fichiers déjà monté. Ceci est couramment utilisé pour modifier les indicateurs de montage d'un système de fichiers, en particulier pour rendre un système de fichiers en lecture seule accessible en écriture. Cela ne change pas le périphérique ou le point de montage.
syncLes modifications des données de fichier sont effectuées sur le disque immédiatement, ce qui a un impact sur les performances, mais est moins susceptible d'entraîner une perte de données. Sur certaines distributions, c'est la valeur par défaut.
Les options -o communes de la commande munt

Montage NFS

Il faut installer le paquet nfs-common, avec APT sur une distribution à base de Debian :

apt install nfs-common

Puis pour monter un partage NFS, on utilise l'option -t nfs de mount avec la source et le point de montage :

mount -t nfs 10.1.1.100:/media/share /share-nfs

La commande mount dans le cas de NFS accueille des paramètres et options particulières dont voici les principales.

Options mount pour NFSDescription
rsize=
wsize=
Spécifie la taille de bloc de données plus importante (num, en octets) à transférer.
Cela peut améliorer les performances NFS.
nodiratimeL'inode de répertoire n'est pas mis à jour sur le système de fichiers lors de l'accès. Cela peut améliorer les performances de la même manière que ne pas mettre à jour le temps d'accès aux fichiers.
no_subtree_checkCette option désactive la vérification des sous-arbres, ce qui a de légères implications en termes de sécurité, mais peut améliorer la fiabilité dans certaines circonstances.
root_squash : Mappez l'utilisateur root et le compte de groupe du client NFS aux comptes anonymes, souvent avec le compte nfsnobody. Ainsi ceci empêche les utilisateurs root connectés à distance (et non locaux) d'avoir des privilèges root.
wdelaypermet de réduire les délais d'écriture. Ceci peut améliorer les performances car il y a une réduction du nombre d'accès au disque par le biais de commandes d'écriture séparées, réduisant ainsi également l'alourdissement des écritures. Pour désactiver ce comportement, veuillez spécifier no_wdelay.
Les paramètres et options de montage NFS

Enfin le tutoriel complet sur NFS :

Montage CIFS (Samba)

Le montage d'un partage Windows distant est similaire au montage de systèmes de fichiers normaux.
On spécifie le type cifs ainsi que des options de montages avec le paramètre -o.

mount -t cifs -o username=<utilisateur_windows> //IP_PC_WINDOWS/<partage_windows> /mnt/win_share

On peut aussi spécifier un domaine ou groupe de travail

mount -t cifs -o username=<utilisateur_windows>,domain=<domaine,groupe de travail> //IP_PC_WINDOWS/<partage_windows> /mnt/partage_windows

Mais on peut aussi spécifier le mot de passe, ce qui n'est pas très sûr comme méthode :

mount -t cifs -o username=<utilisateur_windows>,password=<mot_passe_partage> //IP_PC_WINDOWS/<partage_windows> /mnt/win_share

Une autre méthode consiste à créer un fichier qui stocke les identifiants.
Par exemple /etc/win-identifiants :

username=utilisateur
password=motdepasse
domain=domaine

Puis on applique les permissions avec chmod pour ne pas le rendre accessible aux autres utilisateurs :

chown root: /etc/win-credentials
chmod 600 /etc/win-credentials

Pour utiliser le fichier d'informations d'identification, définissez-le comme suit :

mount -t cifs -o credentials=/etc/win-identifiants //IP_PC_WINDOWS/<partage_windows> /mnt/win_share

Par défaut, le partage monté appartient à root et les autorisations sont définies sur 777.
Utilisez l'option dir_mode pour définir l'autorisation de répertoire et file_mode pour définir l'autorisation de fichier

mount -t cifs -o credentials=/etc/win-identifiants,dir_mode=0755,file_mode=0755 //IP_PC_WINDOWS/<partage_windows> /mnt/win_share

L'utilisateur et propriétaire par défaut et groupe peuvent être modifiés avec les options uid et gid:

mount -t cifs -o credentials=/etc/win-identifiants,uid=1000,gid=1000,dir_mode=0755,file_mode=0755 //IP_PC_WINDOWS/<partage_windows> /mnt/win_share
Options mount pour CIFSDescription
credentialsSpécifie un fichier contenant un nom d'utilisateur et / ou un mot de passe et éventuellement le nom du groupe de travail
dir_modeSi le serveur ne prend pas en charge les extensions CIFS Unix, ceci
remplace le mode par défaut des répertoires.
file_modeSi le serveur ne prend pas en charge les extensions CIFS Unix, ceci
remplace le mode de fichier par défaut.
rsize
Taille de lecture réseau par défaut (généralement 16 Ko). Le client ne peut actuellement pas utiliser rsize plus grand que CIFSMaxBufSize.
uid et giddéfinit le uid et gid qui possédera tous les fichiers ou répertoires sur le
système de fichiers monté lorsque le serveur ne fournit pas la propriété
information.
Il peut être spécifié sous la forme d'un nom d'utilisateur ou groupe groupe ou d'un
uid/gid numérique.
Lorsqu'il n'est pas spécifié, la valeur par défaut est gid 0.
setuids
nosetuids
Le client tentera de définir l'uid et le gid effectifs du processus local sur les fichiers, répertoires et périphériques nouvellement créés (create, mkdir, mknod).
nosetuids aucune négociation.
wsizeQuantité maximale de données que le noyau enverra dans une demande d'écriture en octets
Les options de mount.cifs - la liste complète dans le man mount.cifs

Monter un fichier ISO

Pour monter un fichier ISO et rendre les fichiers accessible, on utilsie l'option -o loop :

mount /path/to/image.iso /media/iso -o loop

Par exemple pour monter l'ISO ubuntu-20.04-desktop-amd64.iso dans /media/iso :

mount ~/Downloads/ubuntu-20.04-desktop-amd64.iso /media/iso -o loop

Démonter un système de fichiers

Pour démonter un système de fichiers, on utilise la commande umount en spécifiant la partition de disque ou le point de montage.

Pour démonter la partition /dev/sda6 :

umount /dev/sda6

Ou en spécifiant le point de montage.
Par exemple pour démonter /media/usb :

umount /media/usb

Remonter un point de montage sans le démoner

Dans certas cas, il peut arriver que l'on ait besoin de remonter un point de montage en modifiant les options sans le démonter.
Cela peut arriver pour un montage réseau ou quand le système de fichiers est marqué comme endommagé.
Linux monte alors la partition de disque en lecture seule, on peut la remonter en écrire.
Pour cela, il faut utilsier l'option -o remount.

Par exemple pour remonter la partition racline en écriture :

mount / -o remount,rw

Ou encore remonter un partage NFS en changeant les options :

mount -o remount,options1,options2 /data/

Enfin on peut aussi remonter la partition après avoir modifié les options dans /etc/fstab :

mount -o remount /data/

/etc/fstab : montage automatique au démarrage de Linux

/etc/fstab est le fichier de configuration pour les points de montage automatique au démarrage de Linux.
Voici la syntaxe du fichier /etc/fstab qui reprend celle de mount :

[Périphérique] [Point de montage] [Type de système de fichiers] [Options] [Dump] [Réussite]

Un exemple de contenu de ficheir fstab dont voici quelques commentaires :

  • Les partitions de disques sont identifiés par leurs UUID (Universal Unique IDentifier). La partition système / en ext4
  • On trouve donc deux partitions swap
  • La partition EFI est en fat et se monte dans /boot/efi
  • Toutes les partitions se montent avec les paramètres par défaut grâce à defaults
UUID=7e14c1b9-8492-4c8c-ad72-cf23dac39103       /       ext4    defaults        0       1
LABEL=EFI_SYSPART       /boot/efi       vfat    defaults        0       1
UUID=538acdad-4afb-417f-95a5-4c7dca0f07ac       /data-local     ext4    defaults        0       0
UUID=c5587dfe-7c0d-4b72-bd63-a04678428612       swap    swap    defaults        0       0
UUID=45b6d30b-cb08-43eb-9130-ccd5d9fd19b4       swap    swap    defaults        0       0

Pour obtenir la liste des UUID, utilisez une de ces commandes :

blkid
ls -l /dev/disk/by-uuid
lsblk --fs

Pour les lister les partitions :

fdisk -l 

Par exemple pour un montage automatique NFS dans /etc/fstab :

remote.server:/dir /media/nfs  nfs      defaults    0       0

Par exemple pour monter le partage NFS 10.1.1.100:/media/share dans /share-nfs :

10.1.1.100:/media/share /share-nfs nfs defaults 0 0

Si l'on veut spéficier des options de montage, on remplace le contenu de defaults :

10.1.1.100:/media/share /share-nfs nfs rw,relatime,vers=4.1,rsize=1048576,wsize=1048576,namlen=255,hard 0 0

Liens