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

本文將討論如何檢查 NTFS 檔案系統的磁碟空間配置,以發現有問題的檔案和資料夾,或尋找 Microsoft Windows Server 2003 電腦中的磁片區損毀。

原始產品版本:   Windows Server 2003
原始 KB 編號:   814594

摘要

NTFS 支援許多磁片區和檔案層級的功能,可能會導致似乎遺失或錯誤地報告可用磁碟空間。 例如,NTFS 磁片區可能突然顯示為「已滿」,但系統管理員無法找到原因,或找不到問題的資料夾和檔案。 這可能會發生于惡意或未經授權存取的 NTFS 磁片區時發生,但發生大量檔案或大量小型檔案大量複製的 NTFS 磁片區。 然後這些檔案會移除或限制他們的 NTFS 許可權。 這種行為也可能會發生在電腦故障或電源中斷導致磁片區損毀的情況之後。

NTFS 磁片區的磁碟空間配置可能會因為下列其中一個原因而 misreported:

  • NTFS 磁片區的簇大小對儲存于平均大小的檔案太大。
  • 檔案屬性或 NTFS 許可權會防止 Windows Explorer 或 Windows 命令提示字元顯示或存取檔或資料夾。
  • 資料夾路徑超過255個字元。
  • 資料夾或檔案包含無效或保留的檔案名。
  • NTFS 圖中繼檔 (例如主檔表) 已增加,您無法將其取消指派。
  • 檔案或資料夾包含替代的資料流程。
  • NTFS 損毀導致可用空間報告為正在使用中。
  • 其他 NTFS 功能可能會造成檔案分配混淆。

下列資訊可協助您優化、修復或深入瞭解 NTFS 磁片區使用磁碟空間的方式。

簇大小太大

只有包括內部 NTFS 圖元檔的檔案和資料夾(如主檔表格) (MFT) 、資料夾索引及其他使用者可能會耗用磁碟空間。 這些檔案和資料夾會使用叢集的倍數,消耗所有的檔案空間分配。 叢集是連續磁區的集合。 叢集大小取決於格式化磁片區時的磁碟分割大小。

如需有關叢集的詳細資訊,請參閱 預設的 cluster size FOR NTFS、FAT 和 exFAT

當您建立檔案時,它會消耗至少一部磁碟空間,視初始檔案大小而定。 當資料後來新增至檔案時,NTFS 會以簇大小的倍數增加檔案的配置。

若要判斷目前的聚簇大小和磁片區統計資料,請從命令提示字元執行唯讀的 chkdsk 命令。 其步驟如下:

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

  2. 在命令提示字元處,輸入下列命令: chkdsk d:

    其中 d: 是您要檢查的磁片磁碟機盤符。

  3. 按一下 [確定]。

  4. 查看結果輸出。 例如:

    磁片總磁碟空間 4096543 KB。 <---的格式化磁片容量總計。
    19901檔案中的 2906360 KB。 < 使用者檔案資料所用的---空間。
    1301索引中的 6344 KB。 < NTFS 索引所用的---空間。
    損毀的磁區中 0 KB。 <---損毀的磁區遺失的空間。
    49379 KB 會供系統使用。 <---包含 MFT 和其他 NTFS 中繼檔。
    記錄檔佔用 22544 KB。 <---NTFS 記錄檔 (可使用 chkdsk/L: size 來調整)
    磁片上的 1134460 KB 可用。 <---可用的可用磁碟空間

    每個分配單位4096個位元組。 <---的簇大小。 (4K)
    1024135磁片上的總分配單位。 < 磁片上的總簇---。
    磁片上可用的283615分配單位。 <---可用的可用簇。

注意

將輸出報告中的每個值乘以 1024 (KB) ,以判斷正確的位元組計數。 例如: 2906360 x 1024 = 2976112640 位元組。 您可以使用此資訊來決定磁碟空間的使用方式及預設的簇大小。

若要判斷是否為最佳的簇大小,您必須決定磁片上浪費的空間。 其步驟如下:

  1. 按一下 [ 開始],按一下 [ 我的電腦],然後按兩下磁碟機盤符 (例如,用來開啟磁片區之磁片區的 D) ,並顯示根目錄所包含的資料夾與檔案。

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

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

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

如果您未針對磁片區中包含的任何檔案或資料夾使用 NTFS 壓縮,則磁片上的大小和大小之間的差異可能會代表一些浪費的空間,原因是簇大小會大於必要量。 您可能想要使用較小的聚簇大小,如此一來,[磁片大小] 值也盡可能接近大小值。 [磁片大小] 和 [大小] 值之間的較大差異會指出預設的簇大小對於您在磁片區上儲存的平均檔案大小而言過大。

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

注意

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

檔案屬性或 NTFS 許可權

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

