Linux下有關外接SSD的TRIM支援
阿新 • • 發佈:2021-10-29
前言
電腦升級換下一塊128GB的M.2介面SSD,使用SATA協議,計劃使用外接硬碟盒子轉為移動固態使用。
開始想當然格式化為exfat格式,方便Linux/MacOS/Windows傳檔案,使用一段時間後寫入速度越來越慢。
上網一查,果然低端硬碟盒主控不支援TRIM沒轍重買……這裡提醒一下:
全網最便宜JMS580方案支援TRIM的盒子售價大約在49元,低於這個價格的JMS576不帶TRIM注意甄別。
後續
更換硬碟盒,檢視旋轉flag成功變為0識別資訊也由普通磁碟變為SSD圖示。
$ lsblk -o NAME,ROTA /dev/sdb NAME ROTA sdb 0 └─sdb1 0
再次檢查磁碟是否支援垃圾回收:
$ lsblk --discard /dev/sdb
NAME DISC-ALN DISC-GRAN DISC-MAX DISC-ZERO
sdb 0 4K 4G 0
└─sdb1 0 4K 4G 0
可以看到正常支援,但無法呼叫fstrim
進行垃圾回收
$ sudo fstrim -v /Data
fstrim: /Data: the discard operation is not supported
百思不得其解。
思考
對比了內建的固態硬碟,懷疑是exfat檔案系統的問題。
開始求證,最終在ArchWiki找到了答案
for exFAT, fstrim is supported since kernel 5.13
相比更新5.13核心,還是把SSD格式化為ext4更快……
果然,使用ext4格式後,順利TRIM速度也恢復正常。
參考
USB - SATA-USB Bridge Controller-Products-JMicron-Leading the storage revolution!
Enable Trim on an External SSD on Linux [Glump.net]
Solid state drive - ArchWiki
kernel/git/torvalds/linux.git - Linux kernel source tree