Luks 암호 해독 후 파티션이 표시되지 않음

Luks 암호 해독 후 파티션이 표시되지 않음

Luks 드라이브의 암호를 해독할 때마다 파티션이 표시되지 않습니다.

cryptsetup -v luksOpen /dev/md0 md0_crypt

lsblk
sdb                             8:16   0   3,7T  0 disk  
└─sdb1                          8:17   0   3,7T  0 part  
  └─md0                         9:0    0   7,3T  0 raid5 
    └─md0_crypt               253:11   0   7,3T  0 crypt 
sdc                             8:32   0   3,7T  0 disk  
└─sdc1                          8:33   0   3,7T  0 part  
  └─md0                         9:0    0   7,3T  0 raid5 
    └─md0_crypt               253:11   0   7,3T  0 crypt 
sdd                             8:48   0   3,7T  0 disk  
└─sdd1                          8:49   0   3,7T  0 part  
  └─md0                         9:0    0   7,3T  0 raid5 
    └─md0_crypt               253:11   0   7,3T  0 crypt 

내가 partprobe를 실행할 때

partprobe
lsblk
sdb                                 8:16   0   3,7T  0 disk  
└─sdb1                              8:17   0   3,7T  0 part  
  └─md0                             9:0    0   7,3T  0 raid5 
    └─md0_crypt                   253:11   0   7,3T  0 crypt 
      └─md0_crypt1                253:12   0   7,3T  0 part  
sdc                                 8:32   0   3,7T  0 disk  
└─sdc1                              8:33   0   3,7T  0 part  
  └─md0                             9:0    0   7,3T  0 raid5 
    └─md0_crypt                   253:11   0   7,3T  0 crypt 
      └─md0_crypt1                253:12   0   7,3T  0 part  
sdd                                 8:48   0   3,7T  0 disk  
└─sdd1                              8:49   0   3,7T  0 part  
  └─md0                             9:0    0   7,3T  0 raid5 
    └─md0_crypt                   253:11   0   7,3T  0 crypt 
      └─md0_crypt1                253:12   0   7,3T  0 part

fdisk:

Disk /dev/mapper/md0_crypt: 7,3 TiB, 8001299677184 bytes, 15627538432 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disklabel type: gpt
Disk identifier: A599A15F-07DA-B340-ADDC-AA56AE2E9249

Device                      Start         End     Sectors  Size Type
/dev/mapper/md0_crypt-part1  2048 15627536383 15627534336  7,3T Linux

부팅할 때마다 md0_crypt1 파티션을 마운트하고 싶습니다. 하지만 매번 partprobe를 실행하지 않고 말이죠.

내가 뭐 놓친 거 없니?

답변1

LUKS/LVM 장치를 분할하는 것은 드문 일이므로 대부분의 표준 도구에서는 이를 다루지 않습니다. 실제로, 논리 볼륨을 백업 장치로 사용하는 가상 머신은 일반적으로 해당 파티션을 분할하지만 해당 파티션이 호스트에 표시되는 것을 원하지 않기 때문에 Device Mapper 장치에서 파티션을 숨긴 상태로 유지하는 것이 기능입니다.

부팅할 때마다 md0_crypt1 파티션을 마운트하고 싶습니다. 하지만 매번 partprobe를 실행하지 않고 말이죠.

당신은 그것에 거의 붙어 있습니다. 그리고 일단 초기화 스크립트 어딘가에 집어넣으면 차이점을 눈치채지 못할 것입니다... (즉, 자동화하세요)


이 지점 이하의 작업을 시도하기 전에 백업을 만드십시오.
또한 아무것도 마운트되지 않은 LiveCD에서도 이 작업을 수행합니다.

옵션 1)

불필요한 파티션 테이블을 모두 제거할 수 있습니다(모든 데이터를 2048초로 이동, 즉 첫 번째이자 유일한 파티션의 오프셋). 매우 위험한 dd명령:

dd status=progress bs=1M if=/dev/mapper/md0_crypt1 of=/dev/mapper/md0_crypt

참고: 이와 같은 추가 작업은 아직 읽지 않은 데이터를 덮어쓰지 않도록 해야 하므로 다른 방향에서는 작동하지 않습니다.

옵션 2)

파티션 테이블을 LVM으로 변환하는 것도 가능할 수 있습니다(데이터를 재배치할 필요가 없음). 그러나 LVM은 요즘 더 큰 메타데이터 영역을 선호하며 서명을 0으로 만들고 지우는 것을 선호합니다. 따라서 이를 방지하고 첫 번째 PE가 2M이 아닌 1M 또는 다른 더 큰 기본값에서 시작하는지 확인해야 합니다.

[ replace /dev/loop0 with /dev/mapper/md0_crypt ]
# vgcreate --dataalignment 1M --metadatasize 128K vgname /dev/loop0
[ this step will wipe GPT signature ]
# pvs -o +pe_start /dev/loop0
  PV         VG     Fmt  Attr PSize    PFree 1st PE 
  /dev/loop0 foobar lvm2 a--  1020.00m    0    1.00m
                                             ^^^^^^^
[ 1st PE must be 1.00m (2048s) otherwise abort mission! ]
# lvcreate --wipesignatures n --zero n -l100%FREE -n lvname vgname
# file -sL /dev/vgname/lvname
/dev/vgname/lvname: Linux rev 1.0 ext4 filesystem data [...]
[ if there's no filesystem, something went wrong ]

수행할 수 있지만 전체 백업 없이 시도해서는 안 됩니다.

관련 정보