blkid 输出中的磁盘 UUID 消失

blkid 输出中的磁盘 UUID 消失

我在 RHEL-7 上遇到了一个奇怪的情况。我在磁盘分区上创建了一个设备映射器 (crypt),然后将数据 (字节) 从磁盘分区复制到映射器。blkid 输出有两个 UUID 条目 - 一个用于磁盘分区,另一个用于映射器。/dev/disk/by-uuid 下的 UUID 指向映射器,因为它已被覆盖。

blkid 输出:

/dev/sdc1: UUID="1e762c4a-0b12-40fc-9f53-a825016211a0" TYPE="ext4"

/dev/mapper/my_mapper: UUID="1e762c4a-0b12-40fc-9f53-a825016211a0" TYPE="ext4"

/dev/disk/by-uuid 输出:

lrwxrwxrwx 1 root root 10 Jan 31 10:24 1e762c4a-0b12-40fc-9f53-a825016211a0 -> ../../dm-4

现在,我再次将数据(字节)从映射器复制到磁盘分区并关闭映射器。 /dev/disk/by-uuid 下的 UUID 指向磁盘分区,blkid 输出显示磁盘分区的 UUID。

blkid 输出:

/dev/sdc1: UUID="1e762c4a-0b12-40fc-9f53-a825016211a0" TYPE="ext4"

/dev/disk/by-uuid 输出:

lrwxrwxrwx 1 root root 10 Jan 31 10:24 1e762c4a-0b12-40fc-9f53-a825016211a0 -> ../../sdc1

但是,一旦我尝试挂载磁盘分区,就会出现错误:

mount -t ext4 -o rw /dev/sdc1 /mnt/plainDisk
mount: wrong fs type, bad option, bad superblock on /dev/sdc1.

然后磁盘从 blkid 输出中消失。 /dev/disk/by-uuid 仍然存在且具有正确的 UUID,并且 lsblk 显示该磁盘。

我正在用来blockdev --getsize64获取磁盘的大小(以字节为单位),然后复制所有这些字节。

任何意见或建议都值得赞赏。不过我在 RHEL-6 上没有遇到这个问题。

附加信息:

  1. 一旦所有数据都被复制,我就会使用fsync/dev/sdc1 文件描述符。
  2. 当第二次复制后 /dev/sdc1 存在时,我验证了 dumpe2fs 的输出。它与原始值匹配。但是,一旦删除该条目,dumpe2fs 就会给出错误:

dumpe2fs 1.42.9(2013 年 12 月 28 日)

dumpe2fs:尝试打开 /dev/sdc1 时超级块中的幻数错误

找不到有效的文件系统超级块。

答案1

问题是,在将数据从 复制回my_mappersdc1my_mapper仍然安装。这在某种程度上影响了设备上的超级块。我运行dumpe2fs并检查了一些与在超级块中。

在复制数据之前卸载映射器可以解决问题。

相关内容