Quelqu'un peut-il expliquer la différence entre l'UUID rapporté par blkid
et mdadm
? Sur l'un de nos systèmes Centos, par exemple:
[root@server ~]# blkid | grep /dev/md1
/dev/md1: UUID="32cb0a6e-8148-44e9-909d-5b23df045bd1" TYPE="ext4"
[root@server ~]# mdadm --detail /dev/md1 | grep UUID
UUID : f204c558:babf732d:85bd7296:bbfebeea
Pourquoi sont-ils différents et comment changerions-nous l'UUID utilisé par mdadm
?
Je comprends que nous utiliserions tune2fs
Pour modifier l'UUID pour la partition (qui changerait ce qui est retourné par blkid
), mais je ne sais pas comment changer ce que mdadm
utilise.
Le premier signale l'UUID du système de fichiers ext4 sur le périphérique Block md
. Il aide le système à identifier le système de fichiers uniquement parmi les systèmes de fichiers disponibles sur le système. Qui est stocké dans la structure du système de fichiers, c'est-à-dire dans les données stockées sur le périphérique MD.
Le second est l'UUID du périphérique RAID. Il aide le sous-système MD Identifier ce dernier dispositif RAID uniquement. En particulier, il aide à identifier tous les dispositifs de bloc appartenant au tableau RAID. Il est stocké dans les métadonnées du tableau (sur chaque membre). Les membres du tableau ont également leur propre UUID (dans le système MD, ils peuvent également avoir des uuides de partition si elles sont des partitions GPT (qui lui-même seraient stockées dans la table de partition GPT), ou des volumes LVM ...).
blkid
_ est un peu trompeur, comme ce qu'il renvoie est l'ID de la structure stockée sur l'appareil (pour ce type de structures qu'elle connaît comme la plupart des systèmes de fichiers, des membres LVM et des périphériques de swap). Notez également qu'il n'est pas rare d'avoir des dispositifs bloquants avec des structures avec des uuids identiques (par exemple, des instantanés LVM). Et un appareil de bloc peut contenir quoi que ce soit, y compris des choses dont la structure n'inclut pas d'UUID.
Ainsi, comme exemple, vous pourriez avoir un système avec 3 lecteurs, avec la partition GPT. Ces lecteurs pourraient avoir un nom mondial qui l'identifie de manière unique. Disons que les 3 disques sont partitionnés d'une partition chacune (/dev/sd[abc]1
). Chaque partition aura un GPT UUID stocké dans la table de partition GPT.
Si ces partitions constituent une matrice MD RAID5. Chacun obtiendra un MD UUID en tant que membre RAID et le tableau obtiendra une UUID en tant que périphérique RAID MD.
Cette /dev/md0
peut être encore partitionné par des cloisons MSDOS ou GPT. Par exemple, nous pourrions avoir un /dev/md0p1
Partition avec un UUID GPT (stocké dans la table de partition GPT stockée dans les données de/dev/md0).
Cela pourrait à son tour être un volume physique pour LVM. En tant que tel, cela obtiendra une PV UUID. Le groupe de volumes aura également une UUID VG.
Dans ce groupe de volumes, vous créeriez des volumes logiques, chacun obtenant un LV UUID.
Sur l'un de ces lvs (comme /dev/VG/LV
), vous pouvez faire un système de fichiers ext4. Ce système de fichiers obtiendrait un uuid ext4.
blkid /dev/VG/LV
vous obtiendrait l'UUID (EXT4) de ce système de fichiers. Mais en tant que partition à l'intérieur du volume VG, il obtiendrait également une partition UUID (un schéma de partitionnement comme MSDOS/MBR n'a pas d'uuids). Ce groupe de volumes est composé de membres PVS qui sont eux-mêmes d'autres dispositifs de blocs. blkid /dev/md0p1
vous donnerait le PV UUID. Il a également une partition UUID dans la table GPT sur /dev/md0
. /dev/md0
elle-même est faite d'autres dispositifs de blocs. blkid /dev/sda1
retournera l'UUID du membre RAID. Il a également une partition UUID dans la table GPT sur /dev/sda
.
Les différents Uuid ont déjà été expliqués. Non seulement les systèmes de fichiers ont-ils. Il y a simplement des uuids pour différentes choses: Tableau RAID, appareil, partition, conteneurs Luks, LVM PV ... et enfin des systèmes de fichiers.
Ce qui me gêne personnellement, c'est que même la façon dont ces uuids sont formatés est différente.
blkid:
# blkid /dev/sda1
/dev/sda1:
UUID="d8b8b4e5-e47b-2e45-2093-cd36f654020d"
UUID_SUB="3c3e6eac-2139-3f7a-16b7-57280934d88e"
PARTUUID="6a89cedf-69e1-40db-b08c-1c8e45af59f5"
mdadm:
# mdadm --examine /dev/sda1 | grep UUID
Array UUID : d8b8b4e5:e47b2e45:2093cd36:f654020d
Device UUID : 3c3e6eac:21393f7a:16b75728:0934d88e
Comme vous pouvez le constater, ce sont les mêmes uuids, mais blkid
les imprime avec des tirets -
alors que mdadm
utilise des bons :
. Donc, vous obtenez d8b8b4e5-e47b-2e45-2093-cd36f654020d
vs. d8b8b4e5:e47b2e45:2093cd36:f654020d
.
Très ennuyeux, surtout si vous voulez travailler avec des uuids dans des scripts. Il n'est pas évident comment convertir d'un formatage à l'autre.