Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Avoir un UUID avec une partition sans filesystem

26 réponses
Avatar
Francois Lafont
Bonsoir à tous,

Dans un répertoire je dois indiquer un lien symbolique vers une
partition sans file system. Par exemple un lien symbolique vers
/dev/sdb2. Mais je voudrais plutôt utiliser un chemin avec un
UUID comme celui-là par exemple :

/dev/disk/by-uuid/07962804-17c6-456a-ac60-28ac5b0db5cc

car les UUID sont constants. Seulement voilà, la partition n'a
pas de file system et, dans la pratique que j'ai eu jusque là,
c'est via le formatage en un fs que l'UUID est généré. Sans fs,
ma partition n'a pas d'UUID (le partitionnement a été fait avec
fdisk sous Ubuntu 14.04). Y a-t-il un moyen d'avoir un UUID
associé à une partition « brute » (ie sans fs), UUID qui devra
être reconnu par udev bien sûr ?

Et en fait, j'aurais exactement la même question dans le cas non
pas d'une partition mais d'un disque brute, genre /dev/sdb ? On
est d'accord que dans ce cas là je ne peux pas espérer avoir un
UUID associé au disque et que je suis obligé de passer par une
règle udev maison basée par exemple sur le serial number du disque
ou un truc dans le genre. Est-ce correct ?

Merci d'avance.

--
François Lafont

10 réponses

1 2 3
Avatar
Nicolas George
mireero , dans le message <550fb8db$0$3363$, a
écrit :
Un "label", ça irait pas sinon?



Les labels sont également stockés dans le filesystem lui-même.

C'est pourquoi je trouve personnellement que la mode des UUID et des labels
est assez idiote pour les disques système. Les labels, c'est bien pratique
pour monter les clef USB, mais c'est à peu près tout.
Avatar
Nicolas George
Francois Lafont , dans le message
<550f54d6$0$2982$, a écrit :
car les UUID sont constants. Seulement voilà, la partition n'a
pas de file system et, dans la pratique que j'ai eu jusque là,
c'est via le formatage en un fs que l'UUID est généré. Sans fs,
ma partition n'a pas d'UUID (le partitionnement a été fait avec
fdisk sous Ubuntu 14.04). Y a-t-il un moyen d'avoir un UUID
associé à une partition « brute » (ie sans fs), UUID qui devra
être reconnu par udev bien sûr ?



C'est le problème fondamental des UUID et labels.

Si c'est un disque interne, son identifiant par chemin devrait être à peu
près constant :

/dev/disk/by-path/pci-0000:01:00.0-scsi-0:0:0:0
/dev/disk/by-path/pci-0000:01:00.0-scsi-0:0:0:0-part1

En tout cas, les identifiants PCI ne changent pas d'un reboot à l'autre,
donc il est possible d'utiliser une règle udev pour donner un nom stable.

Il y a aussi des identifiants synthétiques à partir de diverses
caractéristiques du disque :

/dev/disk/by-id/scsi-649985ee996ed7975-part1

Si le disque est partitionné en GPT, alors l'UUID de la partition est
disponible, probablement quelque chose du genre :

/dev/disk/by-partuuid/1a404f80-6b2c-4576-8867-22615a216716

Je vois aussi des /dev/disk/by-partlabel qui existent peut-être aussi dans
des circonstances similaires.

Personnellement, comme je n'ai pas le souci de compatibilité avec les
sous-OS, j'utilise LVM pour l'ensemble des disques internes. Une utilisation
élémentaire, juste des volumes logiques simples créés au début
séquentiellement, ça simplifie déjà pas mal la vie.
Avatar
mireero
On 03/23/2015 12:48 AM, Francois Lafont wrote:
Bonsoir à tous,

Dans un répertoire je dois indiquer un lien symbolique vers une
partition sans file system. Par exemple un lien symbolique vers
/dev/sdb2. Mais je voudrais plutôt utiliser un chemin avec un
UUID comme celui-là par exemple :

/dev/disk/by-uuid/07962804-17c6-456a-ac60-28ac5b0db5cc

car les UUID sont constants. Seulement voilà, la partition n'a
pas de file system et, dans la pratique que j'ai eu jusque là,
c'est via le formatage en un fs que l'UUID est généré. Sans fs,
ma partition n'a pas d'UUID (le partitionnement a été fait avec
fdisk sous Ubuntu 14.04). Y a-t-il un moyen d'avoir un UUID
associé à une partition « brute » (ie sans fs), UUID qui devra
être reconnu par udev bien sûr ?



