![dmsetup은 2TB보다 큰 드라이브에서는 작동하지 않습니다.](https://linux55.com/image/155440/dmsetup%EC%9D%80%202TB%EB%B3%B4%EB%8B%A4%20%ED%81%B0%20%EB%93%9C%EB%9D%BC%EC%9D%B4%EB%B8%8C%EC%97%90%EC%84%9C%EB%8A%94%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
이 문서의 원래 제목은 CryptSetup이 4096바이트 섹터가 있는 Truecrypt 장치를 로드하지 않는다는 내용이었습니다. 어쨌든 (마스터 키를 사용하여) Truecrypt 헤더를 덤프했지만 이제 dmsetup을 사용하여 로드하려고 하면 작동하지 않습니다.
echo "0 5860533168 crypt aes-xts-plain64 <my-super-secret-64-byte-key> 256 /dev/sdh 256" | dmsetup create test
device-mapper: resume ioctl on test failed: Invalid argument
Command failed
2^32 이상의 크기 숫자는 지원하지 않는 것 같아서 추가해 보았습니다.섹터 크기: 4096테이블 매개변수:
echo "0 732566646 crypt aes-xts-plain64 <my-super-secret-64-byte-key> 256 /dev/sdh 256 sector_size:4096" | dmsetup create test
device-mapper: reload ioctl on test failed: Invalid argument
Command failed
섹터 수를 다음과 같이 설정하면2TB 이하(2^32 * 512), 하지만 아직 끝나지 않았습니다. 순수 cryptsetup에서 동일한 명령을 복제하려고 시도했지만 dmsetup 테이블을 정확하게 일치시키는 방법을 모르고 복제할 수 없습니다. 2TB보다 큰 장치에서 dmsetup을 강제로 작동시키는 방법이 있습니까? 마스터 키를 cryptsetup에 직접 전달하는 방법이 있습니까? 지금까지 시도한 내용은 다음과 같습니다. 그러나 암호 해독에 잘못된 키를 사용합니다.
echo <64-byte-key> | cryptsetup open --type plain /dev/sdh test --offset 256 --cipher aes-xts-plain64 --hash plain --key-size 512
답변1
총 섹터 수가 잘못되었습니다. 총 섹터 수를 구하고 오프셋을 빼야 합니다. dmsetup에서 섹터 수가 장치를 초과한다고 직접 말하지 않고 대신 매우 쓸모없는 "잘못된 매개변수"라고 말하는 이유는 무엇입니까? 이렇게 하면 시간이 절약됩니다.
4K 모드의 경우 총 섹터 수 * 512 / 4096 - 오프셋을 가져와야 합니다. 또한 다음을 지정해야 합니다.계산표의 추가 "선택적 매개변수" 앞에. 여기에는 1개만 있으므로 다음과 같습니다.
... /dev/sdh 256 1 sector_size:4096