Quelle est la différence entre UUID et PARTUUID?

14

J'ai suivi la procédure dans les forums Raspberry Pi pour que mon Raspberry Pi 3 utilise une clé USB au lieu de la carte SD comme système de fichiers racine dans l'espoir de le rendre plus robuste à la perte de puissance.

Le processus a fonctionné, mais j'ai perdu du temps car j'ai confondu UUID et PARTUUID pour la partition (utilisez blkid et voyez comment ils peuvent être différents). Quel est le but des deux? Il était plus simple de corriger ma confusion en utilisant UUID au lieu de PARTUUID partout, mais cela a échoué, j'ai dû utiliser PARTUUID (je pense qu'il aurait été possible d'utiliser un mélange, mais je n'ai pas essayé d'en chercher un).

Notez que la page citée indique que l'UUID est pour le lecteur est PARTUUID pour la partition, mais je m'attends à ce que l'UUID soit le même pour toutes les partitions d'un lecteur, ce n'est pas le cas.

AProgrammer
la source
1
Salut AProgrammer, et bienvenue sur l'échange de pile Raspberry Pi. Je pense que vous devriez considérer que ce n'est pas une question sur Raspberry Pi! Plus de gens verraient cette question (à la fois pour y répondre et pour bénéficier des réponses proposées) si elle se trouvait dans, peut-être, le principal forum Linux.
Tai Viinikka
@TaiViinikka, j'avoue avoir hésité entre ceci et unix.se, mais considérant que j'ai rencontré le problème avec un Raspberry Pi et que je n'ai jamais rencontré le problème après avoir travaillé avec Debian et les distributions dérivées Debian pendant 23 ans sur x86, y compris UUID sans le rencontrer - mes réflexes faisaient partie de la cause de mon problème -, je pensais qu'il pouvait y avoir une relation avec la framboise pi.
Programmeur
C'est tout à fait compréhensible et je suis heureux que vous ayez obtenu une réponse. Mes expériences [beaucoup plus brèves] ont été différentes des vôtres; chaque partition que j'ai possède UUID et PARTUUID incompatibles: root @ herald: ~ # cat / proc / cpuinfo vendor_id: GenuineIntel model name: Intel (R) Atom (TM) CPU D2550 @ 1.86GHz root @ herald: ~ # blkid / dev / sda1: LABEL = "Boot" UUID = "e92827af-6c5d-4438-b22a-8f9b3b4dc4f0" TYPE = "ext4" PARTUUID = "44e5688f-01" Et je suis donc arrivé à la conclusion opposée.
Tai Viinikka

Réponses:

13

Sur la différence entre UUID et PARTUUID

Vous pouvez obtenir quelques conseils sur la différence entre UUIDet PARTUUIDen spécifiant l' -poption.

blkid -p /dev/sda1

ou quel que soit le périphérique / la partition que vous regardez. Vous avez peut-être remarqué que s'il y a plusieurs partitions sur le même UUIDappareil, PARTUUIDc'est généralement la même chose avec le numéro de partition ajouté.

A UUIDest garanti unique. Autant que je sache, les collisions ne se produiront pas pendant la durée de vie de l'univers. Cependant, vous remarquerez que le PARTUUIDest beaucoup plus court. Celles-ci sont censées être "localement" uniques, et les collisions se produisent très probablement entre toutes les sources connues PARTUUIDs.

Sur les UUID

Un UUID est simplement un identifiant unique. Ils sont utilisés à de nombreuses fins différentes. Vous pouvez les générer à l'aide de la uuidgenfonction.

Pour plus d'informations sur les UUID:

$man uuidgen 

Ou Internet:

page de manuel pour uuidgen

Quelques exemples d'utilisation d'UUID supplémentaires

$cat /etc/fstab

Pour les nouveaux systèmes GNU / Linux, vous aurez une liste de toutes les partitions et de leurs UUID. Un nouvel UUID est généré pour chaque nouvelle partition. Donc, si vous re-partitionnez un lecteur donné, tous les UUID blkid de ce lecteur changeront.

Une partie de la raison pour laquelle les UUID sont utilisés comme identificateurs de partitions et de lecteurs est de conserver les identificateurs même lorsque des lecteurs sont ajoutés ou montés dans un ordre différent. Auparavant, fstabils auraient des identifiants tels que /dev/sda1... Cela avait l'inconvénient d'avoir éventuellement sda1un disque ou une partition physiquement différente si l'ordre de montage était modifié.

Sur les PARTUUIDs

