为什么mkfs在Ubuntu 12.04的RAID分区上覆盖LVM上的LUKSencryption标题?

我试图设置几个LUKSencryption的分区,在引导时安装在一个新的Ubuntu服务器上,这个服务器在软件RAID上安装了LVM。 运行cryptsetup luksFormat ,LUKS头部在卷上清晰可见。 在运行mkfs的任何风格之后,标题被覆盖(在其他没有LVM的系统上不会发生),并且cryptsetup将不再将该设备识别为LUKS设备。

 # cryptsetup -y --cipher aes-cbc-essiv:sha256 --key-size 256 luksFormat /dev/dm-1 WARNING! ======== This will overwrite data on /dev/dm-1 irrevocably. Are you sure? (Type uppercase yes): YES Enter LUKS passphrase: Verify passphrase: # hexdump -C /dev/dm-1|head -n5 00000000 4c 55 4b 53 ba be 00 01 61 65 73 00 00 00 00 00 |LUKS....aes.....| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 00000020 00 00 00 00 00 00 00 00 63 62 63 2d 65 73 73 69 |........cbc-essi| 00000030 76 3a 73 68 61 32 35 36 00 00 00 00 00 00 00 00 |v:sha256........| 00000040 00 00 00 00 00 00 00 00 73 68 61 31 00 00 00 00 |........sha1....| # cryptsetup luksOpen /dev/dm-1 web2-var # mkfs.ext4 /dev/mapper/web2-var [..snip..] Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done # hexdump -C /dev/dm-1|head -n5 # cryptsetup luksClose /dev/mapper/web2-var 00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| * 00000400 00 40 5d 00 00 88 74 01 66 a0 12 00 17 f2 6d 01 |.@]...tf....m.| 00000410 f5 3f 5d 00 00 00 00 00 02 00 00 00 02 00 00 00 |.?].............| 00000420 00 80 00 00 00 80 00 00 00 20 00 00 00 00 00 00 |......... ......| # cryptsetup luksOpen /dev/dm-1 web2-var Device /dev/dm-1 is not a valid LUKS device. 

我也尝试了mkfs.ext2与相同的结果。 根据我在Debian和Ubuntu(但不是LVM或Ubuntu 12.04)上成功完成的设置,很难看出为什么这是失败的。

    如果设备真的名为/dev/web2/var ,那么这意味着您正在使用LVM,而encryption的卷是web2卷组内的var逻辑卷。 这意味着已经有一个名为/dev/mapper/web2-var的设备,当你告诉它解锁卷时,cryptsetup可能不会覆盖它。 因此,您正在格式化原始卷,而不是解密卷。

    我不确定你为什么没有从cryptsetup中得到一个错误。 你可能想要提交一个错误。 或者至less检查它是否自动将解锁的设备重命名为/dev/mapper/web2-var2等。

    同时,给解密卷一个新的名字。 尝试

     cryptsetup luksOpen /dev/dm-1 web2-var_crypt