共用方式為


chkdsk

檢查磁碟區的檔系統和文件系統元數據是否有邏輯和實體錯誤。 如果沒有參數使用, chkdsk 只會顯示磁碟區的狀態,而且不會修正任何錯誤。 如果搭配 /f/r/x/b 參數使用,則會修正磁碟區上的錯誤。

這很重要

本機 Administrators 群組中的成員資格或對等專案,是執行 chkdsk 所需的最小成員資格。 若要以系統管理員身分開啟命令提示字元視窗,請在 [開始] 功能表中以滑鼠右鍵按兩下 [命令提示字元],然後選取 [以系統管理員身分執行]。

這很重要

不建議中斷 chkdsk 。 不過,取消或中斷 chkdsk 不應該讓磁碟區比 執行 chkdsk 之前更損毀。 再次執行 chkdsk 會檢查,並應該修復磁碟區上任何剩餘的損毀。

備註

Chkdsk 只能用於本機磁碟。 命令無法與透過網路重新導向的本機驅動器號搭配使用。

語法

chkdsk [<volume>[[<path>]<filename>]] [/f] [/v] [/r] [/x] [/i] [/c] [/l[:<size>]] [/b] [/scan] [/forceofflinefix] [/perf] [/spotfix] [/sdcleanup] [/offlinescanandfix] [/freeorphanedchains] [/markclean] [/?]

參數

