EXT4 et ses options

L’UUID sert précisément à cela : identifier un contenu (système de fichiers, swap, membre RAID…) indépendamment du nom du périphérique qui le contient. C’est devenu indispensable depuis que les noms de périphériques de stockage et de leurs partitions ne sont plus stables et persistants, surtout ceux des périphériques de stockage amovibles et même parfois ceux des partitions quand leur numérotation change à cause de modifications de la table de partition.

Dans les commandes qui le supportent comme [mono]mount[/mono] ou [mono]swapon[/mono] ainsi que dans /etc/fstab, il suffit de remplacer le nom du périphérique [mono]/dev/machin[/mono] par l’expression [mono]UUID=[/mono]. Pour les autres commandes et fichiers, on peut utiliser les liens symboliques [mono]/dev/disk/by-uuid/[/mono] qui pointent vers le nom des périphériques correspondants.

La commande [mono]blkid[/mono] affiche pour chaque périphérique de stockage ou partition détecté des identifiants plus ou moins persistants et uniques :

  • UUID = UUID du contenu
  • PARTUUID = UUID de la partition, indépendant du contenu ; appelé aussi GUID pour une table de partition au format GPT
  • LABEL : étiquette (nom) du contenu
  • PARTLABEL : étiquette (nom) de la partition, indépendante du contenu ; seulement avec GPT

Note : Les UUID et étiquettes de partition (PARTUUID et PARTLABEL) ne sont utilisables que depuis Debian 8/Jessie. Attention : avec une table de partition au format MSDOS qui n’a pas nativement d’UUID/GUID, PARTUUID est un identifiant “synthétique” basé sur le numéro de la partition, qui, comme on l’a vu plus haut, est susceptible de changer, notamment dans le cas d’une partition logique.

Selon le type de contenu, les UUID ont des formes et des tailles différentes.

Les étiquettes étant définies par l’utilisateur et souvent plus courtes que les UUID, leur unicité n’est pas absolue. Qui n’a pas installé un système sur plusieurs machines en donnant aux partitions de chaque système les mêmes noms correspondant aux points de montage “root”, “home”, “var”… ?

Le répertoire /dev/disk, dont le contenu est géré par udev, contient plusieurs catégories de liens symboliques basés sur divers identifiants plus ou moins persistants dont certains ne sont pas affichés par [mono]blkid[/mono] :
/dev/disk/by-uuid : UUID
/dev/disk/by-label : LABEL
/dev/disk/by-partuuid : PARTUUID
/dev/disk/by-partlabel : PARTLABEL
/dev/disk/by-id : fabricant/modèle et numéro de série du périphérique
/dev/disk/by-path : “chemin” d’accès, c’est-à-dire la chaîne physique des contrôleurs, bus et ports connectant le périphérique.

Concernant les droits d’accès, tu peux modifier les propriétaires avec [mono]chown[/mono] et/ou les permissions avec [mono]chmod[/mono]. Note que ta commande s’applique à la racine du système de fichiers monté et non au répertoire servant de point de montage.

Voilà ben je pense avoir trouvé ce que je cherchais, à vous de me dire svp si j’ai fait des bêtises :blush:

Donc j’ai formaté ma clé de la manière suivante:

  • une partition ext4 de base de 1Mo
  • une partition ext4 de base de taille le reste de la place de la clé

Sur la partition de 1Mo j’ai créé 2 scripts: mountVOLUME et UMOUNTVOLUME
L’un monte la grosse partoche et l’autre la démonte.

J’en ai même profité pour rajouter quelques options de protection minimale du contenu de la grosse partoche.

Voici donc le contenu des scripts.

mountVOLUME:

#!/bin/bash VOLUMELABEL=VOLUME gksu "mkdir /media/$USER/$VOLUMELABEL ; mount LABEL=$VOLUMELABEL /media/$USER/$VOLUMELABEL -o discard,noatime,nodiratime,nodev,rw,noauto,noexec && chown -R $USER:$USER /media/$USER/$VOLUMELABEL && chmod u+rwx /media/$USER/$VOLUMELABEL" exit

umountVOLUME:

#!/bin/bash VOLUMELABEL=VOLUME gksu "chmod a-rwx /media/$USER/$VOLUMELABEL && chown -R root:root /media/$USER/$VOLUMELABEL && umount /media/$USER/$VOLUMELABEL && rmdir /media/$USER/$VOLUMELABEL" exit

Ça fonctionne pour moi car $ mount me renvoie /dev/sdd2 on /media/moi/VOLUME type ext4 (rw,nodev,noexec,noatime,nodiratime,discard,data=ordered)

Je me demande s’il n’y a pas de la redondance dans mon chaînage de commandes par compte, notamment le “rw” en option de montage et le +rwx du chmod, quelqu’un pourrait-il vérifier svp?

Edit: je me demande aussi si des options ne sont pas contradictoires, comme le noexec du montage et le rwx du chmod?

Non, ce n’est pas la même chose. Les options de montage comme “rw” ou “ro” sont globales au système de fichiers monté et s’impose même à root, alors que les permission Unix de chmod s’appliquent aux répertoires et fichiers et ne s’imposent pas forcément à root. Par exemple root peut écrire dans un fichier avec des permissions en lecture seule mais pas sur un système de fichiers monté en lecture seule.

Par contre il y a redondance dans les options de montage car noatime implique nodiratime.