Fstab/fr

Revision as of 02:17, 5 February 2022 by Senkuu (talk | contribs) (Created page with "Pour plus d'informations sur la norme de la hiérarchie du système de fichiers Linux, reportez-vous à la section #See Also, mais en résumé, vous devez spécifier un r...")
Other languages:
English • ‎Türkçe • ‎français • ‎русский

Utilisation de fstab

Le fichier de configuration appartenant à la racine /etc/fstab est utilisé pour définir comment les partitions de disque, divers autres périphériques de bloc, ou les systèmes de fichiers distants doivent être montés dans le système de fichiers.

Chaque système de fichiers est décrit dans une ligne séparée. Ces définitions seront converties en unités de montage systemd dynamiquement au démarrage, ou lorsque la configuration du gestionnaire de système est rechargée.

La commande mount --all montera tous les systèmes de fichiers mentionnés dans fstab, (sauf ceux dont la ligne contient le mot clé noauto). Les systèmes de fichiers sont montés en suivant leur ordre dans fstab. La commande mount compare les systèmes de fichiers source et cible pour détecter les systèmes de fichiers déjà montés. La table du noyau contenant les systèmes de fichiers déjà montés est mise en cache pendant mount --all. Cela signifie que toutes les entrées fstab dupliquées seront montées.

Fichier d'exemple

Chaque ligne du fichier décrit un système de fichiers, et contient des champs (spécifiés en colonnes) utilisés pour fournir des informations sur son point de montage, les options qui doivent être utilisées lors du montage, etc. Chaque champ peut être séparé les uns des autres par des espaces ou des tabulations :

# /etc/fstab : informations statiques sur le système de fichiers.
# <système de fichiers> <point de montage> <type> <options> <dump> <pass>.
LABEL=ESP   /boot/efi   vfat   umask=0077   0   2
/dev/sda5   /           ext4   defaults,noatime,discard   0   1
UUID=18360b04-a96d-4a99-8323-b07717f36a31   swap   swap defaults,noatime,discard   0   0
UUID=b4108631-e051-48d8-b2ff-a1d924a893f1   /home   ext4   defaults,noatime,discard   0   2
tmpfs   /tmp   tmpfs   defaults,noatime,mode=1777   0   0
UUID=634E43D367B0A4B1   /media/Data   ntfs-3g   noauto,x-systemd.automount,x-systemd.device-timeout=10,rw,inherit,permissions,streams_interface=windows,windows_names,compression,norecover,hide_dot_files,hide_hid_files,big_writes   0   2

Chaque colonne dans le tableau ci-dessus correspond aux "champs" de fstab et sera expliquée dans la section suivante.

Définitions des champs

Spécification du système de fichiers

Ce champ décrit un de chacun des éléments suivants :

  • le périphérique spécial de bloc
  • le système de fichiers distant
  • image du système de fichiers pour le périphérique loop à monter
  • le fichier d'échange (swap) ou la partition d'échange à activer

Ce champ prend généralement la forme de :

  • /dev/XdY
  • LABEL=<label>
  • UUID=<uuid>

pour identifier de manière unique un système de fichiers que vous souhaitez monter. Comme un UUID est nécessairement unique, vous constaterez qu'il s'agit de la valeur par défaut utilisée sur les systèmes plus modernes, alors qu'un nom de périphérique et un label ne sont utilisés que sur les systèmes plus anciens. Nous nous concentrerons donc sur les UUID dans ce tutoriel, mais sachez que si vous insistez pour utiliser ces commandes systèmes, elles fonctionnent toujours au moment de la rédaction de ce document.

Pour obtenir l'UUID de tous vos appareils, exécutez la commande blkid en tant que root :

sudo blkid

and you'll get someting like this:

