管理元件存放區

「為什麼 WinSxS 太大?」 已由許多 Windows 使用者要求。 雖然此問題已在部落格文章中討論過,但本主題會進一步詳細說明元件存放區背後的概念, (特別是 WinSxS 資料夾) ,然後提供主題的連結,以醒目提示如何更妥善管理 WinSxS 資料夾的大小。

簡短的答案是 WinSxS 資料夾不如第一眼出現,因為大小計算可以包含位於其他位置的 Windows 二進位檔,讓 WinSxS 資料夾看起來比實際大。

Windows 元件存放區和 WinSxS 資料夾

WinSxS 資料夾位於 Windows 資料夾中,例如 c:\Windows\WinSxS。 這是 Windows 元件存放區檔案的位置。 Windows 元件存放區可用來支援自訂和更新 Windows 所需的功能。 以下是如何使用 Windows 元件存放區檔案的一些範例:

  • 使用 Windows Update 來安裝新的元件版本。 這可讓系統保持安全且最新狀態。

  • 啟用或停用 Windows 功能。

  • 使用 伺服器管理員 新增角色或功能。

  • 在不同的 Windows 版本之間移動系統。

  • 從損毀或開機失敗進行系統復原

  • 卸載有問題的更新

  • 使用並存元件執行程式

Windows 元件存放區最初是在 Windows XP 中引進,以支援並存元件。 從 Windows Vista 開始,元件存放區已增強,可追蹤及服務組成作業系統的所有元件。 這些不同的作業系統元件會追蹤物件,例如檔案、目錄、登錄機碼和服務。 接著,特定版本的元件會一起收集到封裝中。 Windows Update和 DISM 會使用套件來更新 Windows。 Windows 元件存放區會處理 Windows 安裝中使用的元件和套件。 判斷 Windows 元件存放區的大小很複雜,因為 Windows 使用稱為 硬式連結的技術,Windows 會從 Windows 元件存放區外部的目錄使用許多檔案。 在這種情況下,來自元件版本的檔案會出現在 Windows 元件存放區內外。 藉由使用 硬式連結 Windows,就能夠保留相同檔案的多個複本,而不需要實際佔用多個複本的額外空間。

硬式連結是檔案系統物件,可讓兩個檔案參考磁片上的相同位置。 這表示一個以上的檔案可以參考相同的資料,以及一個檔案中該資料的變更會反映在其他檔案中。 這會使目錄大小的概念複雜化,如下列範例所示:

  1. 目錄 A 有三個檔案:1.txt、2.txt和3.txt

  2. 目錄 B 有一個檔案:4.txt

  3. 檔案1.txt和2.txt會硬式連結在一起,且包含 1 MB 的資料。

  4. 檔案3.txt和4.txt也會硬式連結在一起,並包含 2MB 的資料。

硬式連結範例

在此範例中,您可以看到硬式連結可讓多個檔案參考相同的資料集。

現在目錄 A 的大小為何?

答案取決於您打算使用目錄 A 執行的動作:

  1. 如果您讀取目錄中的檔案 A,則讀取的所有檔案大小都是每個檔案大小的總和。 在此範例中,這會是 4 MB。

  2. 如果您將所有檔案從目錄 A 複製到新位置,則複製的資料量就是所有從檔案硬式連結的資料總和。 在此範例中,這會是 3 MB。

  3. 如果您嘗試藉由刪除目錄 A 來釋放空間,則只會看到只有目錄 A 所硬式連結的檔案大小縮減。在此範例中,這會節省 1 MB 的費用。

回到 Windows 元件存放區使用多少空間的問題,特別是 WinSxS 資料夾。 目錄中的第三個答案 A 範例最接近使用的額外空間。 系統作業需要與系統其餘部分連結的檔案,因此不應該計算它們,而且元件存放區內多個位置的硬式連結檔案應該只儲存在磁片計數上的大小。

管理 Windows 元件存放區

您可以使用 Windows 8.1 和 Windows Server 2012 R2 中的新功能來管理 Windows 元件存放區:

判斷 WinSxS 資料夾的實際大小

清除 WinSxS 資料夾

減少離線 Windows 映像中的元件存放區大小

我的空間在哪裡? (部落格文章)

更多關於硬式連結

NTFS 中繼檔部落格文章