web-dev-qa-db-ja.com

mkfsがUbuntu12.04のRAIDパーティション上のLVMのLUKS暗号化ヘッダーを上書きするのはなぜですか?

ソフトウェア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ではない)で正常に実行したセットアップに基づいて、これが失敗する理由を理解するのは困難です。

3
Starchy

デバイスの名前が実際に/dev/web2/varの場合、これは、LVMを使用しており、暗号化されたボリュームがweb2ボリュームグループ内のvar論理ボリュームであることを意味します。つまり、すでに/dev/mapper/web2-varという名前のデバイスもあり、ボリュームのロックを解除するように指示したときに、cryptsetupがそれを上書きしていない可能性があります。したがって、復号化されたボリュームではなく、元のボリュームをフォーマットしています。

ただし、cryptsetupからエラーが発生しない理由はわかりません。あなたはそれにバグを提出したいかもしれません。または、少なくとも、ロック解除されたデバイスの名前が/dev/mapper/web2-var2などに自動的に変更されるかどうかを確認します。

それまでの間、復号化されたボリュームに新しい名前を付けてください。試してみてください

cryptsetup luksOpen /dev/dm-1 web2-var_crypt
3
DerfK