Windows 更新檔案怎麼刪,刪了會失去什麼
大家說的「Windows 更新檔案」其實不是一個資料夾。一台普通電腦上通常有四堆:元件存放區裡被取代的舊版本元件,C:\Windows\SoftwareDistribution\Download 裡的下載快取,功能更新以後留在 C:\Windows.old 的上一版系統,還有拿來和其他電腦分享更新的傳遞最佳化快取。它們各有各的清理入口,代價也差得很遠。有的刪了幾乎沒影響,有的刪了就再也回不到上一個 Windows 版本。
先給結論。要空間就用磁碟清理或設定裡的入口。SoftwareDistribution 留給修復卡住的更新,不當成省空間的地方。Windows.old 等新系統用穩了再刪。
四個位置,四種代價
| 位置 | 裡面是什麼 | 用什麼清理 | 清掉以後失去什麼 |
|---|---|---|---|
| Windows 更新清理 | 元件存放區裡已更新元件的舊版本 | 磁碟清理裡的「清理系統檔案」 | 這些元件提前失去回復餘地 |
SoftwareDistribution\Download |
Windows 更新下載下來的安裝套件 | 按微軟的重設步驟,先停止服務 | 還沒裝的更新要重新下載 |
Windows.old |
升級前的那一版 Windows | 設定裡的暫存檔 | 修復頁裡的「返回」選項 |
| 傳遞最佳化快取 | 留著分享給別的電腦的更新和應用程式下載 | 磁碟清理,或者等它自己清 | 區域網路裡的其他電腦改從網際網路下載 |
刪之前先量一下
開啟設定 › 系統 › 儲存空間,點「暫存檔」。Windows 會按類別列出大小。先看清更新相關的幾項到底佔了多少。如果 C 槽是被遊戲庫或者影片專案塞滿的,清幾百 MB 更新快取解決不了問題。
元件存放區那一塊,檔案總管給 C:\Windows\WinSxS 算出來的數字因為硬式連結會偏大很多。怎麼用 DISM 量出真實開銷,WinSxS 清理那篇已經講過,這裡不重複。
磁碟清理裡的「Windows 更新清理」
四種裡通常先試這一種。它仍會提前結束被清理元件的回復窗口:
- 在工作列搜尋「磁碟清理」並開啟。
- 選系統磁碟機,點確定。
- 點「清理系統檔案」,再選一次系統磁碟機,點確定。
- 勾選「Windows 更新清理」,點確定,再點「刪除檔案」。
微軟的元件存放區說明寫明這一項會縮小元件存放區。Windows 平時也會按排程做類似的清理。一些元件的舊版本會保留一段時間,方便出問題時回復,過了這段時間再自動移除。自己動手清理只是把這一步提前了。
代價就是這段回復餘地。剛裝完一個大的累積更新,印表機、驅動程式和常用軟體還沒確認正常的時候,先等幾天再清。更激進的 DISM 參數 /ResetBase 會讓已裝的更新都不能再解除安裝。WinSxS 那篇講了它。用磁碟清理不需要碰它。
SoftwareDistribution\Download 是修復用的,不是省空間用的
C:\Windows\SoftwareDistribution\Download 是 Windows 更新存放已下載安裝套件的地方。正常更新時由系統自己管理,大塊空間一般也不藏在這裡。清空它是給下載或安裝反覆失敗的更新做修復。微軟也是按修復步驟來介紹的。
微軟的重設說明先建議跑 Windows 更新疑難排解,還不行再手動處理。第一步是停掉佔用這些檔案的服務,免得一邊處理資料夾一邊有程式往裡寫。以系統管理員身分開啟命令提示字元:
net stop bits
net stop wuauserv
net stop cryptsvc
微軟的做法是把資料夾改名而不是直接刪除,並且說明只有前面的重設步驟都沒解決問題時才做這一步:
Ren %Systemroot%\SoftwareDistribution\DataStore DataStore.bak
Ren %Systemroot%\SoftwareDistribution\Download Download.bak
Ren %Systemroot%\System32\catroot2 catroot2.bak
處理完再把服務啟動回來:
net start bits
net start wuauserv
net start cryptsvc
改名能把舊內容留到確認更新恢復正常為止。Windows 更新會建新的資料夾,重新下載還需要的部分。等設定 › Windows 更新裡能順利裝上更新,再刪掉那幾個 .bak 資料夾。同一篇文章裡還有一個「實在不行」的簡短寫法,會刪掉整個 SoftwareDistribution,連 DataStore 也一起刪,不只是下載內容。它被放在最後一步,就按最後一步對待。
最該避免的是 Windows 更新還在執行時直接刪這個資料夾。被佔用的檔案刪不掉,正在下載的內容也可能斷在一半。
Mole for Windows 的最佳化頁裡有一個範圍更窄的同類修復,叫「重設卡住的更新下載」。只有同一個更新在最近 30 天裡連續至少兩次安裝失敗才會出現。Windows 正在安裝更新或者等待重新啟動時不做。30 天內最多做一次。它會停掉 Windows 更新和 BITS,只清空 Download 資料夾,再把原來在執行的服務啟動回來。不動 DataStore、catroot2,也不改更新設定和原則。
Windows.old 和 10 天期限
升級系統或者裝完功能更新以後,上一版系統會放在 C:\Windows.old。設定 › 系統 › 修復裡的「返回」就靠它。微軟的退回說明寫著,大多數情況下有 10 天時間。想要退回,需要保留 windows.old 和 $windows.~bt 兩個資料夾,刪掉升級後新加的使用者帳戶。升級時用過 USB 隨身碟的話還要準備好那個隨身碟。退回會保留個人檔案,但升級後裝的軟體和驅動程式會被移除。
很多時候根本不用自己刪。微軟的刪除說明寫明升級 10 天後舊版本會被自動刪除。想提前刪,就去設定 › 系統 › 儲存空間 › 暫存檔,勾選「先前版本的 Windows」,點「刪除檔案」。同一頁也提醒了,刪了就不能復原。
動手之前,先把可能讓你想退回的事情過一遍。常用軟體能不能開啟,印表機能不能列印,VPN 能不能連上,在意的檔案是不是已經在自己的使用者資料夾裡,而不是只躺在 Windows.old 裡。文件備份替代不了這一步檢查,因為「返回」恢復的是系統,不是你的檔案。
傳遞最佳化快取
傳遞最佳化讓電腦可以從區域網路裡的其他電腦下載 Windows 更新和應用程式市集的更新。允許的話也可以從網際網路上的電腦下載,同時把自己下載過的內容分享出去。微軟的傳遞最佳化說明寫著,快取會在一小段時間後或者佔用太多空間時自動清理。想提前清,就在磁碟清理裡勾選「傳遞最佳化檔案」。
「一小段時間」具體是多久,傳遞最佳化參考文件給了預設值。單一檔案最多保留三天,快取最多佔可用空間的 20%。清掉它代價很小。Windows 更新安裝用的是自己的下載。別的電腦會改從微軟下載,不再從你這裡拿。想改這台電腦要不要分享,去設定 › Windows 更新 › 進階選項 › 傳遞最佳化。
Mole 的清理頁會把這塊快取列成「傳遞最佳化檔案」。Mole 是請傳遞最佳化服務自己刪除已經下載完成的檔案。還在下載的和被固定保留的都不碰,也不會去取得這個服務資料夾的擁有權。
清完怎麼核對
- 再開啟一次磁碟清理或暫存檔,和清理前的各項大小對比。
- 開啟設定 › Windows 更新,點「檢查更新」,能正常搜尋和安裝。
- 開啟設定 › 系統 › 修復,刪掉
Windows.old以後「返回」不見了是正常的。如果其實還需要它,已經找不回來了。
不要這樣做
- 不要手動刪
WinSxS裡的檔案,也不要從 TrustedInstaller 手裡奪權強刪。 - 不要在 Windows 更新服務執行時刪
SoftwareDistribution,也不要把它當成日常清理空間的地方。 - 不要因為
Windows.old大,升級後頭幾天就把它刪了。 - 不要為了讓這些資料夾別再變大就停用 Windows 更新或 BITS 服務。那樣安全性更新也一起停了。
C 槽還有別的東西在佔空間,可以接著看 C 槽空間分類排查 和 找出大檔。元件存放區那一塊的取捨見 WinSxS 資料夾清理。給回復和檔案復原留後路的辦法見 Windows 還原點和檔案備份。
常見問題
Windows 更新檔案可以刪嗎?
可以,只要用 Windows 內建的入口:磁碟清理裡的「Windows 更新清理」和「傳遞最佳化檔案」,以及暫存檔裡的「先前版本的 Windows」。代價是元件更早失去回復餘地。刪 Windows.old 則表示不能再用「返回」。
SoftwareDistribution 資料夾能刪嗎?
只建議在更新反覆失敗時當作修復來做,而且要先停掉 Windows 更新服務。微軟的步驟是把 Download 和 DataStore 改名而不是刪除,等更新恢復正常再刪掉改名後的複本。
Windows.old 會在電腦上留多久?
大多數情況下是升級後 10 天,之後 Windows 會自動刪除它,「返回」選項也隨之消失。
刪除傳遞最佳化檔案會影響更新嗎?
不會。這些是留著分享給其他電腦的複本。Windows 更新再需要某個檔案時會從微軟下載。這塊快取本身過幾天也會自動清理。