Un "label", ça irait pas sinon?

Et en fait, j'aurais exactement la même question dans le cas non
pas d'une partition mais d'un disque brute, genre /dev/sdb ? On
est d'accord que dans ce cas là je ne peux pas espérer avoir un
UUID associé au disque et que je suis obligé de passer par une
règle udev maison basée par exemple sur le serial number du disque
ou un truc dans le genre. Est-ce correct ?



Je crois que pour répondre à cette question il faudrait savoir ce que tu
comptais en faire de l'uuid? Sinon, ça semble cohérent.

Merci d'avance.





--
mireero
Avatar
Lucas Levrel
Le 23 mars 2015, Francois Lafont a écrit :

Dans un répertoire je dois indiquer un lien symbolique vers une
partition sans file system.



Pour une partition Squashfs (pas de label ni d'UUID) sur une clef USB,
j'utilise le lien dans /dev/disk/by-id . C'est la seule façon que j'ai
trouvée, et à la lecture du post de Nicolas il semble que ce soit la seule
possible dans ce cas-là (table DOS sur périphérique amovible).

Et en fait, j'aurais exactement la même question dans le cas non
pas d'une partition mais d'un disque brute, genre /dev/sdb ?



Même réponse, car les /dev/disk/by-path et by-id contiennent aussi des
liens vers les disques.

--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
C'est mieux avé les accents (F. Patte)
Avatar
Pascal Hambourg
Nicolas George a écrit :

Il y a aussi des identifiants synthétiques à partir de diverses
caractéristiques du disque :

/dev/disk/by-id/scsi-649985ee996ed7975-part1



J'ai eu le cas particulier d'une très vieille clé USB qui n'avait pas de
numéro de série, et donc pour laquelle udev ne créait pas d'identifiant
dans /dev/disk/by-id/. Mais je suppose que c'est très rare.

Si le disque est partitionné en GPT, alors l'UUID de la partition est
disponible, probablement quelque chose du genre :

/dev/disk/by-partuuid/1a404f80-6b2c-4576-8867-22615a216716



A partir de la version 3.8, le noyau crée aussi des identifiants de
partition synthétiques pour les disques partitionnés au format MSDOS à
partir de la signature contenue dans le MBR et du numéro de partition.

Je vois aussi des /dev/disk/by-partlabel qui existent peut-être aussi dans
des circonstances similaires.



Basé sur le nom de la partition GPT ? C'est déjà beaucoup moins unique.
Je m'en sers surtout pour retrouver à quoi sert telle partition (racine,
swap, home...), pas pour l'identifier de façon unique.

Personnellement, comme je n'ai pas le souci de compatibilité avec les
sous-OS, j'utilise LVM pour l'ensemble des disques internes. Une utilisation
élémentaire, juste des volumes logiques simples créés au début
séquentiellement, ça simplifie déjà pas mal la vie.



J'avoue que je suis de plus en plus tenté de procéder ainsi de façon
systématique, pas seulement pour le nommage des volumes.
Avatar
Pascal Hambourg
Nicolas George a écrit :

Les labels sont également stockés dans le filesystem lui-même.

C'est pourquoi je trouve personnellement que la mode des UUID et des labels
est assez idiote pour les disques système.



Pourquoi ?

Si le but reste d'identifier le contenu (le système de fichiers) plus
que le contenant (la partition), alors l'UUID ou le label me semble
approprié.
Avatar
Francois Lafont
Merci à tous pour vos réponses.

