Pop!_OS 22.04 LUKS 파티션에서 수동 TRIM이 작동하지 않는 문제

by ANTIBIOTICS posted Apr 08, 2023
?

단축키

Prev이전 문서

Next다음 문서

ESC닫기

크게 작게 위로 아래로 댓글로 가기 인쇄

Pop!_OS 22.04가 설치된 노트북의 LUKS 암호화된 파티션에서 수동 TRIM을 실행했더니 fstrim: /: the discard operation is not supported 이라는 안내가 뜨며 실행이 되지 않습니다.

 

이 문제를 해결할 수 있는 Reddit 게시글을 찾아서 번역하여 올립니다.

아래 글에서 나온 방법 중 systemd에 관한 부분을 순서대로 따라했고 다행히 제 노트북에서는 TRIM이 정상 작동했습니다.

 

trim.png

 

 


 

원글: https://www.reddit.com/r/linux4noobs/comments/j4jdjv/trim_on_encrypted_nvme_pop_os_2004/?utm_source=share&utm_medium=web2x&context=3

 

 

 

u/utopiaman99가 3년 전 게시함

제목: 암호화된 NVME Pop_OS 20.04에서 TRIM 실행

 

제곧내. 저는 삼성 970 EVO nvme 를 주 드라이브로 사용하고 있으며 주 파티션은 암호화되어 있습니다. 저는 TRIM을 확인했고 모두 정상적으로 설정되어 있었습니다. 또한 '/recovery' 및 '/boot/efi'에서도 정상적으로 TRIM이 실행된 것 같습니다. 그러나 '/' 에서 TRIM을 실행하려 하자 "fstrim: /: the discard operation is not supported"라는 오류가 나타났습니다. 인터넷을 찾아보니 아마도 파티션 암호화와 관련된 문제인 것 같았습니다. 인터넷에서 찾은 방법 중 하나로 해당 파티션에 대해 crypttab에 discard 옵션을 추가해 보았지만 작동하지 않습니다.

 

혹시 방법을 아는 분이 있을까요? 드라이브단의 garbage collection 시대에 TRIM이 꼭 필요한 것인가요?

 

추가적인 정보가 필요하다면 말씀해주세요.

 

 

 

Fearless_Process · 3년 전 · 3년 전 수정됨

 

정기적 TRIM을 실행하는 게 좋을 것 같습니다. TRIM을 하지 않으면 성능을 떨어트리고 드라이브의 수명에 부정적인 영향을 줄 수 있습니다.

 

POPOS는 어떤 부트로더를 사용하나요? 루트 파티션은 crypttab의 항목보다 먼저 마운트되기 때문에 discard 옵션을 부트로더와 함께 커널에 전달해야 합니다. GRUB인 경우 아주 간단하지만 다른 부트로더는 잘 모르겠습니다.

 

수정: Pop_OS 는 grub을 사용하는것 같네요.

 

sudoedit /etc/default/grub

 

아래와 같은 라인이 있을겁니다.

 

GRUB_CMDLINE_LINUX="cryptdevice=UUID=<uuid>:<mountname>"

 

cryptdevice 파라미터 다음에 'allow-discards'옵션을 추가합니다. 아래는 제 컴퓨터의 예시입니다. (아마 당신은 컴퓨터에는 다른 UUID가 나올테고 cryptroot 끝부분에 뭔가 다른 내용이 더 있을수도 있을 겁니다. 하지만 신경쓰지 않아도 됩니다.)

 

GRUB_CMDLINE_LINUX="cryptdevice=UUID=c7a6faf2-ee6e-4a81-8737-38706edf717d:cryptroot:allow-discards"

 

그 다음 아래 명령어를 실행해서 grubcfg를 업데이트합니다.

 

sudo grub-mkconfig -o /boot/grub/grub.cfg

 

이 방법이 도움이 되었으면 좋겠습니다. 저는 Pop_OS에는 그다지 친숙하지 않지만 GRUB을 설정하는 것은 다른 배포판에서도 상당히 표준적인 절차입니다. 도움이 더 필요하다면 말씀해주세요!

 

하고 싶은 말이 조금 더 있습니다. '/etc/fstab'에 'discard' 옵션을 추가할 필요는 없습니다. 이 방법은 '지속적 TRIM'을 활성화할 것이며 리눅스가 설치된 SSD에서 데이터 손실/장애와 같은 문제를 일으킬 수 있습니다. GRUB에 'allow-discards'를 추가했다면 fstrim 명령을 실행하고 싶을 것입니다. 아래 명령으로 fstrim이 매주 실행되도록 설정할 수 있습니다. (정기적 TRIM이라고 합니다.)

 

sudo systemctl enable fstrim.timer

 

 

 

# [삭제됨] · 3년 전

 

Pop은 systemd 부트로더를 사용합니다.

 

 

 

# utopiaman99 · 3년 전

 

이 댓글이 많은 도움이 되었습니다!

 

현재 Pop_OS 버전은 부팅을 위해 systemd를 사용하고 있습니다. 인터넷을 좀 찾아본 결과 다음과 같이 설정했습니다:

 

sudo nano /boot/efi/loader/entries/Pop_OS-current.conf

 

그 다음 옵션 끝에 아래 내용을 추가했습니다.

 

rd.luks.options=discard

 

시스템 재시작 후 fstrim을 실행했지만 여전히 작동하지 않습니다. 실수한 부분은 없습니다. 혹시 더 설정할 부분이 있을까요?

 

 

 

utopiaman99 · 3년 전

 

방법을 알아냈습니다!

 

세 가지 수정해야 할 부분이 있고 확인해야 할 것이 있었습니다.

 

먼저 '/etc/crypttab' 을 수정하여 아래와 같이 discard옵션을 추가했습니다..

 

blablablalba none luks,discard

 

그 다음 '/etc/lvm/lvm.conf'에 다음 내용이 있는지 확인했습니다.

 

issue_discards = 1

 

그 다음 initramfs을 다시 빌드했습니다.

 

sudo update-initramfs -u

 

이렇게 처리하고 나자 정상적으로 작동했습니다!!!