Precise를 사용하여 암호화된 장치에서 TRIM

Precise를 사용하여 암호화된 장치에서 TRIM

메인 데이터를 새 SSD로 마이그레이션했습니다. (Samsung 840 EVO, 120GB.) My 는 ~에 의해 자동 마운트된 암호화된 파티션입니다 pam_mount. 즉, /etc/security/pam_mount.conf.xml이 파티션에 대한 레코드가 있습니다 .

TRIM을 지원하고 싶습니다. 나는 이것이 암호화를 약간 약화시킨다는 것을 알고 있습니다(즉, 일종의 부채널을 설정합니다). 그러나 나는 이것이 허용되기를 바랍니다.

에서 활성화하려고 했습니다 pam_mount.conf.xml. 한 가지 접근 방식 discard은 암호화된 블록 장치에서 자동으로 삭제를 허용하는 마운트 옵션을 포함하는 것이었습니다 .

<volume user="{USERNAME}" fstype="crypt" mountpoint="/home/{USERNAME}" path="/dev/sdb{NUMBER}"  options="defaults,noatime,nosuid,nodev,discard" />

또 다른 시도는 mntoptions에 discard(및 )을 포함하는 것이었습니다 .discards

<mntoptions allow="discard,discards,nosuid,nodev,loop,encryption,fsck,nonempty,allow_root,allow_other" />

불운. fstrim이 여전히 작동하지 않습니다.

% sudo fstrim --verbose ~                        
fstrim: /home/{USERNAME}: FITRIM ioctl failed: Operation not supported

내가 잊어버린 게 있나요? 14.04로 업그레이드하면 문제가 해결됩니까? 명령 은 지원된다는 man cryptsetup것을 알려주 --allow-discards므로 제대로 작동하기를 바랍니다. 커널 버전은 입니다 . 버전이 필수 3.13.0-35-generic이므로 괜찮은 것 같습니다 .3.1+

기본 파일 시스템은 ext4입니다. 이 fstrim명령은 암호화되지 않은 파일 시스템(ext4이기도 함)에서는 완벽하게 작동하지만 dm-crypt(?) 암호화로 래핑된 파일 시스템에서는 작동하지 않습니다.

discard마운트 옵션이 사용되는 것 같습니다 .

% mount | grep ~
/dev/sdb{NUMBER} on /home/{USERNAME} type crypt (rw,nosuid,nodev,noatime,discard)

답변1

from source 의 새 버전을 컴파일하는 pam-mount것이 성공했습니다. 이 라이브러리의 최신 버전 을 얻으려면 Trusty(일반적으로 위험함)를 .deb설치 해야 했습니다 .libhx28libhx-dev

최신 Ubuntu에서 최신 버전을 사용할 수 있으므로 컴파일을 건너뛸 수 있습니다. 가능하다면 Trusty로 업그레이드할 수 있습니다. 나는 한동안 Precise에 머물고 싶습니다.

이제 allow_discards없이 활성화하는 discard것은 추악한 해킹입니다. 그만큼반점단지 "폐기" 플래그가 있는지 확인합니다. 그래서 나는 "discard"와 "nodiscard"를 모두 이 순서대로 넣기로 결정했고 이것이 효과가 있기를 바랍니다.

이제 fstrim이 장치에서는 작동하지만 폐기 마운트 플래그가 효과가 없기를 바랍니다. 테스트할 수 있을지 잘 모르겠습니다.

또는 다시 마운트를 시도할 수도 있지만 이 접근 방식으로는 성공하지 못했습니다.

관련 정보