紀錄工作經驗、相關知識,解決技術相關問題。

工作雜談, 資訊相關

SSD 4K 對齊檢查與 Windows TRIM 指令開啟教學:避免寫入放大與長期掉速

SSD 4K 對齊檢查與 Windows TRIM 指令開啟教學:避免寫入放大與長期掉速 特色圖片

每當我們為電腦換上新的 M.2 固態硬碟(特別是使用系統轉移軟體把舊硬碟資料直接對拷 Clone 到新 SSD 時),資深工程師一定會提醒你要順手檢查兩件事:「有沒有做好 SSD 4K 對齊?」 以及 「Windows 的 SSD TRIM 指令有沒有正常開啟?」。如果這兩項底層設定沒對上,你的高速 SSD 不僅隨機寫入效能可能下滑,還會造成額外的寫入放大(Write Amplification),白白消耗顆粒壽命。這篇教學將教你不用安裝任何第三方軟體,在 1 分鐘內用 Windows 內建工具完成檢查與啟用。

若你在檢查完這兩項設定後,仍覺得大檔案傳輸速度不如預期,可進一步閱讀 SSD 掉速原因與解決方法:解析 SLC Cache 用完掉速、過熱降頻與預留空間 (OP) 與 主機板上的 PCIe 規格怎麼看?顯示卡與 SSD 搭配與選購要點 核對硬體通道。

⚡ 快速跳轉(直達檢查指令與步驟):
免裝軟體 10 秒查對齊?跳至:用 Windows 內建 msinfo32 檢查 SSD 4K 對齊
直接複製終端機指令?跳至:一行 fsutil 指令查詢與開啟 Windows TRIM


一、什麼是 SSD 4K 對齊?為什麼「未對齊」會拖慢速度又折壽?

要理解 SSD 4K 對齊,只需要花 30 秒搞懂作業系統與固態硬碟底層「格子大小」的對應關係:

  1. 檔案系統的邏輯格子是 4KB(4,096 bytes),NAND 則以物理頁面(Page)為寫入單位:
    NAND Flash 以頁面為單位寫入、以區塊(Block)為單位抹除,頁面大小依顆粒設計而定;4KB 是 Windows NTFS 檔案系統預設的叢集(Cluster)大小,也是常見的邏輯區塊大小(進階格式化硬碟的實體磁區同樣是 4KB)。分割區起點沒有對齊時,邏輯 4KB 會跨越多個物理頁而產生額外的讀改寫。
  2. 歷史包袱造成的「錯位跨格」:
    早期的舊版磁碟分割規則(如 Windows XP 年代的 MBR 分割表)會固定從第 63 個舊扇區(63 × 512 bytes = 32,256 bytes)開始建立第一個磁區。偏偏 32,256 除以 4,096 等於 7.875(無法整除!)。
  3. 未對齊的後果 —— 寫 1 筆資料卻可能牽動多個物理頁面:
    一旦第一個起點歪了,後面的邏輯 4KB 格子會「一腳踩在這個物理 Page、另一腳跨在下一個物理 Page 上」。這時每當 Windows 只想寫入一筆小小的 4KB 檔案,SSD 主控就可能需要多做「讀取 ➔ 修改 ➔ 寫回(Read-Modify-Write)」,讓 4K 隨機寫入效能下滑,並增加額外寫入、加速顆粒抹寫損耗!
一、什麼是 SSD 4K 對齊?為什麼「未對齊」會拖慢速度又折壽?

圖:SSD 4K 對齊 vs 未對齊寫入差異 & Windows TRIM 指令運作機制圖解


二、實作教學:2 種方法檢查 SSD 4K 對齊(內建 msinfo32 與 PowerShell)

從 Windows Vista 開始,Windows 建立分割區時預設從 1MB(2,048 個 512 bytes 扇區)的位置起算,所以用 Windows 10 / Windows 11 安裝程式或內建「磁碟管理」建立的新分割區,起點都會落在 4K 的整數倍上;但如果你是透過舊版第三方備份還原工具把舊硬碟對拷(Clone)轉移過來的,請務必用以下任一種方法驗證:

