找出並修正NTFS磁碟區上的磁碟空間問題

本文討論如何檢查 NTFS 檔系統的磁碟空間配置,以探索違規的檔案和資料夾,或在以 Microsoft Windows Server 2003 為基礎的計算機中尋找磁碟區損毀。

適用於:Windows Server 2003
原始 KB 編號: 814594

摘要

NTFS 支援許多磁碟區和檔案層級功能,這些功能可能會導致看似遺失或不正確回報的可用磁碟空間。 例如,NTFS 磁碟區可能會因為任何原因突然變成已滿,且系統管理員找不到原因或找不到違規的資料夾和檔案。 如果發生惡意或未經授權的NTFS磁碟區存取,其中已複製大型檔案或大量小型檔案,就可能發生此情況。 這些檔案接著會移除或限制其NTFS許可權。 此行為也可能發生在電腦故障或電源中斷導致磁碟區損毀之後。

NTFS 磁碟區的磁碟空間配置可能因為下列任何原因而似乎不回報:

  • NTFS 磁碟區的叢集大小對於儲存在該處的平均大小檔案而言太大。
  • 文件屬性或 NTFS 許可權可防止 Windows 檔案總管或 Windows 命令提示字元顯示或存取檔案或資料夾。
  • 資料夾路徑超過 255 個字元。
  • 資料夾或檔案包含無效或保留的檔名。
  • NTFS 元檔 (例如主要檔案資料表) 已成長,您無法取消配置。
  • 檔案或資料夾包含替代數據流。
  • NTFS 損毀會導致可用空間回報為使用中。
  • 其他NTFS功能可能會造成檔案配置混淆。

下列資訊可協助您優化、修復或進一步瞭解NTFS磁碟區如何使用磁碟空間。

叢集大小太大

只有包含主要檔案數據表 (MFT) 、資料夾索引等內部 NTFS 元檔的檔案和資料夾可以取用磁碟空間。 這些檔案和資料夾會使用叢集的倍數來取用所有檔案空間配置。 叢集是連續扇區集合。 叢集大小是由磁碟區格式化時的數據分割大小所決定。

建立檔案時,根據初始檔案大小,它會耗用最少的單一磁碟空間叢集。 當數據稍後新增至檔案時,NTFS 會以叢集大小的倍數增加檔案的配置。

若要判斷目前的叢集大小和磁碟區統計數據,請從命令提示字元執行只讀 chkdsk 命令。 若要這樣做,請遵循下列步驟:

  1. 按兩下 [開始],按兩下 [ 執行],輸入 cmd,然後按兩下 [ 確定]

  2. 在命令提示字元中,輸入命令: chkdsk d:

    其中 d: 是您想要檢查的磁碟驅動器字母。

  3. 按一下確定

  4. 檢視產生的輸出。 例如:

    4096543 KB 總磁碟空間。 <---格式化磁碟容量總計。
    2906360 19901 檔案中的 KB。 <---使用者檔案數據所使用的空間。
    1301 個索引中有 6344 KB。 <--- NTFS 索引所使用的空間。
    不正確的扇區中有 0 KB。 <---損毀扇區的空間。
    系統正在使用 49379 KB。 <---包含 MFT 和其他 NTFS 元檔。
    記錄檔所佔用的 22544 KB。 <--- NTFS 記錄檔 - (可以使用 chkdsk /L:size) 來調整
    1134460磁碟上可用的 KB。 <---可用磁碟空間

    每個配置單位中 4096 個字節。 <---叢集大小。 (4K)
    1024135磁碟上的配置單位總計。 <---磁碟上的叢集總計。
    283615磁碟上可用的配置單位。 <---可用的可用叢集。

注意事項

將輸出所報告的每個值乘以 KB (KB) 為 1024,以判斷正確的位元組計數。 例如:2906360 x 1024 = 2,976,112,640 個字節。 您可以使用此資訊來判斷磁碟空間的使用方式和預設叢集大小。

若要判斷這是否為最佳的叢集大小,您必須判斷磁碟上的浪費空間。 若要這樣做,請遵循下列步驟:

  1. 按兩下 [開始],按兩下 [ 我的電腦],然後按兩下驅動器號 (例如,D) 有問題的磁碟區開啟磁碟區,並顯示根目錄所包含的資料夾和檔案。

  2. 單擊任何檔案或資料夾,然後按下 [編輯] 功能表上的 [全選]。

  3. 選取所有檔案和資料夾后,以滑鼠右鍵按兩下任何檔案或資料夾,按兩下 [ 屬性],然後按兩下 [ 一般] 索引標籤。

    [ 一般] 索引標籤會顯示整個磁碟區上的檔案和資料夾總數,並提供兩個檔案大小統計數據: SIZESIZE ON DISK

