ソフトウェアRAID上にLVMをインストールした新しいUbuntuサーバーに、起動後にマウントするLUKS暗号化パーティションをいくつかセットアップしようとしています。実行後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を使用しており、暗号化されたボリュームがweb2
ボリュームグループ内のvar
論理ボリュームであることを意味します。つまり、すでに/dev/mapper/web2-var
という名前のデバイスもあり、ボリュームのロックを解除するように指示したときに、cryptsetupがそれを上書きしていない可能性があります。したがって、復号化されたボリュームではなく、元のボリュームをフォーマットしています。
ただし、cryptsetupからエラーが発生しない理由はわかりません。あなたはそれにバグを提出したいかもしれません。または、少なくとも、ロック解除されたデバイスの名前が/dev/mapper/web2-var2
などに自動的に変更されるかどうかを確認します。
それまでの間、復号化されたボリュームに新しい名前を付けてください。試してみてください
cryptsetup luksOpen /dev/dm-1 web2-var_crypt