# hiberfil.sys 和 pagefile.sys 佔了 C 槽，能不能縮小

在檔案總管裡顯示隱藏的檔案，再取消勾選「隱藏保護的作業系統檔案」，C 槽根目錄會多出兩個不小的檔案，`hiberfil.sys` 和 `pagefile.sys`。記憶體越大它們通常越大。按預設比例，32 GB 記憶體的電腦上單是休眠檔就有大約 12.8 GB。它們都在被系統使用，按右鍵刪不掉。網路上常見的做法是直接關掉休眠，或者把虛擬記憶體設成無分頁檔。空間確實能回來，但先要知道這樣會丟掉什麼。

## hiberfil.sys 裡存的是什麼

`hiberfil.sys` 是休眠檔。選擇休眠時，Windows 把記憶體裡的狀態寫進去再斷電，下次開機讀回來，開啟的軟體還在原處。很多從不用休眠的電腦上它也在，因為快速啟動要用到它。開著快速啟動時，關機會先登出你的工作階段，再把系統核心的狀態寫進這個檔，下次冷啟動從這裡讀，比從頭啟動快。

微軟的[系統電源狀態說明](https://learn.microsoft.com/en-us/windows/win32/power/system-power-states)把休眠檔分成兩種。完整類型預設約為記憶體的 40%，支援休眠、混合式睡眠和快速啟動。縮減類型約為記憶體的 20%，只支援快速啟動。

## 關掉休眠和改成縮減類型，差在哪裡

以系統管理員身分執行 `powercfg /h off` 會刪掉 `hiberfil.sys`。休眠、混合式睡眠和快速啟動會一起停用。[微軟的說明](https://learn.microsoft.com/en-us/troubleshoot/windows-client/setup-upgrade-and-drivers/disable-and-re-enable-hibernation)還提醒，混合式睡眠不能用以後，睡眠中途斷電可能丟掉沒儲存的內容。

如果你只想留下快速啟動，平時也不用休眠，可以把類型改成縮減：

```cmd
powercfg /h /type reduced
```

按 40% 和 20% 的比例算，32 GB 記憶體的電腦上，休眠檔大約從 12.8 GB 變成 6.4 GB，能收回 6 GB 左右。代價是電源功能表裡不再有休眠。筆記型電腦合蓋放著不充電時，也不會再轉進休眠保存現場。以前用 `/size` 指定過大小的，[powercfg 的說明](https://learn.microsoft.com/en-us/windows-hardware/design/device-experiences/powercfg-command-line-options)要求先執行 `powercfg /h /size 0` 交回系統管理，再改類型。如果只是改成了縮減類型，以後用下面這條恢復完整類型。如果之前關掉了休眠，先以系統管理員身分執行 `powercfg /h on` 重新啟用，再恢復類型：

```cmd
powercfg /h /type full
```

## pagefile.sys 不要整個關掉

`pagefile.sys` 是分頁檔。記憶體吃緊時，Windows 把不常用、而且改動過的記憶體頁寫到這裡。系統當機時產生傾印檔也要靠它。[微軟的分頁檔說明](https://learn.microsoft.com/en-us/troubleshoot/windows-client/performance/how-to-determine-the-appropriate-page-file-size-for-64-bit-versions-of-windows)寫得很直接：既沒有分頁檔也沒有專用傾印檔時，損毀傾印就產生不出來。關掉分頁檔以後，系統能承諾給程式的記憶體上限會降到比實體記憶體還少一點。記憶體再大，程式要求得多了也一樣會失敗。

預設的系統管理大小會按記憶體、損毀傾印設定和實際用量自動增減，通常以記憶體的 3 倍和 4 GB 裡較大的那個為上限，再受所在磁碟八分之一的限制。但為了滿足損毀傾印要求，可以繼續增長到磁碟只剩 1 GB 可用空間。看到很大的 `pagefile.sys`，要結合記憶體需求、歷史用量和傾印設定判斷，不能只憑大小認定原因。

## 把分頁檔移到另一顆磁碟

電腦裡有第二顆內建硬碟時，可以在那邊加一個分頁檔。C 槽先交給系統管理（保留「系統管理的大小」），只有按所選損毀傾印類型設定並驗證了替代方式以後，才縮小或取消 C 槽這份。D 槽的檔案夠大，不代表傾印就一定能產生。[完整記憶體傾印](https://learn.microsoft.com/en-us/windows-hardware/drivers/debugger/complete-memory-dump)對開機磁碟有要求，專用傾印檔也需要另行設定。

1. 按 `Win + R`，輸入 `sysdm.cpl` 開啟系統內容。
2. 在「進階」頁的「效能」一欄點「設定」，再切到「進階」頁，點「虛擬記憶體」下的「變更」。
3. 取消勾選「自動管理所有磁碟的分頁檔大小」。
4. 選取 D 槽，選「系統管理的大小」，點「設定」。
5. 替代的傾印設定沒有驗證前，C 槽保留「系統管理的大小」。確定後按提示重新啟動。

D 槽加了分頁檔，並不會自動釋放 C 槽空間。確實需要縮小 C 槽這份時，先按微軟的說明設定專用傾印檔，核對所選傾印類型的要求，不然下次藍屏可能拿不到排查線索。外接硬碟、隨時可能拔掉的磁碟，都不適合放分頁檔。

| 檔案 | 用途 | 想收回空間時 | 要留意的 |
| --- | --- | --- | --- |
| `hiberfil.sys` | 休眠、混合式睡眠與快速啟動 | `powercfg /h /type reduced` | 縮減後不能再休眠 |
| `pagefile.sys` | 分頁與損毀傾印 | 驗證傾印設定後再考慮搬移 | 驗證前 C 槽保留系統管理 |

<figure class="blog-diagram">
  <picture>
    <source media="(max-width: 900px)" srcset="/img/blog/windows-hiberfil-pagefile-c-drive-windows-zh-mobile.webp" type="image/webp" width="768" height="1180">
    <img src="/img/blog/windows-hiberfil-pagefile-c-drive-windows-zh.webp" width="1360" height="454" loading="lazy" alt="兩種休眠檔與分頁檔的用途">
  </picture>
  <figcaption>完整休眠檔支援休眠與快速啟動，縮減類型只留快速啟動。分頁檔同時承擔換頁和損毀傾印。</figcaption>
</figure>

## 改完以後怎麼核對

重新啟動一次再按自己的選擇核對。改成縮減類型後看 `hiberfil.sys` 是否變小，關閉休眠後它才會消失。C 槽保留了分頁檔時，`pagefile.sys` 仍會在那裡。再回虛擬記憶體設定確認各磁碟機設定，並在儲存空間頁查看可用空間變化。之後照常用幾天，開機、合蓋和平時用的大型軟體是否正常，比當場看到的空間數字更能說明問題。還想繼續找大檔，可以接著看 [C 槽大檔查找](/tw/windows/blog/find-large-files-on-windows) 和 [Windows 記憶體佔用](/tw/windows/blog/windows-high-memory-usage)。


Canonical: https://mole.fit/tw/windows/blog/hiberfil-pagefile-c-drive-windows
