Linux

來自 blkid 和 mdadm 的 UUID 之間的區別?

  • September 9, 2015

blkid有人可以解釋由和報告的 UUID 之間的區別mdadm嗎?在我們的一個 CentOS 系統上,例如:

[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

為什麼它們不同,我們將如何更改使用的 UUID mdadm

我知道我們將使用tune2fs更改分區的 UUID(這將更改返回的內容blkid),但不確定如何更改mdadm使用的內容。

第一個報告md塊設備上 ext4 文件系統的 UUID。它幫助系統在系統上可用的文件系統中唯一地辨識文件系統。那儲存在文件系統的結構中,也就是儲存在 md 設備上的數據中。

第二個是 RAID 設備的 UUID。它幫助 md 子系統唯一地辨識特定的 RAID 設備。特別是,它有助於辨識屬於 RAID 陣列的所有塊設備。它儲存在數組的元數據中(在每個成員上)。數組成員也有自己的 UUID(在 md 系統中,如果它們是 GPT 分區(它本身將儲存在 GPT 分區表中)或 LVM 卷,它們也可能有分區 UUID…)。

blkid有點誤導,因為它返回的是儲存在設備上的結構的 ID(對於那些它知道的結構,如大多數文件系統、LVM 成員和交換設備)。另請注意,具有相同 UUID 結構的塊設備(例如 LVM 快照)並不少見。塊設備可以包含任何東西,包括結構不包含 UUID 的東西。

因此,作為範例,您可以擁有一個具有 3 個驅動器的系統,並採用 GPT 分區。這些驅動器可以具有唯一標識它的全球名稱。假設 3 個驅動器分別用一個分區 ( /dev/sd[abc]1) 進行分區。每個分區都會有一個 GPT UUID 儲存在 GPT 分區表中。

如果這些分區組成一個 md RAID5 陣列。每個都將獲得一個 md UUID 作為 RAID 成員,並且陣列將獲得一個 UUID 作為 md RAID 設備。

/dev/md0可以使用 MSDOS 或 GPT 類型的分區進一步分區。例如,我們可以有一個/dev/md0p1帶有 GPT UUID 的分區(儲存在 GPT 分區表中,該表儲存在 /dev/md0 的數據中)。

這又可能是 LVM 的物理卷。因此,它將獲得一個 PV UUID。卷組也將有一個 VG UUID。

在該卷組中,您將創建邏輯卷,每個卷都有一個 LV UUID。

在其中一個 LV(如/dev/VG/LV)上,您可以創建一個 ext4 文件系統。該文件系統將獲得一個 ext4 UUID。

blkid /dev/VG/LV將為您提供該文件系統的(ext4)UUID。但作為 VG 卷內的一個分區,它也會獲得一個分區 UUID(某些分區方案,如 MSDOS/MBR 沒有 UUID)。該卷組由本身是其他塊設備的成員 PV 組成。blkid /dev/md0p1會給你PV UUID。它在 GPT 表上也有一個分區 UUID /dev/md0/dev/md0它本身是由其他塊設備製成的。blkid /dev/sda1將返回團隊成員 UUID。它在 GPT 表上也有一個分區 UUID /dev/sda

引用自:https://unix.stackexchange.com/questions/129497