方法 1(最推薦、免裝任何軟體):使用 Windows 內建「系統資訊 (msinfo32)」除以 4096

  1. 按下鍵盤快捷鍵 Win + R 打開「執行」視窗,輸入 msinfo32 並按下 Enter。
  2. 在左側樹狀選單依序點開:「元件」➔「存放裝置」➔「磁碟」。
  3. 在右側視窗找到你的 SSD,查看 「磁碟分割啟動 Offset」 這一欄的數字(單位為位元組):
    把這個數字拿去 除以 4096。
    只要除出來是「整數(沒有小數點)」,就代表 100% 已完成 4K 對齊!
    例如最常見的預設起始位移是 1,048,576 位元組(1,048,576 ÷ 4,096 = 256 整除),或是系統槽所在的分割區顯示 122,683,392(122,683,392 ÷ 4,096 = 29,952 整除),全部都是標準對齊狀態。實際數字依每台電腦的分割區配置而不同,重點是能不能整除。

方法 2:用 PowerShell 一行指令列出所有分割區是否 4K 對齊

打開 PowerShell 輸入以下指令,Get-Partition 回傳的 Offset 就是分割區起始位置(位元組),直接取 4096 的餘數判斷:

Get-Partition | Select-Object DiskNumber, PartitionNumber, DriveLetter, Offset, @{Name="Is4KAligned";Expression={($_.Offset % 4096) -eq 0}}

輸出範例如下(DriveLetter 空白的是 EFI 系統分割區、修復分割區等沒有磁碟代號的分割區):

DiskNumber PartitionNumber DriveLetter       Offset Is4KAligned
---------- --------------- -----------       ------ -----------
         2               1                  1048576        True
         2               2                105906176        True
         2               3           C    122683392        True

若輸出的 Is4KAligned 欄位全部顯示為 True,就代表所有磁碟分割區都已對齊;若出現 False,請先備份資料,再用 Windows 磁碟管理刪除並重新建立該磁碟區。


三、什麼是 SSD TRIM 指令?為什麼沒開 TRIM 會讓硬碟變成「髒碟」?

除了 4K 對齊之外,另一個決定固態硬碟能不能「用三年還像新買一樣快」的靈魂機制,就是 SSD TRIM 指令(在 NVMe 規範中對應為 Dataset Management - Deallocate 指令)。

為什麼 SSD 需要 TRIM?

  1. Windows 刪除檔案時其實「只改目錄、沒動硬碟」:
    當你在 Windows 把一個 50GB 的遊戲丟進資源回收筒並清空時,作業系統為了追求快,只會在自己的 NTFS 檔案目錄表上把那塊區域標記為「可覆寫」,並不會主動告訴硬碟「那些格子裡的資料不要了」。
  2. 沒有 TRIM 的災難(寫入前被迫現場大掃除):
    對傳統機械硬碟(HDD)來說這沒問題,因為磁頭可以直接覆寫舊磁軌;但 SSD 的 NAND Flash 顆粒「絕對不能直接覆寫,必須先抹除(Erase)整個 Block 才能寫入新資料」!如果沒有開啟 TRIM,SSD 主控會以為那些被你刪掉的 50GB 檔案還是重要資料,不敢動它;等到下次你要寫入新檔案時,主控才被迫「先把整個舊區塊讀出來 ➔ 抹除乾淨 ➔ 再寫入新資料」,導致寫入速度明顯下降(俗稱變成「髒碟」)。
  3. 開啟 TRIM 後的順暢運作:
    當 TRIM 開啟時,每當你刪除檔案並釋放空間,Windows 就會發送 TRIM 通知給 SSD 主控:「這幾個邏輯位址的檔案使用者已經刪掉了!」實際清除的時機由 SSD 韌體決定,主控通常會趁電腦閒置時在背景整理那些區塊(Garbage Collection),等你下次要寫大檔案時就能直接全速寫入!

四、實作教學:一行指令查詢與開啟 Windows SSD TRIM 功能

想要確認你的 Windows 10 / Windows 11 目前有沒有開啟 SSD TRIM,請按照以下步驟操作:

步驟 1:以系統管理員身分打開終端機(PowerShell 或命令提示字元)

在開始按鈕上按右鍵(或按 Win + X),從選單中選擇以系統管理員身分開啟的終端機或 PowerShell,輸入以下查詢指令並按 Enter:

fsutil behavior query DisableDeleteNotify

步驟 2:判讀回傳數值(注意:0 才是已開啟!)