/dev/sda1: LABEL_FATBOOT="ESP" LABEL="ESP" UUID="2462-755F" BLOCK_SIZE="512" TYPE="vfat" PARTLABEL="EFI system partition" PARTUUID="b86c0cae-3055-4d9e-9e12-1fa1e2cd32d2"
/dev/sda2: PARTLABEL="Microsoft reserved partition" PARTUUID="b0679b89-007c-441b-88a3-74a39f1f8b2b"
/dev/sda3: LABEL="WINSYS" BLOCK_SIZE="512" UUID="029873F49873E497" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="f8d444b9-ec60-4ac8-b12a-52448119fad1"
/dev/sda4: BLOCK_SIZE="512" UUID="0EB23063B2305207" TYPE="ntfs" PARTLABEL="Basic data partition" PARTUUID="cb083fb5-d61c-48e3-a657-ceb363a983b1"
/dev/sda5: UUID="9b539186-41e9-46f0-a515-1ec6c3544367" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="7bd52fb7-4d7d-412c-bc01-e3c98c7f3bb1"
/dev/sda6: UUID="b4108631-e051-48d8-b2ff-a1d924a893f0" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="9683d669-e0fd-496a-bd9c-f0e51d0bd561"
/dev/sda7: UUID="18360b04-a96d-4a99-8323-b07717f36a30" TYPE="swap" PARTUUID="7434de88-dd5c-4ce5-a6e2-4bb65c16eab5"
/dev/sdb2: UUID="26055107-28cd-457e-9a31-46781de4065d" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="86bdde2c-b92c-43fc-811a-6d0cdc312be1"
/dev/sdb3: UUID="c9dd0f4c-5793-446e-90bb-d10e27bf4922" BLOCK_SIZE="4096" TYPE="ext4" PARTUUID="d02838bd-371c-4673-96ed-8aad73bb6d91"
/dev/sdc1: LABEL="Win-Data" BLOCK_SIZE="512" UUID="634E43D367B0A4B1" TYPE="ntfs" PARTUUID="ca8d0663-6a6e-4b09-a0d7-05b59d109ab1"

N'importe laquelle des sorties de blkid peut être utilisée comme premier champ dans le fichier fstab.

Ce qui signifie que toutes les lignes suivantes sont des entrées valides pour la première ligne de la sortie de l'exemple ci-dessus :

# <système de fichiers>   <point de montage>   <type>   <options> <dump>   <pass>.
LABEL=ESP   /boot/efi   vfat   umask=0077   0   2
UUID=2462-755F   /boot/efi   vfat   umask=0077   0   2
LABEL=EFI\040system\040partition   /boot/efi   vfat   umask=0077   0   2
UUID=b86c0cae-3055-4d9e-9e12-1fa1e2cd32d2   /boot/efi   vfat umask=0077   0   2