參數 說明
<volume> 指定驅動器號(後面接著冒號)、裝入點或磁碟區名稱。
[<path>]<filename> 僅搭配檔案配置數據表 (FAT) 和 FAT32 使用。 指定您想要 chkdsk 檢查片段的檔案或檔案集的位置和名稱。 您可以使用通配符 * 來指定多個檔案。
/f 修正磁碟上的錯誤。 磁碟必須鎖定。 如果 chkdsk 無法鎖定磁碟驅動器,會出現一則訊息,詢問您是否要在下次重新啟動電腦時檢查磁碟驅動器。
/v 在檢查磁碟時,顯示每個目錄中每個檔案的名稱。
/r 找出不正確的扇區並復原可讀取的資訊。 磁碟必須鎖定。 /r 包含 /f 的功能,以及實體磁碟錯誤的額外分析。
/x 如有必要,強制磁碟區先卸除。 磁碟驅動器的所有開啟句柄都會失效。 /x 也包含 /f 的功能。
/我 僅搭配NTFS使用。 執行較不激烈的索引項目檢查,以減少執行 chkdsk所需的時間量。
/c 僅搭配NTFS使用。 不會檢查資料夾結構內的週期,這會減少執行 chkdsk所需的時間量。
/l[:<size>] 僅搭配NTFS使用。 將記錄檔大小變更為您輸入的大小。 如果您省略 size 參數, /l 會顯示目前的大小。
/b 僅搭配NTFS使用。 清除磁碟區上錯誤的叢集清單,並重新掃描所有已配置且免費的叢集是否有錯誤。 /b 包含 /r 的功能。 將磁碟區映像處理到新的硬碟之後,請使用此參數。
/掃描 僅搭配NTFS使用。 在磁碟區上執行在線掃描。
/forceofflinefix 僅搭配NTFS使用 (必須與 /scan搭配使用)。 略過所有在線修復;找到的所有瑕疵都會排入佇列以進行離線修復(例如, chkdsk /spotfix
/perf 僅搭配NTFS使用 (必須與 /scan搭配使用)。 使用更多系統資源儘快完成掃描。 這可能會對系統上執行的其他工作造成負面影響。
/spotfix 僅搭配NTFS使用。 在磁碟區上執行點修正。
/sdcleanup 僅搭配NTFS使用。 垃圾收集不必要的安全性描述元數據(意指 /f)。
/offlinescanandfix 執行離線掃描並修正磁碟區。
/freeorphanedchains 僅搭配 FAT/FAT32/exFAT 使用。 釋放任何孤立的叢集鏈結,而不是復原其內容。
/markclean 僅搭配 FAT/FAT32/exFAT 使用。 如果未偵測到任何損毀,則會標示磁碟區清除,即使未指定 /f 也一樣。
? 在命令提示字元顯示說明。

備註

  • /i/c 參數會略過特定磁碟區檢查來減少執行 chkdsk 所需的時間量。

  • 如果您想要 chkdsk 更正磁碟錯誤,就無法在磁碟驅動器上開啟檔案。 如果檔案已開啟,會出現下列錯誤訊息:

    Chkdsk cannot run because the volume is in use by another process. Would you like to schedule this volume to be checked the next time the system restarts? (Y/N)
    
  • 如果您選擇在下一次重新啟動電腦時檢查磁碟驅動器, chkdsk 會檢查磁碟驅動器,並在重新啟動電腦時自動更正錯誤。 如果磁碟驅動器磁碟分區是開機磁碟分區, chkdsk 會在檢查磁碟驅動器之後自動重新啟動電腦。

  • 您也可以使用 chkntfs /c 命令來排程下次重新啟動電腦時要檢查的磁碟區。 fsutil dirty set使用 命令來設定磁碟區的臟位(表示損毀),讓 Windows 在重新啟動電腦時執行 chkdsk

  • 您應該偶爾在 FAT 和 NTFS 檔案系統上使用 chkdsk 來檢查磁碟錯誤。 Chkdsk 會檢查磁碟空間和磁碟空間使用,並提供每個文件系統特有的狀態報告。 狀態報告會顯示在檔案系統中找到的錯誤。 如果您在使用中分割區上執行 chkdsk 而不使用 /f 參數,它可能會報告假的錯誤,因為它無法鎖定磁碟驅動器。

  • 只有在您指定 /f 參數時,Chkdsk 才會更正邏輯磁碟錯誤。 Chkdsk 必須能夠鎖定磁碟驅動器以更正錯誤。

    因為 FAT 檔案系統上的修復通常會變更磁碟的檔案配置數據表,有時造成資料遺失, 所以 chkdsk 可能會顯示類似下列的確認訊息:

    10 lost allocation units found in 3 chains.
    Convert lost chains to files?
    
    • 如果您按下 Y,Windows 會將根目錄中的每個遺失鏈結儲存為格式 File<nnnn>.chk為 的檔案。 當 chkdsk 完成時,您可以檢查這些檔案,以查看它們是否包含您需要的任何數據。

    • 如果您按下 N,Windows 會修正磁碟,但不會儲存遺失配置單位的內容。

  • 如果您未使用 /f 參數, chkdsk 會顯示檔案需要修正的訊息,但不會修正任何錯誤。

  • 如果您在 chkdsk /f* 大型磁碟或具有大量檔案的磁碟上使用 (例如,數百萬個檔案), chkdsk /f 可能需要很長的時間才能完成。

  • 使用 /r 參數來尋找文件系統中的實體磁碟錯誤,並嘗試從任何受影響的磁碟扇區復原數據。

  • 如果您指定 /f 參數,如果磁碟上有開啟的檔案, chkdsk 會顯示錯誤訊息。 如果您未指定 /f 參數並開啟檔案存在, chkdsk 可能會報告磁碟上的遺失配置單位。 如果尚未在檔案配置數據表中記錄開啟的檔案,就可能會發生這種情況。 如果 chkdsk 報告遺失大量配置單位,請考慮修復磁碟。

  • 由於啟用共用資料夾的 陰影複製 來源磁碟區時無法鎖定陰影複製,因此針對來源磁碟區執行 chkdsk 可能會報告錯誤或造成 chkdsk 意外結束。 不過,您可以在唯讀模式中執行 chkdsk 來檢查陰影複製是否有錯誤,以檢查共用資料夾儲存磁碟區的陰影複製。

  • chkdsk 命令具有不同參數,可從復原控制台取得。

  • 在不常重新啟動的伺服器上,您可能想要使用 chkntfsfsutil dirty query 命令來判斷磁碟區的臟位是否已在執行 chkdsk 之前設定。

chkdsk 在不同媒體上的表現

  • 實體性質: HDD 使用旋轉磁碟。 扇區和區塊會從拼盤中實際讀取。

  • 當 chkdsk 執行時:

    • 實體前端必須移至正在檢查的每個數據位置,因為機械移動而 變慢
    • 檢查 壞扇區 需要 /r更長的時間,因為檢查每個扇區的身體完整性,如果可能的話,就會取代壞扇區。
    • 大型磁碟驅動器的小時運行時間並不常見。

通常,在大型容量 HDD 上, /r/b 會在讀取每個扇區時花費相當長的時間。 即使沒有錯誤,而且大部分是空的磁碟驅動器,實體讀取速度也會使程序瓶頸。

在某些情況下,大型容量 HDD chkdsk 上可能會太快地完成其程式。 如果發生這種情況,可能是:

  • 磁碟區已由作系統 (OS) 或其他進程掛接或鎖定。
  • 作業 chkdsk 實際上並未掃描磁碟驅動器上的每個扇區。
  • HDD 可能有讀取前端失敗或其他硬體問題,導致 chkdsk 行為無法預期。
  • chkdsk 作業只會對文件系統結構執行在線掃描,而且在開機進入OS之前並未明確執行離線掃描。

檢視記錄 chkdsk 可能會指向掃描期間可能發生的問題。 若要深入瞭解,請參閱 檢視 chkdsk 記錄

了解結束代碼

下表列出 chkdsk 報告完成後的結束代碼。

退出代碼 說明
0 找不到錯誤。
1 找到並修正錯誤。
2 執行磁碟清除(例如垃圾收集)或未執行清除,因為未指定 /f
3 無法檢查磁碟、無法修正錯誤,或未修正錯誤,因為未指定 /f

範例

若要檢查磁碟驅動器 D 中的磁碟,並出現 Windows 修正錯誤,請輸入:

chkdsk d: /f

如果遇到錯誤, chkdsk 會暫停並顯示訊息。 Chkdsk 會藉由顯示列出磁碟狀態的報告完成。 在完成之前 chkdsk ,您無法在指定的磁碟驅動器上開啟任何檔案。

若要檢查目前目錄中 FAT 磁碟上是否有非連續區塊的所有檔案,請輸入:

chkdsk *.*

Chkdsk 會顯示狀態報告,然後列出符合具有非連續區塊之檔案規格的檔案。

檢視 chkdsk 記錄

有兩種方法可用來在 Windows 中使用事件查看器和 PowerShell 擷取 chkdsk 記錄檔。

若要使用事件查看器檢視記錄,請執行下列動作:

  1. 啟動 >[控制面板>系統管理工具>] 事件查看器

    或者,按 Win + R 鍵以顯示執行對話框、輸入 eventvwr.msc,然後選取 [ 確定]。

  2. 展開 [Windows 記錄]> 以滑鼠右鍵按兩下 [應用程式> ],選取 [ 篩選目前的記錄]。

  3. 在 [ 篩選目前記錄檔 ] 視窗中,流覽至 [事件來源 ] 下拉功能表,選取 [Chkdsk ] 和 [Wininit]。

  4. 選取 [確定 ] 以完成這兩個來源的篩選。