因為參數名稱叫做 DisableDeleteNotify(停用刪除通知),所以雙重否定下,0 代表「不禁用=已開啟 TRIM」:

終端機回傳訊息代表的實際狀態後續操作建議
NTFS DisableDeleteNotify = 0✅ TRIM 功能已正常開啟!無須任何修改,系統會在刪除檔案時送出 TRIM 通知
NTFS DisableDeleteNotify = 1❌ TRIM 功能被關閉了!請執行下方 set 0 指令重新開啟

輸出通常還會多一行 ReFS DisableDeleteNotify,那是 ReFS 檔案系統的設定,一般用 NTFS 的系統碟看 NTFS 這一行即可。數值為 0 時,後面的括號說明會寫 Allows TRIM operations to be sent to the storage device。

如果回傳結果顯示為 1,請直接在同一個管理員終端機視窗輸入以下指令強制開啟 TRIM:

# 將 DisableDeleteNotify 設為 0,即正式啟用 SSD TRIM 指令
fsutil behavior set DisableDeleteNotify 0

步驟 3:手動觸發一次全碟 Re-TRIM(幫用久的 SSD 大掃除恢復速度)

如果你發現先前 TRIM 沒開、或是剛刪除了幾百 GB 的大型專案想讓 SSD 立刻恢復滿血的 SLC 快取空間,可以在檔案總管對著 C 槽或 D 槽按右鍵 ➔「內容」➔「工具」分頁 ➔ 點擊 「最佳化」 開啟「最佳化磁碟機」視窗,選取該 SSD 後再按一次 「最佳化」。對支援 TRIM 的 SSD,Windows 預設執行的是 Re-TRIM(對磁碟區所有未使用的磁區重新送出 TRIM 通知),而不是傳統機械硬碟的磁碟重組。

偏好用指令的話,在系統管理員 PowerShell 執行以下指令,效果相同(C 換成你的磁碟代號):

Optimize-Volume -DriveLetter C -ReTrim -Verbose

五、常見問題(Q&A)

Q1:固態硬碟(SSD)需要定期執行傳統的「磁碟重組(Defragment)」嗎?

絕對不要對 SSD 使用第三方傳統磁碟重組工具! 傳統機械硬碟(HDD)需要磁碟重組,是因為要把分散的檔案排在一起減少讀寫頭移動時間;但 SSD 是透過電子訊號定址,檔案散落在哪裡讀取時間都差不多快。如果硬對 SSD 跑傳統磁碟重組,只會把幾百 GB 的檔案搬來搬去,白白消耗寶貴的 TBW 抹寫壽命(關於 TBW 計算與壽命檢查,可參考 SSD 健康度檢查與 TBW 壽命計算:為什麼新買掉到 99%?S.M.A.R.T. 0E 指標判讀)。

Q2:開啟 TRIM 之後,如果不小心誤刪檔案並清空了資源回收筒,還救得回來嗎?

這就是開啟 TRIM 唯一需要留意的雙面刃特性:在傳統硬碟(HDD)上誤刪檔案,只要還沒被新檔案覆蓋,救援軟體通常還有機會救回;但在已開啟 TRIM 的內接 SSD 上,檔案刪除並釋放空間後,Windows 會送出 TRIM,SSD 韌體之後可能在背景清除該區塊,救援軟體讀到的內容可能是全 0,救回機率會大幅下降! 因此重要工作檔案請務必養成備份習慣,搭配 NAS、外接碟或雲端備份(RAID 不是備份,可參考 什麼是 RAID 0,1,5,6? RAID 初學者入門介紹 了解其用途)。


總結

完成新固態硬碟安裝或系統轉移後,只要花 1 分鐘完成這兩個檢查,就能確保 SSD 長期維持出廠巔峰速度:

  1. 檢查 SSD 4K 對齊:打開 msinfo32 確認「磁碟分割啟動 Offset」可被 4096 整除(或用 PowerShell 檢查 Offset % 4096 -eq 0),避免跨頁造成的額外寫入。
  2. 檢查 Windows TRIM:在管理員終端機執行 fsutil behavior query DisableDeleteNotify,確認數值為 0(已開啟),並保留一定的剩餘空間,讓主控晶片隨時擁有充裕的乾淨區塊。

參考資料與延伸閱讀

發佈留言