I.E. Une seule des lignes ci-dessus doit être présente dans votre fichier fstab pour monter la partition ESP, mais n'importe laquelle d'entre elles fonctionnera ! Cependant, il est fortement recommandé d'utiliser l'UUID car il est globalement unique. Cela signifie que si vous déplacez un disque sur une autre machine, il conservera son UUID et il n'y a pas de possibilité de surprise comme l'ordinateur sur lequel vous avez déplacé le disque existant qui se met soudainement à :

  • démarrer à partir de la partition EFI System Partition sur le nouveau disque au lieu de sa propre ESP.
  • ne parvient pas à monter sa propre partition Windows parce que vous venez d'en ajouter une autre et qu'elle est prioritaire (ou non : cela dépend de la version exacte du noyau et du pilote du système de fichiers, ce qui entraîne un démarrage qui ne fonctionne que 50% du temps et d'autres problèmes étranges).
  • échec du montage d'un disque parce que le disque que vous venez d'insérer dans le slot M2 #1 est nommé /dev/sda et celui du slot #2 qui s'appelait /dev/sda devient soudainement /dev/sdb.
  • etc, etc.

Point de montage

Ce champ décrit le point de montage (cible) dans votre système de fichiers. Pour les partitions swap, ce champ doit être spécifié comme `none'. Si le nom du point de montage contient des espaces ou des tabulations, ceux-ci peuvent être respectivement échappés comme `\040' et '\011'.

Pour plus d'informations sur la norme de la hiérarchie du système de fichiers Linux, reportez-vous à la section #See Also, mais en résumé, vous devez spécifier un répertoire existant sur votre système de fichiers où vous souhaitez monter une partition.

In the example fstab file above, the following line in it's blkid output:

/dev/sdc1: LABEL="Win-Data" BLOCK_SIZE="512" UUID="634E43D367B0A4B1" TYPE="ntfs" PARTUUID="ca8d0663-6a6e-4b09-a0d7-05b59d109ab1"
  • is the Windows D: Drive
  • has an NTFS label of "Win-Data"
  • has a Windows UUID of "634E43D367B0A4B1" (different from Linux UUIDs)
  • contains the NTFS File System
  • has a partition UUID of "ca8d0663-6a6e-4b09-a0d7-05b59d109ab1"

and gets mounted on the /media/Data according to this line:

UUID=634E43D367B0A4B1                     /media/Data    ntfs-3g noauto,x-systemd.automount,x-systemd.device-timeout=10,rw,inherit,permissions,streams_interface=windows,windows_names,compression,norecover,hide_dot_files,hide_hid_files,big_writes 0 2

Filesystem Type

This field describes the type of the filesystem. Linux supports many filesystem types: ext4, xfs, btrfs, f2fs, vfat, ntfs-3g (for Windows compatibility), hfsplus (for Mac Compatibility), tmpfs, sysfs, proc, iso9660 (to allow you to mount CD/DVD ISO files as Read-Only directories), udf, squashfs, nfs, cifs, and many more.

An entry swap denotes a file or partition to be used for swapping. An entry none is useful for bind or move mounts.

More than one type may be specified in a comma-separated list.

Using the same example fstab file and "Win-Data" line as above, ntfs-3g is the file system we're mounting this one under although the blkid shows ntfs. This is simply because the ntfs driver is a read-only driver (allowing you to see your Windows files, but not modify them, whereas the ntfs-3g (for 3rd generation) allows most NTFS options (except encryption) thus also read-write capabilities:

UUID=634E43D367B0A4B1                     /media/Data    ntfs-3g noauto,x-systemd.automount,x-systemd.device-timeout=10,rw,inherit,permissions,streams_interface=windows,windows_names,compression,norecover,hide_dot_files,hide_hid_files,big_writes 0 2

Mount options

This field describes the mount options associated with the filesystem.

It is formatted as a comma-separated list of options. It contains at least the type of mount (ro or rw), plus any additional options appropriate to the filesystem type (including performance-tuning options).

Basic filesystem-independent options are:

  • defaults: use default options: rw, suid, dev, exec, auto, nouser, and async.
  • noauto: do not mount when mount -a is given (I.E. at boot time)
  • user: allow any user to mount (I.E. no sudo needed)
  • owner: Only allow device owner to mount
  • comment: or x-<name> for use by fstab-maintaining programs
  • nofail: do not report errors for this device if it does not exist.

FAT Mount options

TBD

EXT2/3/4 Mount options

TBD

NTFS-3G Mount options

TBD

Dump?

This field must be 1 or 0 and is used by dump to determine which filesystems need to be dumped in case of a coredump (=crash). Defaults to zero (don’t dump) if not present.

Pass number

This field is used by fsck(8) to determine the order in which filesystem checks are done at boot time. The root filesystem should be specified with a fs_passno of 1. Other filesystems should have a fs_passno of 2. Filesystems within a drive will be checked sequentially, but filesystems on different drives will be checked at the same time to utilize parallelism available in the hardware.

Defaults to zero (don’t check the filesystem) if not present.

Tips and tricks

The default setup will automatically `fsck` and `mount` filesystems before starting services that need them to be mounted. For example, systemd automatically makes sure that remote filesystem mounts like NFS or Samba are only started after the network has been set up. Therefore, local and remote filesystem mounts specified in `/etc/fstab` should work out of the box. See

user $ man 5 systemd.mount COPY TO CLIPBOARD


for details.

See Also

https://refspecs.linuxfoundation.org/FHS_3.0/index.html