如果您未針對磁碟區上包含的任何檔案或資料夾使用NTFS壓縮,SIZE與SIZE ON DISK之間的差異可能代表一些浪費的空間,因為叢集大小大於必要。 您可能想要使用較小的叢集大小,讓 SIZE ON DISK 值盡可能接近 SIZE 值。 SIZE ON DISK 和 SIZE 值之間的差異很大,表示預設叢集大小對於您儲存在磁碟區上的平均檔案大小而言太大。

您只能藉由重新格式化磁碟區來變更您使用的叢集大小。 若要這樣做,請備份磁碟區,然後使用 format 命令和 /a 參數來指定適當的配置來格式化磁碟區。 例如: format D: /a:2048 (此範例使用 2 KB 的叢集大小) 。

注意事項

或者,您可以啟用NTFS壓縮,以重新取得因叢集大小不正確而遺失的空間。 不過,這可能會導致效能降低。

檔屬性或 NTFS 許可權

Windows 檔案總管和目錄清單命令 dir /a /s 只會顯示您有權存取之檔案和資料夾的總檔案和資料夾統計數據。 根據預設,會排除檔案隱藏檔案和受保護的操作系統檔案。 此行為可能會導致 Windows 檔案總管或 dir 命令顯示不正確的檔案和資料夾總計和大小統計數據。

若要在整體統計數據中包含這些類型的檔案,請變更 資料夾選項。 若要這樣做,請遵循下列步驟:

  1. 按兩下 [開始],按兩下 [ 我的計算機],然後按兩下驅動器號 (例如:磁碟區的 D) 。 這會開啟磁碟區,並顯示根目錄包含的資料夾和檔案。
  2. 在 [ 工具] 功能表上,按兩下 [資料夾選項],然後按下 [ 檢視] 索引 卷標。
  3. 選取 [ 顯示隱藏的檔案和資料夾 ] 複選框,然後按下以清除 [ 隱藏受保護的操作系統檔案 ] 複選框。
  4. 當您收到警告訊息時,請按兩下 [ ],然後按下 [ 用] 按鈕。 這項變更可讓 Windows 檔案總管和 dir /a /s 命令合計用戶有權存取磁碟區所包含的所有檔案和資料夾。

若要判斷您無法存取的資料夾和檔案,請遵循下列步驟:

  1. 在命令提示字元中,從命令的 dir /a /s 輸出建立文本檔。

    例如:在命令提示字元中,輸入下列命令: dir d: /a /s >c:\d-dir.txt

  2. 啟動備份或還原精靈。

    1. 按兩下 [開始],按兩下 [ 執行],輸入 ntbackup,然後按兩下 [ 確定]
    2. 按兩下 [進階模式]
  3. 單擊 [工具] 功能表上的 [ 選項 ],單擊 [ 備份記錄] 索引 標籤,按兩下 [ 詳細數據],然後按兩下 [ 確定]

  4. 在 [備份公用程式] 中,按兩下 [ 備份] 索引卷標,然後針對受影響的整個磁碟區選取複選框 (例如 :D:) ,然後按兩下 [ 開始備份]

  5. 備份完成之後,開啟備份報表,並將NTBackup記錄輸出的資料夾與您在步驟1中儲存的 d-dir.txt 輸出進行比較。

因為備份可以存取所有檔案,所以其報表可能包含 Windows 檔案總管和 dir 命令未顯示的資料夾和檔案。 當您想要搜尋無法使用 Windows 檔案總管存取的大型檔案或資料夾時,您可能會發現使用 NTBackup 介面來尋找磁碟區,而不需要備份磁碟區會比較容易。

找到無法存取的檔案之後,您可以在 Windows 檔案總管中檢視檔案或資料夾的內容時,使用 [ 安全 性] 索引標籤來新增或變更許可權。 根據預設,您無法存取 [系統磁碟區資訊] 資料夾。 您必須新增正確的許可權,才能在命令中 dir /a /s 包含資料夾。

您可能會注意到沒有 [ 安全 性] 索引標籤的資料夾或檔案。或者,您可能無法將許可權重新指派給受影響的資料夾和檔案。 當您試著存取錯誤訊息時,可能會收到下列錯誤訊息:

無法存取 D:\folder_name\

拒絕存取

如果您有任何這類資料夾,請連絡 Microsoft 產品支援服務 以取得其他協助。

無效的檔名

包含無效或保留檔名的資料夾或檔案也可以從檔案和資料夾統計數據中排除。 包含前置或尾端空格的資料夾或檔案在NTFS中是有效的,但從Win32子系統的觀點來看無效。 因此,Windows 檔案總管和命令提示字元都無法可靠地使用它們。

您可能無法重新命名或刪除這些檔案或資料夾。 當您嘗試這麼做時,可能會收到下列其中一個錯誤訊息:

重新命名檔案或資料夾時發生錯誤

無法重新命名檔案:無法從來源檔案或磁碟讀取。

