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또는 vgscanLUKS vgchange -ay ...볼륨을 연 후에는 더 이상 테스트하지 않았습니다.

당신은해야진짜알 수 없는 이유로 원래 시도를 계속하려면 다음을 사용할 수 있습니다.kpartx무엇이든 파티션을 감지합니다. 그러면 새 장치 맵이 생성되며, 이 시점에서 pvcreate장치 맵("단순" 파티션이 아님)에서 작업하게 됩니다. 일반적인 Linux 배포판에서는 이 작업을 수행하지 않으므로 모두 "감지"하고 수동으로 처리해야 합니다.

관련 정보