암호화된 파티션에서 삭제 허용 비활성화

암호화된 파티션에서 삭제 허용 비활성화

다음과 같은 파티션 테이블이 있습니다.

NAME            
nvme0n1         
├─nvme0n1p1           part  /boot
└─nvme0n1p2           part
  └─crypt             crypt
    ├─crypt-swap      lvm   [SWAP]
    ├─crypt-root      lvm   /
    └─crypt-home      lvm   /home

드라이브가 SSD이므로 실행하고 싶습니다.치다디스크 자체의 성능/수명을 향상시키는 명령입니다.

특히 주기적 TRIM을 활성화하고 싶습니다.

두 번째 파티션(예: nvme0n1p2)은 암호화되어 있으므로 보안상의 이유로 TRIM이 비활성화됩니다(https://wiki.archlinux.org/title/Dm-crypt/Specialties#Discard/TRIM_support_for_solid_state_drives_(SSD)).

그러나 encrypt암호화된 파티션을 열 때 구성하여 TRIM을 활성화할 수 있습니다.

커널 부팅 시 파티션이 열렸을 때 커널 매개변수(예 allow-discards: )를 수정했습니다.

cryptdevice=/dev/sdaX:root:allow-discards

(파티션 이름 지정 및 볼륨 이름은 위 코드 조각과 관련이 없습니다.).

이렇게 하면 실제로 디스크에서 TRIM 명령을 성공적으로 실행할 수 있었습니다.

# cryptsetup luksDump /dev/nvme0n1p2 | grep Flags
Flags:   allow-discards

그리고:

# fstrim ...
/home: [..] trimmed on ...
/: [..] trimmed on

여태까지는 그런대로 잘됐다.


문제는 원래 상태로 복원하려고 할 때 발생합니다.

커널 매개변수를 제거했지만 여전히 파티션에 표시되고 명령 이 성공적 allow-discards으로 수행됩니다.Flagsallow-discardsfstrim

  • 어떻게 이럴 수있어?
  • 암호화된 파티션에서 거부된 드롭을 복구하는 방법은 무엇입니까?

답변1

LUK2는 메타데이터를 헤더에 영구적으로 저장할 수 있는 것으로 나타났습니다.

allow-discards다음 명령을 사용하여 (커널 매개변수와 같은 추가 구성 없이) 파티션 자체에 이를 활성화하고 저장할 수 있습니다 :

cryptsetup --allow-discards --persistent refresh root

분명히 나는 ​​과거에 폐기 옵션을 활성화하기 위해 이 명령을 실행한 적이 있습니다.

이 플래그는 다음을 통해 제거할 수 있습니다.

cryptsetup --persistent refresh root

https://man7.org/linux/man-pages/man8/cryptsetup.8.html

선택적 인수 없이 장치를 새로 고치면 기본 설정을 사용하여 장치가 새로 고쳐집니다(장치 유형에 따라 다름).

관련 정보