우분투에서 SSD의 TRIM 활성화 방법

솔리드 스테이트 드라이브(SSD)를 사용하고 있다면, 이와 관련하여 조각 모음이나 비어 있는 공간 통합 소프트웨어를 실행하지 않아야 한다는 것을 아실 겁니다. 그렇다면 SSD를 어떻게 정리하고 빈 공간을 확보할까요? TRIM은 운영 체제에 청소 작업을 하도록 알리는 데 사용하는 명령입니다. 윈도우 11에서는 fsutil 명령어를 통해 TRIM을 수동으로 실행할 수 있습니다. 하지만 우분투에서는 어떻게 할까요? 우분투에서 SSD의 TRIM을 어떻게 활성화할 수 있을까요?
참고: 다음 단계는 파티션을 암호화한 경우 작동하지 않습니다.
목차
- SSD에 대해 TRIM 크론 작업 생성하기
- fstab에서 분할 옵션 사용하기
- 자주 묻는 질문
SSD에 대해 TRIM 크론 작업 생성하기
- 컴퓨터의 SSD가 TRIM을 지원하는지 확인하려면 터미널을 열고 다음을 입력하세요:
sudo hdparm -I/dev/sda
우분투가 SSD의 첫 번째 파티션에 설치되어 있지 않다면, sda를 우분투가 있는 파티션에 맞게 변경하세요. 이를 위해 lsblk를 실행하면 됩니다.

- 목록을 아래로 스크롤하여 “지원됨” 섹션을 찾습니다. 그 아래로 더 스크롤하면 “ 데이터 세트 관리 TRIM 지원(제한 8 블록)”와 같은 문구가 보인다며, 그러면 SSD에 대해 TRIM이 지원되는 것입니다.

- 우분투에서 TRIM 기능이 작동하는지 확인합니다. 터미널에서 다음을 입력하세요:
sudo fstrim -v/이 명령은 SSD의 루트 파티션을 정리합니다. 성공하면 다음 이미지와 비슷한 내용을 볼 수 있습니다.

- 운영 체제가 매일 한 번 TRIM 명령을 실행하도록 크론 작업을 설정합니다.
sudonano/etc/cron.daily/trim- 빈 공간에 다음 코드를 붙여넣습니다:
#!/bin/sh
fstrim -v/- 만약 HOME 디렉토리가 다른 파티션에 위치해 있다면, 위 코드의 끝에 추가 줄을 추가할 수 있습니다:
fstrim -v/home >>$LOG- 출력을 로그 파일에 저장하려면 다음 코드를 사용하세요:
#!/bin/sh
LOG=/var/log/trim.log
echo"* $(date -R) *">>$LOG
fstrim -v/>>$LOG
fstrim -v/home >>$LOG
저장(Ctrl + O)하고 종료(Ctrl + X)합니다.
크론 작업을 실행 가능하도록 만듭니다:
sudochmod a+x /etc/cron.daily/trim
알아두면 좋은 것: 크론은 리눅스에서 작업을 자동화하는 데 도움을 줄 수 있는 훌륭한 유틸리티입니다. 작동 방식과 자신의 프로그램에 어떻게 사용할 수 있는지 알아보세요.
fstab에서 분할 옵션 사용하기
fstrim을 수동으로 호출하는 것 외에도 시스템을 구성하여 디스크에서 사용하지 않는 빈 공간을 지속적으로 “버리도록” 할 수 있습니다. 특히 노트북을 사용하고 있어 컴퓨터를 항상 켜두고 싶지 않은 경우 유용할 수 있습니다.
- 루트 파티션의 UUID 값을 확인합니다:
ls-l/dev/disk/by-uuid
- 좋아하는 텍스트 편집기를 사용하여 “/etc/fstab” 파일을 엽니다. 제 경우에는 GNU Nano를 사용하고 있습니다:
sudonano/etc/fstab- Ctrl + W를 눌러 루트 파티션의 “/etc/fstab” 항목을 찾고, UUID 값을 입력하세요.

- 루트 파티션 항목으로 가서 “errors=remount-ro” 옵션 앞에
discard,noatime,를 입력합니다. 예를 들어, 제 “/etc/fstab” 파일의 루트 파티션 항목은 다음과 같습니다:
#
UUID=xxx / ext4 discard,noatime,errors=remount-ro 01
[...]
- Ctrl + O를 눌러 새 “/etc/fstab” 파일을 저장한 다음 Ctrl + X를 누릅니다.

- 마지막으로 새로운 설정을 적용하기 위해 기계를 재부팅합니다.

참고: TRIM은 SSD의 모든 빈 공간을 삭제하지만, 그 자체로는 데이터 복구 프로그램으로부터 데이터 보호를 해주지 않습니다. 간단한 명령줄 도구만으로 데이터를 안전하게 삭제하는 방법도 배워보세요.
자주 묻는 질문
SSD에서 fstrim과 discard를 동시에 사용할 수 있나요?
네. 그러나 그렇게 해도 눈에 띄는 개선이 이루어지지 않으며 SSD의 수명에도 영향을 미치지 않습니다. fstrim과 discard 모두 사용하지 않는 빈 블록을 삭제할 때 유사한 TRIM 루틴을 사용하기 때문입니다.
이 점을 감안할 때, fstrim과 discard는 한 가지 주요한 점에서 다릅니다: 빈도수입니다. fstrim은 모든 사용하지 않는 블록을 쌓은 후 “해제”하는 반면, discard는 블록이 사용되지 않게 되면 즉시 “해제”합니다. 이는 discard가 항상 fstrim보다 더 많은 시스템 리소스와 디스크 I/O를 차지하게 만듭니다.
/etc/fstab 파일에 루트 파티션의 UUID가 없습니다.
이는 대부분 하드웨어 RAID 카드 또는 논리 볼륨 관리(LVM) 유틸리티를 사용하는 시스템 때문입니다. 기본적으로 TRIM은 전통적인 디스크 파티션 및 ext4와 같은 파일 시스템을 사용하는 시스템에서만 작동합니다.
그럼에도 불구하고 일부 LVM 프로그램은 TRIM을 수행하는 유용한 옵션을 제공합니다. 우분투에서는 “/etc/lvm/lvm.conf” 파일에 issue_discards = 1을 추가하여 사용하지 않는 빈 블록을 자동으로 TRIM할 수 있습니다.
fstrim 명령의 빈도를 변경할 수 있나요?
네. 기본적으로 리눅스는 fstrim을 사용할 때 세밀하게 조정할 수 있는 여러 타이머 파일을 제공합니다. 예를 들어, sudo mv /etc/cron.daily/trim /etc/cron.weekly/trim을 실행하여 TRIM 빈도를 매일에서 매주로 변경할 수 있습니다.
이미지 출처: Unsplash. 모든 수정 및 스크린샷은 Ramces Red에 의해 제작되었습니다.