mount et fstab : Le montage des systèmes de fichiers
Quand un clé USB est connectée, elle est normalement montée automatiquement. Idem pour la partition qu'on vient de démarrer et qui porte votre OS. Par contre, les autres partitions du disque ne seront pas montées automatiquement.
Il peut être intéressant de monter manuellement ou automatiquement ces partitions. Il peut aussi être intéressant de spécifier des 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, normalement installé par défaut).
Nous allons découvrir ces outils, ainsi que quelques commandes utiles.
Quelques liens : montage, les systèmes de fichiers sous Linux ainsi que le portail Partitions.
L'utilisation des droits d'administration permet de modifier le système, et risque de l'abîmer. Il est donc préférable de sauvegarder votre fichier
/etc/fstab
avant manipulation.Compte tenu des risques, ne faite rien que vous n'ayez pas bien compris.
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 ou leur label.
C'est une partition que l'on monte (sdb1, par exemple), JAMAIS un disque (sdb, par exemple) : cela ne fonctionne pas.
Liste des partitions
Vous pouvez lister les partitions en lançant la commande :
lsblk -o name,fstype,size,fsused,fsuse%,fsavail,label,mountpoint | grep -Ev "loop"
ou
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
sudo 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"
On peut aussi taper la commande :
lsblk -fe7
qui donne sensiblement les mêmes résultats :
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT sda ├─sda1 ntfs WIN10 6C8CA3038CA2C6C4 ├─sda2 ext4 MINT 727a95e9-70a4-4d6e-a739-cb884c4188df 19,1G 40% / ├─sda3 ext4 HOMEMINT 4bdc4735-801e-43fe-b3f1-58fd832638f5 23,6G 71% /home └─sda4 ext4 DATAS ca07415a-2704-497f-8091-1d9a4a58f3d0 297,2G 43% /media/DATAS
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 (idéalement un sous-répertoire de /media, mais ce n'est pas strictement obligatoire).
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, ntfs3
(plus efficace, depuis 22.04), 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
Système de fichier linux
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 répertoire racine de la partition.
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.
(Les droits sont attachés au répertoire racine de la partition et non au répertoire du point de montage)
Système de fichier non linux
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.
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 (montage automatique)
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 /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
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 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'UUID (Universal Unique Identifier) de la partition. Celle-ci sera obtenue via un sudo blkid, via gnome-disk, 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 (sd signifie disque dur, la lettre est l'ordre du disque dans le boot, et le N° est celui de la partition. /dev/sdb2 est donc la 2e partition du 2e disque dur). Inconvénient de cette méthode : si vous changez le 1er disque de démarrage dans le boot, la signification de sdb2 (par exemple) changera en même temps. l'UUID est donc un identifiant plus stable et plus sûr.
- Le LABEL de la partition à monter. On peut en effet donner un nom (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 LABEL réel.
- l'adresse IP du disque 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 (un forme particulière du protocole SMB1).
- 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 via l'utilitaire dump. La valeur classique est 0 (dump n'est presque jamais actif ou utilisé).
- la colonne <pass> règle la priorité de vérification 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> doivent être:
- 1 pour la racine (votre partition principale) ⇒ vérif de cette partition en priorité,
- 2 pour les autres partitions Linux (les partitions "externes" que vous souhaitez monter) ⇒ ce 2 fera les vérifs après la partition racine (démarrage plus rapide),
- 0 pour le swap et les partitions windows (cf. fstab) ⇒ pas de vérification.
Par exemple une ligne fstab type pour un montage d'une partition linux ext4 sera :
/dev/sdb2 /media/toto ext4 defaults 0 2
ou mieux (l'UUID est plus stable)
UUID=33b870b8-a81e-4203-a4fd-7affa9f412fb /media/toto ext4 defaults 0 2
Ces 2 exemples montent pareillement et automatiquement la 2e partition du 2e disque dur.
Autre exemple, celui d'un disque réseau désigné par l'adresse IP/nom_répertoire_à_partager
:
//192.168.7.12/rep_a_partager /media/toto cifs guest,uid=1000,iocharset=utf8 0 0
(0 et non 2 pour la dernière position, car il s'agit d'une partition Windows).
Dans tous les cas, il ne faut pas oublier de créer "l'ancrage" /media/toto
par un sudo mkdir /media/toto (remplacez toto par le nom qui vous convient).
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 re-monter en tapant umount ou mount /media/xxx (où xxx est le nom de votre répertoire de montage).
Quand vous avez fini de créer votre fstab, vous pouvez le tester sans redémarrer votre PC, via un :
sudo mount -a
Cette commande exécute le fstab comme si votre machine venait de démarrer. C'est plus rapide pour tester différentes configurations.
Utilisation avancée
Pour aller plus loin, voici la liste des options pour la colonne <option>. Certaines options sont communes à tous les systèmes de fichiers, d'autres sont spécifiques à la norme POSIX (tous les systèmes de fichiers Linux), d'autres à certains systèmes de fichiers. Voici la plupart des options que vous pourrez rencontrer :
Options | Description | Compatible |
---|---|---|
defaults | Correspond à: rw,suid,dev,exec,auto,nouser,async | Tous |
rw/ro | Montage en lecture/écriture (par défaut) ou lecture seule | Tous |
suid/nosuid | Les bits SUID et SGID sont pris en compte (ou non) Relatif aux droits donnés aux exécutables sur la partition | Tous |
dev/nodev | Interprète ou non les fichiers spéciaux de périphériques présents sur le système (par défaut) | Tous |
exec/noexec | Autorise l'exécution des programmes (par défaut) | Tous |
auto/noauto | Montage automatique (ou non) lors d'un appel mount -a (par défaut) | Tous |
nouser | Seul le compte root peut monter/démonter le système de fichier (par défaut) | Tous |
_netdev | Le système de fichiers est sur une machine qui nécessite un accès réseau. Cela indique au système d'attendre que la configuration réseau soit active avant de procéder au montage | ?? |
async | Montage asynchrone (par défaut) | Tous |
atime/noatime | Inscrit (ou non) la date d'accès (préférez noatime pour les SSD) | Norme POSIX |
sw | Spécifique à l'activation des partitions swap | swap |
discard | active le TRIM sur les partitions SSD (à rajouter manuellement) | ext4, btrfs (SSD) |
D'autres options restent moins fréquentes (Liste non exhaustive) :
Options | Description | Compatible |
---|---|---|
users | Autorise l'utilisateur courant à monter/démonter le système de fichier. Ceci entraîne l'utilisation des options noexec, nosuid, et nodev (à moins que exec,dev,suid ne soient spécifiés). | Tous |
sync | Montage synchrone (semblerait déconseillé) | ext2-3, fat, vfat, ufs |
uid= | Spécifie le n° du propriétaire des fichiers pour les systèmes de fichiers non-Linux (où ce n'est donc pas spécifié). Vous pouvez trouver le votre dans "/etc/passwd". * Si non spécifié : root * Si uid ou gid spécifié sans nombre, utilisateur actuel. | Formats non-Linux |
gid= | Pareil pour les groupes propriétaires (Les numéros de groupes sont dans /etc/group ) | Formats non-Linux |
umask= | Spécifie les permissions (droits d'accès/lecture/écriture) sur la partition, même fonctionnement que uid et gid . | Formats non-Linux |
dir_mode= | Spécifie les droits d'usage des dossiers (si omis : umask actuel) | CIFS uniquement |
dmask= | Spécifie les droits d'usage des dossiers (si omis : umask actuel) | Formats non-Linux |
file_mode= | Spécifie les droits d'usage des fichiers (si omis : umask actuel) | CIFS uniquement |
fmask= | Spécifie les droits d'usage des fichiers (si omis : umask actuel) | Formats non-Linux |
nofail | Ne pas planter le boot si la partition est dans un état incohérent ou absente. | |
utf8 | Convertit l'encodage unicode 16 bits des caractères en utf8 pour les noms de fichiers | ISO9660 (Images CD/DVD), Ntfs, Fat32 |
x-systemd.device-timeout= | Configure le délai d'attente par défaut pour les appareils. Defaut à 90s | |
windows_names | Inutile à partir de 22.04. Empêche l'usage des caractères non compatibles avec Windows dans les noms de fichiers : / \ : ? * < > " barre verticale. Pour vérifier et corriger les noms non compatibles, lisez cette discussion | fat, ntfs |
- en fonction des systèmes de fichiers à monter : man mount.
- en cas de montage « réseau » CIFS : man mount.cifs
Voir aussi la page Comment accéder à ses partitions Windows depuis GNU/Linux ? et Monter des partages Windows au démarrage
Problèmes rencontrés lors de l'ajout d'un disque dur secondaire :
1) Une erreur peut survenir lorsque l'on tente d'éditer le fichier fstab (avec gedit par exemple).
Si le message suivant apparaît :
(gedit:...): Gtk-WARNING **
il est préférable d'utiliser un éditeur de texte « graphique » qui propose un mode administrateur, par exemple :
gedit admin:///etc/fstab
ou un éditeur de texte « dans » le terminal :
sudoedit /etc/fstab
qui sous ×buntu équivaut à :
sudo nano /etc/fstab
2) Accessibilité
Une fois que la partition du disque supplémentaire est ainsi ajoutée dans le fichier fstab :
# /sauvegarde sur /dev/sdb1 ajoutée le... UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX /sauvegarde ext4 rw,suid,dev,noexec,auto,nouser,async,noatime 0 2
et son point de montage ainsi créé :
sudo mkdir /sauvegarde
Comme ce dernier appartient ( légitimement ) à 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.
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 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 compatibles.
Idéalement sur une partition on crée 2 dossiers par utilisateur potentiel :
- un « principal » lui appartenant, dans lequel il pourra écrire, modifier, supprimer… ranger toutes ses affaires ;
- un dossier corbeille, appartenant à 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 )…
Si on est seul utilisateur du pc, ceci suffirait ( mais n'est pas idéal car restrictif ) :
sudo chown $USER:$USER /sauvegarde
Dans le cadre d'une utilisation familiale, avec plusieurs utilisateurs toto, tata et titi, et un groupe appelé, disons famille, on procédera autrement ( Pour lire les explications):
- on s'assure que les droits et permissions du point de montage sont dans la situation saine et souhaitable pour du matériel :
sudo chown root:root /sauvegarde sudo chmod 755 /sauvegarde
- on crée à la racine de cette partition les dossiers pour chaque utilisateur toto, tata, titi et famille :
sudo mkdir /sauvegarde/{toto,tata,titi,famille}
- on attribue chacun de ces répertoires à ses propriétaires adéquats :
sudo chown toto:toto /sauvegarde/toto sudo chown tata:tata /sauvegarde/tata sudo chown titi:titi /sauvegarde/titi sudo chown root:famille /sauvegarde/famille
Pour que les utilisateurs tata, titi, toto membres du groupe famille puissent écrire dans le dossier « famille » on s'assure que :
- ce dossier ( 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 dossier « héritent » les droits et permissions du groupe de ce dossier
sudo chmod 2775 /sauvegarde/famille # le 2 signifiant bit sgid
Dorénavant :
- seul l'utilisateur toto peut écrire, modifier, supprimer des éléments dans son dossier
/sauvegarde/toto
, les autres peuvent seulement lire et accéder à ce dossier ; - seul l'utilisateur tata peut écrire, modifier, supprimer des éléments dans son dossier
/sauvegarde/tata
, les autres peuvent seulement lire et accéder à ce dossier ; - seul l'utilisateur titi peut écrire, modifier, supprimer des éléments dans son dossier
/sauvegarde/titi
, les autres peuvent seulement lire et accéder à ce dossier ; - seuls les utilisateurs membres du groupe famille peuvent écrire, modifier, supprimer des éléments dans le dossier
/sauvegarde/famille
, les autres peuvent seulement lire et accéder à ce dossier.
Si vous êtes un peu parano, et souhaitez que seuls les membres du groupe famille puissent accéder au dossier /sauvegarde/famille
alors :
sudo chmod 2770 /sauvegarde/famille
En l'état dans ce dossier /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 :
sudo chmod 3770 /sauvegarde/famille # 3 signifiant sticky bit + bit sgid = 1+2
sources :
les bits sgid suid et sticky ⋅ Droits d'accès sous Linux : gérer les accès aux fichiers ⋅ Gérer les droits d'accès (propriétés et permissions) des fichiers et répertoires
exemple commenté dans le forum ou ce point 4.1 d'une doc' qui évoquent la création des corbeilles.
Enfin, pour avoir le lien vers "sauvegarde" dans le volet de gauche de votre gestionnaire de fichiers, il sera nécessaire de vous rendre manuellement dans ce répertoire, puis de lui attribuer un signet ou marque-page (le nom et la méthode varient selon votre gestionnaire de fichiers).
OU
plutôt que de créer ce point de montage /sauvegarde
à la racine de votre système, créez le dans le dossier /media
:
- tout élément visible dans ce dossier conventionnel apparaît automatiquement dans le volet latéral de la plupart des explorateurs de fichiers ( sous « périphériques » ou « autres emplacements » selon l'explorateur. )
Masquer le montage d'une partition.
Dans certains contextes, il peut être intéressant de ne pas monter automatiquement une partition et de la masquer aux techniques de montage en mode graphique. Cela n'exclut pas une possibilité de montage en ligne de commande.
Par exemple, pour masquer la partition contenant le logiciel de windows, les deux lignes à ajouter pourraient être
## Masquer le montage de la partition windows qui est sur sda5 /dev/sda5 none ignore defaults 0 0
Le fichier mtab
Le fichier /etc/mtab contient la liste des montages effectués, que ce soit via fstab ou en ligne de commande avec mount. 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. Voir le tutoriel à ce sujet : tutoriel monter un volume automatiquement
Monter un répertoire avec l'option ''bind'' de la commande ''mount''
Il est parfois utile de monter non pas un volume, mais un dossier dans un autre. Ceci peut ressembler à un lien logique mais c'est beaucoup plus puissant, notamment :
- pour un chroot dans un compte FTP
- pour monter des fichiers dans un système de fichiers en lecture seule (où on ne peut donc pas créer de liens) (CD,…)
- pour monter des fichiers (fichiers compressés squashfs,…)
Cela est possible avec l'option "bind".
Par exemple, dans le cas où /mnt/read-only
est en lecture seule et où on veut remplacer /mnt/read-only/mauvais-fichier
par /home/linux/bon-fichier
:
mount --bind /home/linux/bon-fichier /mnt/read-only/mauvais-fichier
Si on veut rendre un dossier privé public (comme un lien, en fait )
mount --bind /home/moi/dossier-à-partager /home/répertoire-accessible-à-tous
Ici, les droits d'écriture ne changent pas : si vous voulez donner le droit d'écrire aux autres utilisateurs, il faudra modifier aussi les droits de /home/moi/dossier-à-partager
et pas seulement à /home/répertoire-accessible-à-tous
.
Pour rendre persistants ces montages, nous les spécifions dans /etc/fstab
comme habituellement.
Voici un exemple :
# /etc/fstab: static file system information. # <file system> <mount point> <type> <options> <dump> <pass> […] # Un montage bind : /home/linux/bon-fichier /mnt/read-only/mauvais-fichier none bind 0 0
Problèmes éventuels
UUID non valides
Le fichier fstab peut vouloir monter des partitions avec des erreurs dans les identifiants UUID.
Ce script permet de vérifier que tous les UUID sont correctes dans le fstab :
- 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"
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à !