Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentesRévision précédente
Prochaine révision
Révision précédente
fstab [Le 22/10/2013, 23:06] – effacée FelixPfstab [Le 16/04/2026, 08:34] (Version actuelle) – réorganisation (déplacement note gnome disque) krodelabestiole
Ligne 1: Ligne 1:
 +{{tag>administration système partitions montage}}
  
 +====== Fichier /etc/fstab ======
 +
 +Quand une clé USB est connectée, elle est normalement [[:montage|montée]] automatiquement. //Idem// évidemment pour la partition sur laquelle se trouve le [[:système]] qu'on vient de démarrer. Par contre, les autres partitions du disque ne seront pas montées automatiquement.\\
 +Il suffit généralement de [[:montage#gnome_fichiers|cliquer dessus avec le gestionnaire de fichiers]] ([[:nautilus|GNOME Fichiers]]), mais il peut aussi être intéressant de monter automatiquement ces partitions. Il peut aussi être intéressant de spécifier des [[:montage#options de montage]] (mettre une partition en lecture seule, par exemple).
 +
 +Les montages automatiques (au démarrage) sont définis dans le fichier ''/etc/fstab''. Ce fichier peut être modifié soit manuellement, soit automatiquement (le logiciel de référence étant [[:gnome-disk-utility|GNOME Disques]], installé par défaut sur Ubuntu).
 +
 +Cette page traite principalement de son édition //manuelle//.
 +
 +Si nécessaire, voir aussi les pages //[[:Montage]]//, //[[:systeme_de_fichiers|Systèmes de fichiers]]//, et //[[:Partitions]]//.
 +
 +<note warning>
 +Manipuler les fichiers système (et en particulier ''/etc/fstab'') est **//dangereux//**. Ne le faites pas si vous ne maîtrisez pas techniquement le sujet.
 +
 +Les [[:montage#interface_graphique1|interfaces graphiques]] sont beaucoup plus intuitives et évitent les erreurs.
 +
 +Il est dans tous les cas préférable de sauvegarder votre fichier ''/etc/fstab'' avant manipulation.
 +</note>
 +
 +===== Édition =====
 +
 +<note tip>
 +L'utilitaire graphique [[:gnome-disk-utility|GNOME Disques]] est présent par défaut sur Ubuntu, et il permet de gérer le fichier ''/etc/fstab'' de manière fiable sans avoir à l'éditer manuellement !
 +
 +Pour chaque espace de stockage ([[:partitions|partition]]) concerné, cliquer sur l'icône //Options de partition supplémentaires// -> //Modifier les options de montage...//\\
 +L'option //Monter au démarrage du système// aura pour effet d'ajouter une entrée correspondante dans ''/etc/fstab''.
 +
 +Ceci est très utile après avoir ajouté un [[:disque dur]] ou un [[:SSD]] à son ordinateur, ou d'une manière générale après la création d'une nouvelle [[:partitions|partition]].
 +
 +Pour en savoir plus, voir les chapitres //[[:montage#GNOME Disques]]// et //[[:gnome-disk-utility#Monter une partition automatiquement au démarrage]]//.
 +</note>
 +
 +Pour éditer //manuellement// le fichier ''[[:fstab|/etc/fstab]]'' avec les [[:permissions administrateur]] (requiert le mot de passe), il existe deux possibilités :
 +  * utiliser un éditeur de texte "graphique" qui propose un [[:elevation_privileges#gnome_fichiers_et_gedit|mode administrateur]], par exemple :
 +    * avec l'éditeur de texte par défaut depuis la version [[:kinetic|Kinetic 22.10]] de Ubuntu ([[:GNOME]]) :<code>gted admin:///etc/fstab</code>
 +    * ou (pour les versions d'Ubuntu antérieures) :<code>gedit admin:///etc/fstab</code>
 +  * ou avec un éditeur de texte en mode [[:terminal|console]] :<code>sudoedit /etc/fstab</code>qui sous ×buntu équivaut à :<code>sudo nano /etc/fstab</code>
 +
 +===== Désignation des supports de stockage =====
 +
 +Pour monter une partition, il faut connaître son [[:partitions#regle_de_denomination|identifiant]], son [[:partitions#labels|label]], ou son [[:partitions#UUID]].
 +
 +<note important>
 +Voir le chapitre //[[:partitions#Désignation des partitions sur Ubuntu]]// pour plus d'information à ce sujet.
 +</note>
 +
 +''/etc/fstab'' (et la commande ''[[:mount]]'') permettent aussi de [[:montage|monter]] des [[:partage|partages]] [[:réseau]], //[[:cloud]]//, etc.
 +
 +<note tip>
 +Pour plus d'information à ce sujet, voir le chapitre //[[:partage#Partage de fichiers]]//, et en particulier le [[:rclone#montage|montage avec rclone]].
 +</note>
 +
 +===== Contenu du fichier fstab =====
 +
 +Le fichier ''/etc/fstab'' liste les [[:partitions]] qui seront [[:montage|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 [[:partitions|partition]] / [[:système de fichiers]].
 +Le fichier ''/etc/fstab'' est créé lors de l'installation, avec le montage de la partition principale ([[:système]]), 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.
 +
 +<note important>
 +Si le nom d'un point de montage contient un espace, cet espace doit être remplacé dans ''/etc/fstab'' par ''\040''.
 +</note>
 +
 +==== Les bases ====
 +
 +Le fichier ''/etc/fstab'' suivant résume une configuration classique :
 +<file>
 +# /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
 +/dev/sda5                                    /boot           ext2    defaults          0       2
 +# /musique was on /dev/sda8 during installation
 +LABEL=ma-musique                             /musique        ext4    defaults          0       2
 +# swap was on /dev/sda6 during installation
 +UUID=2c442228-1991-48c7-bad9-a80dfc8267cf    none            swap    sw                0       0
 +</file>
 +Ici, la partition [[:système]] est ''/dev/sda7'', et le [[:swap]] est ''/dev/sda6''. Ces lignes ont été créées par l'installateur. Les partitions additionnelles montées sont ''/dev/sda5'' et ''/dev/sda8'', et ont été ajoutées à la main.
 +  - la colonne ''<file system>'' indique la partition elle-même. Il y a plusieurs solutions, mais les 4 principales sont :
 +    * l%%'%%''[[:partitions#UUID]]'' ([[https://fr.wikipedia.org/wiki/Universal_Unique_Identifier|Universal Unique Identifier]]) de la partition. Celle-ci sera obtenue via un ''sudo blkid'', via [[:gnome-disk-utility|GNOME Disques]], ou via [[:GParted]]. Un UUID ressemble à cela ''UUID=2c442228-1991-48c7-bad9-a80dfc8267cf''.
 +    * La référence directe à la partition sous la forme ''/dev/sda2'' ou ''/dev/sdb2'' (''dev'' signifie //appareil//, ''sd'' signifie connexion [[:ssd#formats_et_connexions|SATA]], la lettre est le numéro de connexion, et le numéro est celui de la partition. ''/dev/sdb2'' est donc la 2e partition du 2e support SATA). Inconvénient de cette méthode : si vous changez le 1er support de démarrage dans le BIOS, la signification de ''/dev/sdb2'' (par exemple) changera en même temps. L'[[:partitions#UUID]] est donc un identifiant plus stable et plus sûr.
 +    * Le **[[:partitions#labels|label]]** de la partition à monter. On peut en effet donner un nom ([[:partitions#labels|label]], ou étiquette) à une partition, même si ce n'est pas obligatoire. Dans ce cas, l'identifiant de la colonne ''<file system>'' prendra la forme ''LABEL=nom-partition'', où ''nom-partition'' est à remplacer par le [[:partitions#labels|label]] réel.
 +    * l'**[[reseau#lexique|adresse IP]]** du serveur de stockage [[:réseau]], collée au nom du répertoire qui s'y trouve et qu'on souhaite monter : ''192.168.7.12/rep_a_partager''. Dans ce cas, l'identifiant de la colonne ''<file system>'' prendra la forme ''CIFS'' (il s'agit du protocole SMB).
 +  - 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 ''/mnt/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 /mnt/xxx''. Laissez-la vide, et n'y touchez plus jamais. Elle sert juste de [[:montage#choix_du_point_de_montage|point de montage]] 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]]''. Voir le chapitre //[[:mount#Format de la partition]]// pour plus d'informations à ce sujet. Des valeurs spécifiques sont aussi possibles :
 +    * On peut généralement utiliser ''auto'' et laisser l'ordinateur détecter le format de fichiers.
 +    * Le type ''bind'' permet de monter un répertoire sur un autre (voir //[[:montage#Bind mount]]//).
 +    * ''ignore'' rend le volume "invisible" (voir //[[#Masquer le montage d'une partition]]//).
 +  - La colonne ''<option>'' permet de choisir des [[:montage#options de montage]]. Sauf si vous êtes un expert, laissez ''defaults'' pour une partition ajoutée par vous au montage. Il en existe beaucoup d'autres (voir le chapitre //[[:montage#Options de montage]]//), mais celle-ci suffit la plupart du temps.
 +  - la colonne ''<dump>'' règle les sauvegardes via l'utilitaire ''[[:dump]]''. La valeur classique est ''0'' (dump est obsolète).
 +  - la colonne ''<pass>'' règle la priorité de vérification (avec l'utilitaire [[:fsck]]) des erreurs éventuelles du système de fichiers au démarrage. Laissez-y les valeurs par défaut de l'installation. Si vous ajoutez manuellement des partitions, les valeurs de ''<pass>'' peuvent être :
 +     * ''1'' pour la partition [[:système]] (montée à la [[:arborescence#racine]] ''/'') => vérification prioritaire de cette partition
 +     * ''2'' pour les autres partitions Linux (les partitions //locales// tierces que vous souhaitez monter) => ce ''2'' fera les vérifications //après// la partition racine (ce qui rend le démarrage plus rapide)
 +     * ''0'' pour le [[:swap]], les partitions Windows (cf. [[man>fstab]]), et les stockages [[:réseau]] => pas de vérification.
 +
 +=== Exemples ===
 +
 +Par exemple une ligne ''fstab'' type pour un montage d'une partition Linux [[:ext4]] sera :
 +  * <file>/dev/sdb1                                  /mnt/stock      ext4     defaults         2</file>
 +  * ou mieux (l'[[:partitions#UUID]] est plus fiable) :<file>UUID=33b870b8-a81e-4203-a4fd-7affa9f412fb  /mnt/stock      ext4     defaults         2</file>
 +  * ou encore mieux (un [[:partitions#labels|label]] est plus éloquent) :<file>LABEL=stock                                /mnt/stock      ext4     defaults         2</file>
 +Ces 3 exemples [[:montage|montent]] pareillement et automatiquement la première (''1'') partition, nommée //stock//, du 2e support (''b'') connecté en [[:ssd#formats_et_connexions|SATA]] (''sd'').
 +
 +Autre exemple, celui d'un partage réseau (protocole [[:SMB]]) nommé ''partage'', accessible à l'adresse IP ''192.168.1.10'', grâce à [[:smb#CIFS VFS]] :
 +<file>//192.168.1.10/partage                          /mnt/partage    cifs     _netdev,guest,uid=1000,iocharset=utf8  0  0</file>
 +(''0'' et non ''2'' pour la dernière position, car il s'agit d'un [[:partage]] [[:réseau]]).
 +<note tip>Pour les stockages réseau, voir aussi //[[:rclone#Montage]]//.</note>
 +
 +=== Point de montage ===
 +
 +Dans tous les cas, il ne faut pas oublier de créer le [[:montage#choix_du_point_de_montage|point de montage]] par exemple pour ''/mnt%%/%%//stock//'' :
 +  sudo mkdir /mnt/stock
 +(remplacer ''//stock//'' par le nom qui convient).
 +
 +=== Validation ===
 +
 +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 (''[[man>umount]]'') ou le re-monter (''mount /mnt%%/%%//xxx//'', où ''//xxx//'' est le nom de votre répertoire de montage).
 +
 +Quand vous avez fini d'éditer le fichier ''/etc/fstab'', vous pouvez le tester sans redémarrer votre PC, via un :
 +  sudo mount -a
 +Cette commande interprète le ''fstab'' comme si votre machine venait de démarrer. C'est plus rapide pour tester différentes configurations.
 +
 +<note tip>La commande ''[[:mount]]'' seule permet de lister les volumes montés.</note>
 +
 +==== Options ====
 +
 +Les options disponibles pour la colonne ''<option>'' du fichier doivent être séparées par une virgule '','' sans espace, et permettent une utilisation avancée du système.
 +
 +<note important>
 +Les options sont communes à la commande ''[[:mount]]'' et à d'autres méthodes de [[:montage]]. Elles sont donc listées dans le chapitre //[[:montage#Options de montage]]//.
 +</note>
 +
 +==== Masquer le montage d'une partition ====
 +
 +Dans certains [[https://forum.ubuntu-fr.org/viewtopic.php?id=2036205|contextes]], il peut être intéressant de ne pas monter une partition et de la masquer aux techniques de montage en mode graphique, en indiquant ''ignore'' comme ''<type>''. Ceci n'exclut pas la possibilité de [[:montage]] manuel avec d'autres méthodes.
 +
 +Par exemple, pour masquer la partition contenant le système Windows, les deux lignes à ajouter pourraient être
 +<file>
 +##   Masquer le montage de la partition Windows qui est sur /dev/sda5
 +/dev/sda5 none ignore defaults 0 0
 +</file>
 +
 +===== Le fichier mtab =====
 +
 +Le fichier ''/etc/mtab'' contient la liste des supports [[:montage|montés]], que ce soit via ''/etc/fstab'', automatiquement par le [[:environnements|bureau]], avec la commande ''[[:mount]]'', ou autres méthodes. Il peut être utile de visualiser son contenu pour vérifier qu'un montage est effectif.
 +
 +Mieux encore, il peut servir de base, après un test avec ''[[:mount]]'', pour modifier le fichier ''fstab''.\\
 +À ce sujet, voir le tutoriel //[[:tutoriel:monter_un_volume_automatiquement|Monter un volume automatiquement]]//.
 +
 +===== Problèmes courants =====
 +
 +<note tip>
 +Voir aussi la section //[[:montage#Problèmes courants]]// de la page concernant le montage en général.
 +</note>
 +
 +==== UUID non valides ====
 +
 +Le fichier ''/etc/fstab'' peut vouloir monter des partitions avec des erreurs dans les identifiants [[:partitions#UUID]].
 +
 +Ce script permet de vérifier que tous les [[:partitions#UUID]] sont correctes dans le ''fstab'' :
 +
 +<file bash monfic.sh>
 +#!/bin/sh
 +
 +fstabUUID="$(sed -nE 's/UUID=([^ ]+) .*/\1/p' /etc/fstab)"
 +validUUID="$(ls -1 /dev/disk/by-uuid)"
 +
 +nbUUIDValid=0
 +
 +for uuid in $fstabUUID
 +do
 + if echo "$validUUID" | grep -q "$uuid"
 + then
 + echo "$uuid OK"
 + nbUUIDValid=$((nbUUIDValid+1))
 + else
 + echo "$uuid est dans fstab mais pas dans /dev/disk/by-uuid"
 + fi
 +done
 +
 +echo "nombre d'UUID dans fstab : $(echo "$fstabUUID" | wc -l)"
 +echo "nombre d'UUID validé(s) : $nbUUIDValid"
 +</file>
 +
 +==== Permissions ====
 +
 +Une fois que la partition du support supplémentaire est ainsi ajoutée dans le fichier ''/etc/fstab'' :
 +<file># /dev/sdb1 sur /mnt/sauvegarde
 +UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX  /mnt/sauvegarde  ext4  rw,suid,dev,noexec,auto,nouser,async,noatime  0  2</file>
 +et son point de montage créé :
 +<code>sudo mkdir /mnt/sauvegarde</code>
 +Comme ce dernier appartient à ''root'', aucun autre [[:utilisateur]] n'a le droit d'y écrire.
 +
 +On peut se rendre //propriétaire// du point de montage - sachant que par conséquent seul cet utilisateur aura le droit d'écrire dans //toute// cette partition.
 +<note warning>Le répertoire qui sert de point de montage à une partition appartient par défaut à ''root:root'' avec droits ''rwxr-xr-x'' (ou ''755'') car il s'agit d'un élément //matériel// (une [[:partitions|partition]]) géré par le //système//.\\
 +\\
 +C'est sur les éléments de //données// écrits dans cette partition qu'il faut ajuster les droits et permissions afin de les adapter à votre utilisation :
 +  * soit **sur les éléments eux-mêmes** pour les systèmes de fichiers UNIX - compatibles Linux (qui gèrent les droits et permissions nativement)
 +  * soit sur l'ensemble des données montées, **via les options appliquées à leur montage**, pour les systèmes de fichiers **NON UNIX** (//Microsoft//, etc.).
 +Idéalement sur une partition on crée 2 répertoires par utilisateur potentiel :
 +  * un « principal » lui appartenant, dans lequel il pourra écrire, modifier, supprimer… ranger toutes ses affaires
 +  * un répertoire corbeille, appartenant aussi à cet utilisateur (sous Linux, il y a une corbeille par partition //et// par utilisateur.)
 +
 +**Rappelons qu'un ''chmod 777'' est DANGEREUX** :\\
 +un élément qui porte les droits ''rwxrwxrwx'' accorde //tous les droits// à quiconque y accédant (localement ou à distance) et permet entre autre de créer et exécuter des scripts.</note>
 +Si on est seul utilisateur du pc, ceci suffirait (mais n'est pas idéal car restrictif) :
 +<code>sudo chown $USER:$USER /mnt/sauvegarde</code>
 +Dans le cadre d'une utilisation //familiale//, avec plusieurs utilisateurs ''toto'', ''tata'' et ''titi'', et un groupe appelé, disons ''famille'', on procédera autrement (voir [[:tutoriel:dossier_de_partage|les explications]]) :
 +  * on s'assure que les [[:droits]] et [[:permissions]] du point de montage soient corrects :
 +<code>sudo chown root:root /mnt/sauvegarde
 +sudo chmod 755 /mnt/sauvegarde</code>
 +  * on crée à la racine de cette partition les dossiers pour chaque utilisateur ''toto'', ''tata'', ''titi'' et ''famille'' :
 +<code>sudo mkdir /mnt/sauvegarde/{toto,tata,titi,famille}</code>
 +  * on attribue chacun de ces répertoires à ses propriétaires adéquats :\\
 +<code>sudo chown toto:toto  /mnt/sauvegarde/toto
 +sudo chown tata:tata  /mnt/sauvegarde/tata
 +sudo chown titi:titi  /mnt/sauvegarde/titi
 +sudo chown root:famille  /mnt/sauvegarde/famille</code>
 +Pour que les utilisateurs ''tata'', ''titi'' et ''toto'', membres du groupe ''famille'', puissent écrire dans le dossier ''famille'' on s'assure que :
 +  * ce répertoire (dont //les// propriétaires sont l'utilisateur ''root'' et le groupe ''famille'') accorde le droit d'écriture au groupe ''famille'',
 +  * les éléments créés dans ce répertoire « héritent » les droits et permissions du groupe propriétaire de ce répertoire
 +<code>sudo chmod 2775 /mnt/sauvegarde/famille     # le 2 signifiant bit sgid</code>
 +Dorénavant :
 +  * seul l'utilisateur ''toto'' peut écrire, modifier, supprimer des éléments dans //son// répertoire ''/mnt/sauvegarde/toto'', les //autres// peuvent seulement lire et accéder à ce répertoire ;
 +  * seul l'utilisateur ''tata'' peut écrire, modifier, supprimer des éléments dans //son// répertoire ''/mnt/sauvegarde/tata'', les //autres// peuvent seulement lire et accéder à ce répertoire ;
 +  * seul l'utilisateur ''titi'' peut écrire, modifier, supprimer des éléments dans //son// répertoire ''/mnt/sauvegarde/titi'', les //autres// peuvent seulement lire et accéder à ce répertoire ;
 +  * //seuls// les utilisateurs //membres// du groupe ''famille'' peuvent écrire, modifier, supprimer des éléments dans le répertoire ''/mnt/sauvegarde/famille'', les //autres// peuvent seulement lire et accéder à ce répertoire.
 +
 +Si vous souhaitez que //seuls// les membres du groupe ''famille'' puissent accéder au répertoire ''/mnt/sauvegarde/famille'', alors :
 +<code>sudo chmod 2770 /mnt/sauvegarde/famille</code>
 +En l'état dans ce répertoire ''/mnt/sauvegarde/famille'' tous les membres du groupe //famille// peuvent effacer n'importe quel élément : ''toto'' pourrait effacer un élément appartenant à ''titi'' ou ''tata'', et vice-versa. Si vous souhaitez restreindre la possibilité d'effacer à seulement l'utilisateur propriétaire d'un élément, alors :((sources :\\
 +[[https://www.redhat.com/sysadmin/suid-sgid-sticky-bit|les bits sgid suid et sticky]] ⋅ [[:droits|Droits d'accès sous Linux : gérer les accès aux fichiers]] ⋅ [[:permissions|Gérer les droits d'accès (propriétés et permissions) des fichiers et répertoires]]\\
 +[[https://forum.ubuntu-fr.org/viewtopic.php?pid=22544820#p22544820|exemple commenté]] dans le forum ou ce [[:organiser_data_utilisateurs#mise_en_œuvre|point 4.1]] évoquent la création des **corbeilles**.))
 +<code>sudo chmod 3770 /mnt/sauvegarde/famille     # 3 signifiant sticky bit + bit sgid = 1+2</code>
 +
 +===== Voir aussi =====
 +
 +  * [[:Montage]]
 +  * Commande ''[[:mount]]''
 +  * [[:rclone#montage|rclone mount]] : Montage de système de fichiers à travers le réseau
 +  * [[:tutoriel:monterpartagewindows|Monter un Partage Windows]]
 +  * [[:AutoFS]] : Automatisation du montage des systèmes de fichiers (obsolète)
 +
 +----
 +  * //[[:Contributeurs]] : [[:utilisateurs:helly]], [[:utilisateurs:FélixP]], [[:utilisateurs:krodelabestiole]].//
 +  * [[https://forum.ubuntu-fr.org/viewtopic.php?id=2094267|Discussion]] au sujet de cette page sur le forum.