若要在整體統計資料中包含這些檔案類型,請變更 資料夾選項。 其步驟如下:

  1. 按一下 [ 開始],按一下 [ 我的電腦],然後按兩下磁片磁碟機號 (例如,磁片區的 D) 。 這會開啟磁片區,並顯示根目錄所包含的資料夾和檔案。
  2. 在 [ 工具 ] 功能表上,按一下 [ 資料夾選項],然後按一下 [ 視圖 ] 索引標籤。
  3. 選取 [ 顯示隱藏的檔案和資料夾 ] 核取方塊,然後按一下以清除 [ 隱藏受保護的作業系統檔 ] 核取方塊。
  4. 當您收到警告訊息時,按一下 [是] ,然後按一下 [套用]按鈕。 這種變更可讓 Windows Explorer 和此指令,將該磁片區包含的所有檔案和資料夾,全部與該 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 Explorer 和 dir 命令不會顯示的資料夾和檔案。 當您想要搜尋的大型檔案或資料夾無法使用 Windows Explorer 進行存取時,您可能會發現使用 NTBackup 介面可輕鬆找到該磁片區,而不備份磁片區。

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

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

無法存取 d:\ folder_name \

拒絕存取

如果您有任何這樣的資料夾,請與 Microsoft 產品支援服務 聯繫以取得其他協助。

不正確檔案名

包含無效或保留之檔案名的資料夾或檔案,也可能會從檔案和資料夾統計資料中排除。 包含前導或尾部空格的資料夾或檔案在 NTFS 中是有效的,但是從 Win32 子系統的觀點來看,它們是不正確。 因此,Windows Explorer 和命令提示都無法可靠地使用它們。

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

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

無法重新命名檔案:無法讀取來原始檔案或磁片。

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

無法刪除檔案:無法讀取來原始檔案或磁片。

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

NTFS Master File Table (MFT) 擴充

建立並格式化 NTFS 磁片區時,會建立 NTFS 的中繼檔。 其中一個中繼檔命名為主檔資料表 (MFT) 。 在 (大約 16 KB) 建立時,它會變小,但隨著檔案和資料夾在磁片區上的建立而變大。 當您建立檔案時,它會在 MFT 中輸入成 (FRS) 的檔案記錄段。 FRS 永遠為1024位元組 (1 KB) 。 當檔案新增至磁片區時,MFT 會成長。 不過,當刪除檔案時,關聯的 FRSs 會標示為空閒以供重複使用,但是會保留總的 FRSs 和相關的 MFT 配置。 這就是為什麼您刪除大量檔案之後,不重新獲得 MFT 所使用的空間。

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

例如:

Master File Table (MFT) 產生碎片
MFT 總大小 = 26203 KB
MFT 記錄計數 = 21444
使用的% MFT = 81%
MFT 片段總數 = 4

不過,如需有關整個 NTFS 所使用的空間 () 負荷的詳細資訊,請執行 chkdsk.exe 命令,然後查看下列行的輸出:

由系統使用。

目前只有協力廠商 defragmenters 整合未使用的 MFT FRS 記錄,並回收未使用的 MFT 分配空間。

替代的資料流程

NTFS 允許檔案和資料夾包含替代的資料流程。 使用此功能,您可以將多個資料分配與單一檔案或資料夾產生關聯。 在檔案和資料夾上使用替代的資料流程會有下列限制:

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

NTFS 檔案系統損毀

在極少的情況下,NTFS 中繼檔 $MFT 或 $BITMAP 可能會損毀,並導致磁碟空間遺失。 您可以針對磁片區執行命令,以識別並修正此問題 chkdsk /f 。 在 chkdsk 結束時,如果必須調整 $BITMAP,您會收到下列訊息:修正主檔案資料表 (MFT) BITMAP 屬性的錯誤。 CHKDSK 發現卷點陣圖中標示為已分配的可用空間。 Windows 已對檔案系統進行修正。

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

NTFS 也支援硬連結和重新分析點,可讓您建立大量掛接點及目錄交接。 當您嘗試判斷實體磁片區消耗的空間多少時,這些額外的 NTFS 功能可能會造成混淆。

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

注意

Windows Explorer 和命令提示字元會將所有連結的檔案顯示為相同大小,即使它們全都共用相同的資料,也不會實際使用該磁碟空間量。

「磁片掛接點」和「目錄交接」允許 NTFS 磁片區上的空白資料夾指向其他磁片區上的根或子資料夾。 Windows Explorer 和 dir/s 命令會依照重新分析點,計算目標磁片區上的任何檔案和資料夾,然後將其包含在主機磁片區的統計資料中。 這可能會誤導您,讓您相信主機磁片區上的空間超過使用實際使用的空間。

總而言之,您可以使用 chkdsk 輸出、NTBackup GUI 或備份記錄,以及查看磁片配額,以判斷磁片區如何使用磁片配額。 不過,Windows Explorer 和 dir 命令在用於此用途時會有一些限制和缺點。