dm-cryptコンテナ内のLVMパーティションのPV

dm-cryptコンテナ内のLVMパーティションのPV

LUKSでLVMを設定しようとしています。私がしたことは次のとおりです。

head -c 100M /dev/zero > test-file
losetup /dev/loop0 test-file
cryptsetup luksFormat /dev/loop0
cryptsetup open /dev/loop0 cryptlvm
gdisk /dev/mapper/cryptlvm

次に、GPTと単一のパーティション8e00 LVMを置きます。

fdisk -l /dev/mapper/cryptlvm
# => /dev/mapper/cryptlvm-part1  2048 200670  198623  97M Linux LVM

しかし、

pvcreate /dev/mapper/cryptlvm-part1
# => Device /dev/mapper/cryptlvm-part1 not found.

パーティションも表示されませんlsblk。人々は通常、パーティショナーが何かを見ることができるようにLVMでパーティションテーブルを使用することを擁護しているようです。 LUKSコンテナをスキップしても、GPTの上のパーティションにLVMを配置するのに問題はありません。

これは、パーティション(gdiskなど)にLUKSコンテナを設定し、LVMパーティションにcryptsetupを設定しようとしたときにも機能します。

私は、パーティションスキームをLUKSコンテナに入れてから、その中にある単一のパーティションでLVMを使用できると期待しました。これが不可能に見える理由についてのヒントや説明を教えていただければ幸いです。

ベストアンサー1

Linuxカーネルはパーティションを処理する唯一の部分であり、パーティション内のパーティションを検索しようとしないので、ここで試しは終了します。

ただPVを作ろうまっすぐ~へ暗号化された仮想マシンマッピング。デバイスマッピングはパーティションではなくコンテナとして機能します。

[...]
# cryptsetup open /dev/loop0 cryptlvm
# pvcreate /dev/mapper/cryptlvm
  Physical volume "/dev/mapper/cryptlvm" successfully created.
# pvs /dev/mapper/cryptlvm
  PV                   VG Fmt  Attr PSize  PFree 
  /dev/mapper/cryptlvm    lvm2 ---  98.00m 98.00m

その後、次の手順に進みますvgcreate

# vgcreate testvg /dev/mapper/cryptlvm 
  Volume group "testvg" successfully created
# vgs testvg
  VG     #PV #LV #SN Attr   VSize  VFree 
  testvg   1   0   0 wz--n- 96.00m 96.00m

通常、システム(ここではカーネル、イベント、およびユーザースペースが混在しています)が自動的にVGを検出して有効にする必要があります。結果を別のシステムに転送する場合は、次の操作が必要になることがあります。pvscanまたは、vgscanLUKSvgchange -ay ...ボリュームを開いた後はテストしなくなりました。

あなたはする必要があります本物未知の理由で元の試行を続行するには、次のようにします。kpartx何でもパーティションを検出します。これにより、新しいデバイスマップが作成され、この時点でpvcreateデバイスマップ(「単純」パーティションではない)で作業します。一般的なLinuxディストリビューションではこれを実行しないため、すべて「検出」して手動で処理する必要があります。

おすすめ記事