有人可以解释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
Run Code Online (Sandbox Code Playgroud)
为什么它们不同,我们将如何更改 使用的 UUID mdadm?
我知道我们会tune2fs用来更改分区的 UUID(这会更改 返回的内容blkid),但不确定如何更改mdadm使用的内容。
Sté*_*las 26
第一个报告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的分区(存储在存储在 /dev/md0 数据中的 GPT 分区表中)。
这又可能是 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 组成,这些成员 PV 本身就是其他块设备。blkid /dev/md0p1会给你 PV UUID。它在 GPT 表中还有一个分区 UUID /dev/md0。/dev/md0本身是由其他块设备制成的。blkid /dev/sda1将返回raid-member UUID。它在 GPT 表中还有一个分区 UUID /dev/sda。
不同的 UUID 已经解释过。不仅文件系统有它们。只是有用于不同事物的 UUID:raid 阵列、设备、分区、LUKS 容器、LVM PV...以及最后的文件系统。
令我个人烦恼的是,甚至这些 UUID 的格式化方式也是不同的。
块:
# blkid /dev/sda1
/dev/sda1:
UUID="d8b8b4e5-e47b-2e45-2093-cd36f654020d"
UUID_SUB="3c3e6eac-2139-3f7a-16b7-57280934d88e"
PARTUUID="6a89cedf-69e1-40db-b08c-1c8e45af59f5"
Run Code Online (Sandbox Code Playgroud)
妈妈:
# mdadm --examine /dev/sda1 | grep UUID
Array UUID : d8b8b4e5:e47b2e45:2093cd36:f654020d
Device UUID : 3c3e6eac:21393f7a:16b75728:0934d88e
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它们是相同的 UUID,但blkid使用破折号打印它们-,而mdadm使用冒号打印它们:。所以你得到d8b8b4e5-e47b-2e45-2093-cd36f654020dvs d8b8b4e5:e47b2e45:2093cd36:f654020d..
非常烦人,尤其是当您想在脚本中使用 UUID 时。如何从一种格式转换为另一种格式并不明显。