Du coup, j'ai voulu tester un partitionnement « GPT » avec gdisk
(dont l'utilisation est très similaire à fdisk) et l'idée qu'il
y ait un UUID pour les partitions est assez sympa je trouve.

D'après mes essais, je peux même définir un label au niveau d'une
partition de sorte que je me retrouve avec un symlink du genre :

/dev/disk/by-partlabel/<un-nom-discriminant-et-évocateur>

Je trouve ça pas mal. Perso, j'aime bien les label et si je peux en
avoir pour des partitions (a priori) sans fs alors ça ma convient assez
bien je crois.

begin{petite-remarque-en-passant}
En supposant qu'on mette un fs ensuite dans cette partition, d'après
ce que j'ai vu sur le web, il apparaissait sur certains sites qu'on pouvait
monter le fs dans fstab via des lignes comme :

# On utilise l'UUID de la partition GPT.
PARTUUID=.... etc.

# Ici on utilise le label de la partition GPT.
PARTLABEL=... etc.

Seulement ça ne marche pas sur une Ubuntu 14.04 (machine sur laquelle
j'ai fait mes essais) car, d'après ce que j'ai pu comprendre, ça ne
fonctionne que sur un Linux qui utilise systemd ce qui n'est pas le cas
de Ubuntu 14.04. Ceci étant, on peut toujours utiliser le symlink dans
fstab j'imagine :

/dev/disk/by-partlabel/<un-nom-discriminant-et-évocateur>

end{petite-remarque-en-passant}

Quant à un disque brut sans partition ni fs a priori, à part utiliser
une règle udev spécifique sur le S/N où un truc dans le genre, je ne
pense pas qu'il y ait d'autre possibilité.

J'aurais une dernière question : perso, je partitionne avec fdisk depuis
« toujours ». Est-ce que Linux gère bien les partitions GPT ? Pas de problème
particulier ? Pour moi, GPT ça évoque des trucs inconnus et un peu troubles
comme "UEFI" etc. autrement dit pas des trucs qui font peur. ;)


--
François Lafont
Avatar
Pascal Hambourg
Francois Lafont a écrit :
Merci à tous pour vos réponses.

Du coup, j'ai voulu tester un partitionnement « GPT » avec gdisk
(dont l'utilisation est très similaire à fdisk) et l'idée qu'il
y ait un UUID pour les partitions est assez sympa je trouve.



C'est loin d'être le plus gros avantage de GPT. Loin devant je place la
disparition de la distinction entre partitions primaire, étendue et logique.

D'après mes essais, je peux même définir un label au niveau d'une
partition de sorte que je me retrouve avec un symlink du genre :

/dev/disk/by-partlabel/<un-nom-discriminant-et-évocateur>

Je trouve ça pas mal. Perso, j'aime bien les label et si je peux en
avoir pour des partitions (a priori) sans fs alors ça ma convient assez
bien je crois.

begin{petite-remarque-en-passant}
En supposant qu'on mette un fs ensuite dans cette partition, d'après
ce que j'ai vu sur le web, il apparaissait sur certains sites qu'on pouvait
monter le fs dans fstab via des lignes comme :

# On utilise l'UUID de la partition GPT.
PARTUUID=.... etc.

# Ici on utilise le label de la partition GPT.
PARTLABEL=... etc.

Seulement ça ne marche pas sur une Ubuntu 14.04 (machine sur laquelle
j'ai fait mes essais) car, d'après ce que j'ai pu comprendre, ça ne
fonctionne que sur un Linux qui utilise systemd ce qui n'est pas le cas
de Ubuntu 14.04.



Je ne sais pas si c'est lié à systemd, mais la page de manuel d'une
version assez récente de la commande 'mount' (comme celle de Debian
8/Jessie) indique que les UUID et labels de partition sont aussi
supportés. Par contre il n'est pas clair si dans ce cas la syntaxe reste
UUID= et LABEL= ou devient PARTUUID= et PARTLABEL=. Je n'ai pas
d'installation de Debian Jessie pour tester.

<http://manpages.debian.org/cgi-bin/man.cgi?query=mount&apropos=0&sektion=0&manpathÞbian+testing+jessie&format=html&locale=fr>

Ceci étant, on peut toujours utiliser le symlink dans
fstab j'imagine :

/dev/disk/by-partlabel/<un-nom-discriminant-et-évocateur>

end{petite-remarque-en-passant}

Quant à un disque brut sans partition ni fs a priori, à part utiliser
une règle udev spécifique sur le S/N où un truc dans le genre, je ne
pense pas qu'il y ait d'autre possibilité.



Si, avec le liens symboliques dans /dev/disk/by-id/ ou
/dev/disk/by-path/ comme déjà signalé.

J'aurais une dernière question : perso, je partitionne avec fdisk depuis
« toujours ». Est-ce que Linux gère bien les partitions GPT ?



Oui.

Pas de problème particulier ?



Le site de l'auteur de gdisk mentionne des limitations du noyau Linux et
de GRUB avec un MBR hybride, mais c'est non standard. Avec un disque au
format GPT pur, je n'ai jamais eu de problème.

Ah, si : certains outils de partitionnement, et notamment ceux inclus
dans l'installateur de distributions comme Debian, considèrent que le
disque est au format GPT s'il comporte une signature GPT, même si le MBR
n'est manifestement pas conforme au format GPT (signe que le disque a
été repartitionné au format MSDOS par un outil non compatible GPT). Par
conséquent ils ne voient pas les partitions existantes. Attention donc à
la réutilisation au format MSDOS d'un disque précédemment au format GPT.
Bien effacer la signature GPT avant.

Il est aussi un peu plus compliqué de cloner proprement un disque GPT
vers un disque de taille différente.

Pour moi, GPT ça évoque des trucs inconnus et un peu troubles
comme "UEFI" etc. autrement dit pas des trucs qui font peur. ;)



En ce qui concerne GNU/Linux, UEFI et GPT sont indépendants. Si
l'amorçage se fait en mode BIOS/CSM/legacy avec GRUB sur un disque au
format GPT, il faut juste penser à créer une partition de type "BIOS
boot" (bios_grub) pour GRUB. Les problèmes seraient plutôt du côté de
Windows qui n'accepte de s'installer sur un disque GPT qu'en UEFI.
Avatar
mireero
On 03/24/2015 09:53 AM, Pascal Hambourg wrote:
Francois Lafont a écrit :
Merci à tous pour vos réponses.

Du coup, j'ai voulu tester un partitionnement « GPT » avec gdisk
(dont l'utilisation est très similaire à fdisk) et l'idée qu'il
y ait un UUID pour les partitions est assez sympa je trouve.



C'est loin d'être le plus gros avantage de GPT. Loin devant je place la
disparition de la distinction entre partitions primaire, étendue et logique.

D'après mes essais, je peux même définir un label au niveau d'une
partition de sorte que je me retrouve avec un symlink du genre :

/dev/disk/by-partlabel/<un-nom-discriminant-et-évocateur>

Je trouve ça pas mal. Perso, j'aime bien les label et si je peux en
avoir pour des partitions (a priori) sans fs alors ça ma convient assez
bien je crois.

begin{petite-remarque-en-passant}
En supposant qu'on mette un fs ensuite dans cette partition, d'après
ce que j'ai vu sur le web, il apparaissait sur certains sites qu'on pouvait
monter le fs dans fstab via des lignes comme :

# On utilise l'UUID de la partition GPT.
PARTUUID=.... etc.

# Ici on utilise le label de la partition GPT.
PARTLABEL=... etc.

Seulement ça ne marche pas sur une Ubuntu 14.04 (machine sur laquelle
j'ai fait mes essais) car, d'après ce que j'ai pu comprendre, ça ne
fonctionne que sur un Linux qui utilise systemd ce qui n'est pas le cas
de Ubuntu 14.04.



Je ne sais pas si c'est lié à systemd, mais la page de manuel d'une
version assez récente de la commande 'mount' (comme celle de Debian
8/Jessie) indique que les UUID et labels de partition sont aussi
supportés. Par contre il n'est pas clair si dans ce cas la syntaxe reste
UUID= et LABEL= ou devient PARTUUID= et PARTLABEL=. Je n'ai pas
d'installation de Debian Jessie pour tester.

<http://manpages.debian.org/cgi-bin/man.cgi?query=mount&apropos=0&sektion=0&manpathÞbian+testing+jessie&format=html&locale=fr>



Dans wheezy (partition dos) ou dans Jessie (partition gpt) j'ai:
UUID=blabla...

Ceci étant, on peut toujours utiliser le symlink dans
fstab j'imagine :

/dev/disk/by-partlabel/<un-nom-discriminant-et-évocateur>





Bien sûr, /dev/disk/by-partlabel/<un-nom-discriminant-et-évocateur>
étant tout simplement un lien vers /dev/sdxn.

end{petite-remarque-en-passant}

Quant à un disque brut sans partition ni fs a priori, à part utiliser
une règle udev spécifique sur le S/N où un truc dans le genre, je ne
pense pas qu'il y ait d'autre possibilité.



Si, avec le liens symboliques dans /dev/disk/by-id/ ou
/dev/disk/by-path/ comme déjà signalé.



C'est pareil dans le sens ou c'est une règle udev (créée à
l'installation) qui crée tous les symlink (by-id by-label by-partlabel
by-partuuid by-path by-uuid).
Tu peux ajouter une règle si tu veux mais pourquoi pas se servir d'une
préexistante!

Pas de label ou de uuid sans partition, d'accord! Mais alors:

~$ stat /dev/disk/*/* | grep "sda'$"
File: `/dev/disk/by-path/pci-0000:00:10.0-scsi-0:0:0:0' -> `../../sda'

On a bien un sysmlink (unique si on ne modifie pas l'emplacement du
branchement) qui pointe vers un *disque* et non une partition (là c'est
wheezy partition dos mais c'est pareil avec jessie partition gpt).

J'aurais une dernière question : perso, je partitionne avec fdisk depuis
« toujours ». Est-ce que Linux gère bien les partitions GPT ?



Oui.



D'accord aussi, j'utilise plus que ça (sauf clef usb).

Pas de problème particulier ?





Jamais, enfin sauf une fois, voir plus bas, c'était ma faute cela dit
(mais comme pointé par Pascal, je n'utilise plus de mbr hybride).

Le site de l'auteur de gdisk mentionne des limitations du noyau Linux et
de GRUB avec un MBR hybride, mais c'est non standard. Avec un disque au
format GPT pur, je n'ai jamais eu de problème.

Ah, si : certains outils de partitionnement, et notamment ceux inclus
dans l'installateur de distributions comme Debian, considèrent que le
disque est au format GPT s'il comporte une signature GPT, même si le MBR
n'est manifestement pas conforme au format GPT (signe que le disque a
été repartitionné au format MSDOS par un outil non compatible GPT). Par
conséquent ils ne voient pas les partitions existantes. Attention donc à
la réutilisation au format MSDOS d'un disque précédemment au format GPT.
Bien effacer la signature GPT avant.



Ça m'es arrivé une fois, l'installateur de debian ne voyait pas les
partitions avec un mbr hybrides, j'ai bien formaté et surtout supprimé
la table des partitions pour partir d'une gpt pure. Et je ne refais plus
cette erreur :)


Il est aussi un peu plus compliqué de cloner proprement un disque GPT
vers un disque de taille différente.
Pour moi, GPT ça évoque des trucs inconnus et un peu troubles
comme "UEFI" etc. autrement dit pas des trucs qui font peur. ;)



En ce qui concerne GNU/Linux, UEFI et GPT sont indépendants. Si



Hum, indépendants tu dis. Ça va me donner à réfléchir, ça!
En tout cas si tu peux passer en mode efi et partir sur une petite
partition fat pour le boot, je trouce ça préférable qu'utiliser une
partition bios_grub.
Sinon c'est sûr, si tu es en mode legacy, la partition bios_grub est la
seule solution pour profiter du format gpt.

l'amorçage se fait en mode BIOS/CSM/legacy avec GRUB sur un disque au
format GPT, il faut juste penser à créer une partition de type "BIOS
boot" (bios_grub) pour GRUB. Les problèmes seraient plutôt du côté de
Windows qui n'accepte de s'installer sur un disque GPT qu'en UEFI.





--
mireero
Avatar
Nicolas George
Pascal Hambourg , dans le message <mepq68$8ic$, a
écrit :
Les labels sont également stockés dans le filesystem lui-même.

C'est pourquoi je trouve personnellement que la mode des UUID et des labels
est assez idiote pour les disques système.


Pourquoi ?



Parce que les UUID et les labels sont stockés dans le bouzin qu'ils sont
censés identifier, comme je viens de le souligner.

Si le but reste d'identifier le contenu (le système de fichiers) plus
que le contenant (la partition), alors l'UUID ou le label me semble
approprié.



Peut-être, mais ça ne marche pas, parce que tu dois forcément faire des
hypothèses sur le contenu, alors que le principe est d'avoir une séparation
en couches successives.

Dit autrement : tu ne peux pas connaître l'UUID ou le label d'un volume à
moins de déjà savoir lire ce volume.

Une conséquence plus directement pratique est qu'un même contenu pourrait
être reconnu comme plusieurs filesystems différents et avoir des labels et
UUID différents selon celui qui est reconnu en premier.

C'est un peu la même erreur que font ceux qui s'extasient devant l'idée
d'utiliser file/libmagic pour savoir quoi faire d'un fichier plutôt que son
extension.
1 2 3