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.