PARTUUIDs sont un composant des tables de partition GUID (GPT) qui remplacent le partitionnement de disque lié au Master Boot Record (MBR).

Pour plus d'informations, voir Linux.com - Utilisation de la nouvelle table de partition GUID sous Linux

Linux.com dit:

Les GUID GPT (identificateurs uniques à l'échelle mondiale) et nos UUID Linux familiers (identificateurs universellement uniques) ne sont pas la même chose, bien qu'ils servent le même objectif utile: donner aux périphériques de bloc des noms uniques. Les UUID Linux sont une fonction des systèmes de fichiers et sont créés lors de la création du système de fichiers. Pour voir les UUID Linux, lancez simplement la commande blkid. Notez le code GUID de partition et la façon dont il dit «données de base Microsoft». Ouais, ole Microsoft plante toujours, car c'est une partition EXT4, donc il n'y a aucun moyen pour Windows de le lire, mais le verra comme une partition non formatée. Vous ne le verrez pas avec les versions actuelles de gdisk, car jusqu'en 2011, il n'y avait pas de GUID de système de fichiers Linux. Maintenant, il y en a, donc si vous n'utilisez pas un vieux Linux comme le mien (Mint 13) vous '

Le GUID unique de la partition est ce que vous utiliserez dans fstab, comme ceci:

PARTUUID = 8C208C30-4E8F-4096-ACF9-858959BABBAA / données ext4 utilisateur, valeurs par défaut 0 0

RubberStamp
la source
Le mystère s'approfondit. En regardant plusieurs périphériques de bloc, il y a un périphérique PTUUID et il y a un UUID et un PARTUUID par partition; selon le disque et probablement l'outil qui l'a formulé et partitionné, les PARTUUID sont dérivés du disque PTUUID ou non. Ma question concernait l'UUID de partition que vous pouvez utiliser avec le PARTUUID blkid.
Programmeur
@AProgrammer: Ajout de quelques informations à ma réponse.
RubberStamp
1
Ok, en résumé, il y a un UUID de disque que vous pouvez obtenir avec blkid -pqui l'appelle PTUUID, il y a un UUID de partition qui blkidappelle PARTUUID et certains systèmes de fichiers ont un UUID qui blkid appelle UUID. Je ne sais toujours pas pourquoi j'ai dû utiliser le PARTUUID au lieu de l'UUID, au moins à certains endroits, lors du déplacement du système de fichiers racine vers une clé USB sur la framboise lorsque mon système Linux ne référence que l'UUID, mais je ne me porte pas volontaire pour faire plus de tests et vérifier où il y a vraiment un besoin de PARTUUID et où je pourrais toujours utiliser l'UUID si je le voulais mais je suppose que cela n'en a cmdline.txtbesoin que.
Programmeur
J'ai deux partitions sur deux disques différents avec le même UUID. Voilà pour "la durée de vie de l'univers " ...
étale-cohomology
3

Si je comprends bien.

Le terme UUID fait en général référence à un "identifiant universel unique", connu dans le monde Windows sous le nom de GUID. Il existe quelques schémas différents, mais pour la plupart, les UUID / GUID modernes sont essentiellement un grand nombre aléatoire ou hachage et quelques bits d'indicateur.

Dans le cas spécifique du montage de systèmes de fichiers sur linux, "UUID" renvoie à un identifiant unique qui fait partie des métadonnées stockées à l'intérieur du système de fichiers. "PARTUUID" fait référence à un identifiant unique pour une partition stockée dans ou dérivée de la table de partition.

Ces identifiants uniques peuvent ou non être des UUID réels. Autant que je sache.

  • Pour les tables de partition GPT, le "PARTUUID" est le GUID de la table de partition GPT.
  • Pour les tables de partition MBR, le "PARTUUID" est formé en concaténant l'identificateur de disque avec le numéro de partition
  • Pour EXT4, Linux swap, BTRFS et probablement d'autres types de systèmes de fichiers natifs de Linux, l '"UUID" est un UUID stocké dans les métadonnées du système de fichiers.
  • Pour FAT et NTFS, le "UUID" semble être le numéro de série du volume, 32 bits pour FAT et 64 bits pour NTFS.

Notez que la prise en charge du montage du système de fichiers racine par "UUID" et "PARTUUID" varie. IIRC le noyau fonctionnant sans initrd peut être monté par "PARTUUID" mais pas par "UUID". Les versions plus anciennes d'initramfs-tools peuvent être montées par "UUID" mais pas par "PARTUUID", les récentes initramfs-tools supportent les deux.

Peter Green
la source