Linux

為什麼 mkfs 在 Ubuntu 12.04 的 RAID 分區上覆蓋 LVM 上的 LUKS 加密標頭?

  • June 19, 2012

我正在嘗試設置幾個 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)上成功完成的設置,很難看出為什麼會失敗。

如果設備確實是命名的/dev/web2/var,那麼這對我來說意味著您正在使用 LVM,並且加密卷是卷組var內的邏輯卷web2。這意味著已經有一個名為的設備/dev/mapper/web2-var,當您告訴它解鎖卷時,cryptsetup 可能不會覆蓋它。因此,您正在格式化原始卷,而不是解密卷。

我不確定為什麼你沒有從 cryptsetup 收到錯誤。你可能想在上面送出一個錯誤。或者至少檢查它是否自動將解鎖的設備重命名為/dev/mapper/web2-var2等。

同時,為解密的捲起一個新名稱。嘗試

cryptsetup luksOpen /dev/dm-1 web2-var_crypt

引用自:https://serverfault.com/questions/399937