![为什么 mkfs 会覆盖 Ubuntu 12.04 上 RAID 分区上 LVM 上的 LUKS 加密标头?](https://linux22.com/image/587599/%E4%B8%BA%E4%BB%80%E4%B9%88%20mkfs%20%E4%BC%9A%E8%A6%86%E7%9B%96%20Ubuntu%2012.04%20%E4%B8%8A%20RAID%20%E5%88%86%E5%8C%BA%E4%B8%8A%20LVM%20%E4%B8%8A%E7%9A%84%20LUKS%20%E5%8A%A0%E5%AF%86%E6%A0%87%E5%A4%B4%EF%BC%9F.png)
我正在尝试设置几个 LUKS 加密分区,以便在启动后挂载在新的 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 |.@]...t.f.....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),很难看出为什么会失败。
答案1
如果设备确实名为/dev/web2/var
,那么这对我来说意味着您正在使用 LVM,并且加密卷是卷组var
内的逻辑卷web2
。这意味着已经一个名为的设备/dev/mapper/web2-var
,当您告诉它解锁卷时,cryptsetup 可能不会覆盖它。因此,您正在格式化原始卷,而不是解密的卷。
不过,我不确定为什么你没有收到来自 cryptsetup 的错误。你可能想提交一个错误报告。或者至少检查它是否自动将解锁的设备重命名为/dev/mapper/web2-var2
或类似名称。
同时,给解密卷起一个新名字。尝试
cryptsetup luksOpen /dev/dm-1 web2-var_crypt