刪除檔案或資料夾時發生錯誤

無法刪除檔案:無法從來源檔案或磁碟讀取。

如果您有無法刪除或重新命名的資料夾或檔案,請連絡 Microsoft 產品支援服務。

MFT) 擴充 (NTFS 主要檔案數據表

建立並格式化 NTFS 磁碟區時,會建立NTFS元檔。 其中一個元檔命名為 MFT) (主檔案數據表。 建立時很小, (大約 16 KB) ,但會隨著在磁碟區上建立檔案和資料夾而成長。 建立檔案時,它會在 MFT 中輸入為檔案記錄區段 (FRS) 。 FRS 一律為 1024 個字節, (1 KB) 。 當檔案新增至磁碟區時,MFT 就會成長。 不過,刪除檔案時,相關聯的 FRS 會標示為可供重複使用,但總 FRS 和相關聯的 MFT 配置會維持不變。 這就是為什麼您在刪除大量檔案 之後,不會重新取得 MFT 所使用的空間。

若要查看 MFT 的大小,您可以使用內建重組程式來分析磁碟區。 產生的報表會提供 MFT 中片段大小和數目的詳細資訊。

例如:

MFT) 片段 (主要檔案數據表
MFT 大小總計 = 26,203 KB
MFT 記錄計數 = 21,444
使用中的 MFT 百分比 = 81 %
MFT 片段總計 = 4

不過,如需有關整個NTFS使用) 多少空間 (額外負荷的詳細資訊,請執行 chkdsk.exe 命令,然後檢視下列這一行的輸出:

由系統使用。

目前,只有第三方重組程式會合並未使用的 MFT FRS 記錄,並回收未使用的 MFT 配置空間。

替代數據流

NTFS 允許檔案和資料夾包含替代資料流。 透過這項功能,您可以將多個數據配置與單一檔案或資料夾產生關聯。 在檔案與資料夾上使用替代資料流有下列限制:

  • Windows 檔案總管和 dir 命令不會將替代數據流中的數據報告為檔案大小或磁碟區統計數據的一部分。 相反地,它們只會顯示主要數據流的總位元組數。
  • chkdsk 的輸出會正確報告用戶數據檔所使用的空間,包括替代數據流。
  • 磁碟配額會正確追蹤並報告屬於用戶數據檔一部分的所有數據流配置。
  • NTBackup 會記錄備份記錄報表中備份的位元元組數目。 不過,它不會顯示哪些檔案包含替代數據流。 對於在替代數據流中包含資料的檔案,也不會顯示正確的檔案大小。

NTFS 檔案系統損毀

在罕見的情況下,NTFS 元檔$MFT或$BITMAP可能會損毀,並導致磁碟空間遺失。 您可以對磁碟區執行 命令來 chkdsk /f 識別並修正此問題。 在 chkdsk 結尾處,如果您必須調整主要檔案數據表 (MFT) BITMAP 屬性中的$BITMAP:更正錯誤,就會收到下列訊息。 CHKDSK 探索到磁碟區位圖中標示為已配置的可用空間。 Windows 已更正文件系統。

可能會造成檔案配置混淆的其他NTFS功能

NTFS 也支援可讓您建立磁碟區裝入點和目錄連接點的硬式連結和重新分析點。 當您嘗試判斷實體磁碟區耗用的空間量時,這些額外的NTFS功能可能會造成混淆。

不論檔案數據位於該磁碟區上的位置為何, 硬式連結 都是檔案的目錄專案。 每個檔案至少有一個硬式連結。 在NTFS磁碟區上,每個檔案都可以有多個硬式連結,因此單一檔案可以出現在許多資料夾中, (或甚至是位於名稱不同的相同資料夾) 。 因為所有鏈接都參考相同的檔案,所以程式可以開啟任何連結並修改檔案。 只有在刪除檔案的所有鏈接之後,才會從檔案系統中刪除檔案。 建立硬式連結之後,程式可以像任何其他檔名一樣使用它。

注意事項

Windows 檔案總管和命令提示字元會將所有連結的檔案顯示為相同的大小,即使它們全都共用相同的數據,而且實際上不會使用該數量的磁碟空間。

磁碟區裝入點和目錄連接點允許NTFS磁碟區上的空白資料夾指向另一個磁碟區的根或子資料夾。 Windows 檔案總管和 dir /s 命令會遵循重新分析點,計算目的地磁碟區上的任何檔案和資料夾,然後將它們包含在主機磁碟區的統計數據中。 這可能會誤導您,認為主機磁碟區上所使用的空間比實際使用的空間還多。

總而言之,您可以使用 chkdsk 輸出、NTBackup GUI 或備份記錄,以及磁碟配額的檢視來判斷磁碟區上的磁碟空間使用方式。 不過,用於此用途時,Windows 檔案總管和 dir 命令有一些限制和缺點。