이미지 파일의 암호화된 파티션 마운트

이미지 파일의 암호화된 파티션 마운트

sudo fdisk -l /mnt/hdd/19_02.img세 개의 파티션( )으로 구성된 하드 드라이브의 이미지 백업 파일이 있습니다 .

Device                 Start       End   Sectors   Size Type
/mnt/hdd/19_02.img1     2048   1050623   1048576   512M EFI System
/mnt/hdd/19_02.img2  1050624  34686975  33636352    16G Linux swap
/mnt/hdd/19_02.img3 34686976 976773134 942086159 449.2G Linux filesystem

세 번째 파티션은 유형입니다 crypto_LUKS. 암호화되지 않은 경우 다음을 sudo mount -o loop,offset=$(expr 512 \* 34686976) /mnt/hdd/19_02.img /mnt/img사용하여 마운트할 수 있습니다.mount: /mnt/img: unknown filesystem type 'crypto_LUKS'.

내가 시도한 것

sudo cryptsetup luksOpen /mnt/hdd/19_02.img3 img밝혀지다Device /mnt/hdd/19_02.img3 doesn't exist or access denied.

sudo cryptsetup plainOpen --offset=$(expr 512 \* 34686976) /mnt/hdd/19_02.img img내 비밀번호를 물었고 이 역시 허용되었지만 Requested offset is beyond real size of device /mnt/hdd/19_02.img. "음, cryptsetup오프셋 값에 블록 크기를 곱하면 됩니다"라고 반환했습니다.

sudo cryptsetup plainOpen --offset=34686976 /mnt/hdd/19_02.img img내 비밀번호를 물었고 비밀번호도 수락되어 정상적으로 반환되었습니다. 그러나 sudo mount /dev/mapper/img /mnt/img불평하다 mount: /mnt/img: wrong fs type, bad option, bad superblock on /dev/mapper/img. 분석 결과 sudo lsblk -f /dev/mapper/img파일 시스템이 인식되지 않는 것으로 나타났습니다.

NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
img

암호화된 장치는 LUKS스키마에 의해 생성되므로 plainOpen. 그러나 옵션이 제공되지 luksOpen않습니다 --offset.

이것이 하는 일은 sudo cryptsetup luksOpen --offset=34686976 /mnt/hdd/19_02.img img입니다 cryptsetup: Option --offset is supported only for open of plain and loopaes devices and for luksFormat. (시도하지는 않았지만 luksFormatLUKS 장치 헤더를 설정하고 마스터 키를 암호화합니다.)

문제는 결국

cryptsetup luksOpen이미지 파일의 오프셋을 처리하는 방법은 무엇입니까 ?

답변1

fdisk여기서는 약간 어리석습니다. 파티션의 장치 이름을 표시할 때 주어진 전체 디스크 장치의 이름을 가져와서 파티션 번호를 추가합니다( p전체 디스크 장치 이름의 마지막 문자도 숫자인 경우 접두사를 추가합니다). . 해당 이름의 장치가 실제로 존재하는지 확인하지 않고 이 작업을 수행합니다.

즉, 이미지 파일에 이름이 지정되어 /mnt/hdd/19_02.img있고 이를 직접 검사하는 데 사용하는 fdisk경우 이와 같은 파티션 이름은 /mnt/hdd/19_02.img3완전히 허구이며 사용할 수 없습니다.

오프셋을 수동으로 계산하는 대신 이미지 파일을 루프 장치에 추가하고 자동으로 파티션을 감지하도록 할 수 있습니다.

sudo losetup -P /dev/loop0 /mnt/hdd/19_02.img

-P시스템이 옵션을 지원할 만큼 새 시스템이라면 losetup이제 자동으로 /dev/loop0p1, /dev/loop0p2및 파티션 장치가 있어야 합니다 /dev/loop0p3.

파티션 루프 장치를 지원하지 않는 이전 배포판의 경우 동일한 목적으로 이 kpartx명령( device-mapper-multipath별도로 패키지되지 않은 경우 도구와 함께 제공될 수 있음)을 사용할 수 있습니다. 이 경우 두 단계를 수행해야 하며 장치 이름은 약간 다릅니다.

sudo losetup /dev/loop0 /mnt/hdd/19_02.img
sudo kpartx -a /dev/loop0

kpartx이런 방식으로 사용하면 파티션 장치가 /dev/mapper, 예를 들어 /dev/mapper/loop0p1등 아래에 나타납니다.

이제 다음 중 하나를 수행할 수 있습니다.

sudo cryptsetup luksOpen /dev/loop0p3 img

또는

sudo cryptsetup luksOpen /dev/mapper/loop0p3 img

파티션된 장치를 사용하는지 losetup -P아니면 kpartx처리하는지에 따라 다릅니다.


이미지에 액세스한 후 파티션 장치에 마운트된 모든 파일 시스템을 마운트 해제하고 sudo cryptsetup luksClose이미지를 암호화한 다음 루프 장치 바인딩을 해제합니다.

사용하신 경우 kpartx먼저 실행하여 sudo kpartx -d /dev/loop0파티션 장치를 해제해 주시기 바랍니다. 이것을 사용한 경우에는 losetup -P이 단계가 필요하지 않습니다.

그런 다음 루프 장치를 해제합니다. sudo losetup -d /dev/loop0.

관련 정보