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
. (시도하지는 않았지만 luksFormat
LUKS 장치 헤더를 설정하고 마스터 키를 암호화합니다.)
문제는 결국
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
.