与 blkid 和 tune2fs 不同的 uuid

与 blkid 和 tune2fs 不同的 uuid

我将一个分区从 /dev/sdb3 (GPT 分区) 复制 (dd) 到 /dev/vg0/lv0_sys (lvm2 lv)

肯定需要调整其中一个的 uuid,我发现 blkid 为这两个显示了不同的 uuid。令我惊讶的是,我寻找了其他显示 uuid 的方法,并找到了 tune2fs。tune2fs 为这两个提供了相同的 uuid。这意味着,tune2fs 和 bklid 为 /dev/mapper/vg0-lv0_sys 上的副本提供了不同的 uuid

请注意,我使用符号链接 /dev/vg0/lv0_sys 进行复制,但使用直接路径 /dev/mapper... 获取 uuid。符号链接不适用于 blkid。但它适用于 tune2fs。

那么,blkid 在做什么?分区/lv 是否有自己的 uuid,该 uuid 与文件系统 uuid 不同,但可以相同?blkid 是否显示了这一点?

blkid完整输出:

/dev/sda2: UUID="634cfda6-5ebd-4c12-9480-e9effb2c9c69" TYPE="ext2" 
/dev/sda3: UUID="69fa6b8a-4c53-409b-aec7-d72b1ca9463a" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda4: UUID="966c08c5-1588-4456-9d82-3c42d6a8e09c" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda5: UUID="414cef10-c56c-4b23-8508-698ed49360f9" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sda6: UUID="MI8wFf-3wqr-fYR0-iVOk-1gAJ-mDuG-yaUpoK" TYPE="LVM2_member" 
/dev/sda7: UUID="RoZLP3-Owd8-5Fkm-Q33j-X6nS-Eju5-Bqw3Xr" TYPE="LVM2_member" 
/dev/sda8: UUID="fFStIK-Cvqy-kGYt-JDlx-JAAT-VcHb-apY50V" TYPE="LVM2_member" 
/dev/sda9: UUID="EImDQ9-UGI7-sUsM-ihar-vDuB-SSlb-wz7bhy" TYPE="LVM2_member" 
/dev/sdb2: UUID="83556c87-b5f5-44e9-be53-2ae46cab8931" TYPE="ext2" 
/dev/sdb3: UUID="25e6c972-e769-4216-bc18-8d2d1eefa6a1" TYPE="ext4" 
/dev/sdb4: UUID="D2wdPj-RiS1-7ea0-KUUE-NLuq-UZUa-Fe3FuY" TYPE="LVM2_member" 
/dev/mapper/vg0-lv0_sys: UUID="bc2de0a1-4de2-4e61-a19e-376409528fd9" TYPE="ext4" 
/dev/mapper/vg3-lv0_sys: UUID="e9131371-71af-4dcc-a0f6-83673da1330c" SEC_TYPE="ext2" TYPE="ext3" 
/dev/mapper/vg3-lv1_sys: UUID="ddf0a6d9-7bec-41ee-b141-376cb5540d45" TYPE="ext4" 
/dev/mapper/vg3-lv3_swap: UUID="98ef4d82-2994-46ea-9897-36fab66b133a" TYPE="swap" 
/dev/mapper/vg3-lv4_data: UUID="53a306ad-f10b-44cf-90d6-bdb8b4abae3b" SEC_TYPE="ext2" TYPE="ext3" 
/dev/sdg1: LABEL="M-@;9M-^X" UUID="CE2C-4586" TYPE="vfat" 

额外的问题:grub2 将使用什么来确定启动文件系统?

blockdev --getsize64 /dev/sdb3 /dev/vg0/lv0_sys 的输出

29997662208
28991029248

也许我应该补充一点:目标分区较小,但我在复制之前将文件系统的大小调整为较小(约 26GB)。我假设,当 dd 由于目标空间结束而中止复制时,文件系统应该已完全写入。e2fsck /dev/vg0/lv0_sys 没有给我任何错误

答案1

如果你不blkid以 root 身份运行,它实际上无法读取任何因此必须依赖缓存。

blkid如果磁盘有任何变化,请始终以 root 身份运行。

答案2

我曾见过类似的问题,即从 VMWare 设置中重用磁盘并将其移至 XFS blkid报告错误或不正确的信息。 这接受的答案显示分区信息位于与我预期不同的偏移处,这可能会造成混淆blkid。您看到的是相同的吗?

来自 Red Hat 的此错误报告似乎符合您的情况。现在我会blkid相信tune2fs

答案3

我遇到的实际问题是 blkid 使用的缓存。

如果我添加 -p 选项来绕过缓存,那么 blkid 会给我一个正确的答案。

此后,再次使用 sudo(需要与 -p 结合使用)调用 blkid,此后每次正常调用时,blkid 都会随时为我提供正确且最新的 id。

相关内容