檢查磁碟區的檔系統和文件系統元數據是否有邏輯和實體錯誤。 如果在沒有參數的情況下使用, chkdsk 只會顯示磁碟區的狀態,不會修正任何錯誤。 如果與 /f、 /r、 /x 或 /b 參數搭配使用,則會修正磁碟區上的錯誤。
Important
本機 Administrators 群組或對等專案的成員資格是執行 chkdsk 所需的最低要求。 若要以系統管理員身分開啟命令提示字元視窗,請以滑鼠右鍵按一下 [開始] 功能表中的 [命令提示字元],然後選取 [以系統管理員身分執行]。
Important
不建議中斷 chkdsk 。 不過,取消或中斷 chkdsk 不應該讓磁碟區比執行 chkdsk 之前更損毀。 再次執行 chkdsk 會檢查並修復磁碟區上任何剩餘的損毀。
Note
Chkdsk 只能用於本機磁碟。 命令無法與透過網路重新導向的本機驅動器號搭配使用。
Syntax
chkdsk [<volume>[[<path>]<filename>]] [/f] [/v] [/r] [/x] [/i] [/c] [/l[:<size>]] [/b] [/scan] [/forceofflinefix] [/perf] [/spotfix] [/sdcleanup] [/offlinescanandfix] [/freeorphanedchains] [/markclean] [/?]
Parameters
| Parameter | Description |
|---|---|
<volume> |
指定驅動器號(後面接著冒號)、裝入點或磁碟區名稱。 |
[<path>]<filename> |
僅搭配檔案配置數據表 (FAT) 和 FAT32 使用。 指定您要 chkdsk 檢查片段的檔案或檔案集的位置和名稱。 您可以使用萬用字元 ? 和 * 來指定多個檔案。 |
| /f | 修正磁碟上的錯誤。 磁碟必須鎖定。 如果 chkdsk 無法鎖定磁碟機,則會出現一則訊息,詢問您下次重新啟動電腦時是否要檢查磁碟機。 |
| /v | 在檢查磁碟時,顯示每個目錄中每個檔案的名稱。 |
| /r | 找出不正確的扇區並復原可讀取的資訊。 磁碟必須鎖定。 /r 包含 /f 的功能,以及實體磁碟錯誤的額外分析。 |
| /x | 如有必要,強制磁碟區先卸除。 磁碟驅動器的所有開啟句柄都會失效。 /x 也包含 /f 的功能。 |
| /i | 僅搭配NTFS使用。 對索引項目執行較不嚴格的檢查,以減少執行 chkdsk 所需的時間量。 |
| /c | 僅搭配NTFS使用。 不會檢查資料夾結構內的週期,這會減少執行 chkdsk 所需的時間量。 |
/l[:<size>] |
僅搭配NTFS使用。 將記錄檔大小變更為您輸入的大小。 如果您省略 size 參數, 則 /l 會顯示目前的大小。 |
| /b | 僅搭配NTFS使用。 清除磁碟區上錯誤的叢集清單,並重新掃描所有已配置且免費的叢集是否有錯誤。 /b 包含 /r 的功能。 將磁碟區映像處理到新的硬碟之後,請使用此參數。 |
| /scan | 僅搭配NTFS使用。 在磁碟區上執行在線掃描。 |
| /forceofflinefix | 僅與 NTFS 一起使用(必須與 /scan 一起使用)。 略過所有在線修復;找到的所有瑕疵都會排入佇列以進行離線修復(例如, chkdsk /spotfix。 |
| /perf | 僅與 NTFS 一起使用(必須與 /scan 一起使用)。 使用更多系統資源儘快完成掃描。 這可能會對系統上執行的其他工作造成負面影響。 |
| /spotfix | 僅搭配NTFS使用。 在磁碟區上執行點修正。 |
| /sdcleanup | 僅搭配NTFS使用。 垃圾收集不需要的安全描述元資料(隱含 /f)。 |
| /offlinescanandfix | 執行離線掃描並修正磁碟區。 |
| /freeorphanedchains | 僅搭配 FAT/FAT32/exFAT 使用。 釋放任何孤立的叢集鏈結,而不是復原其內容。 |
| /markclean | 僅搭配 FAT/FAT32/exFAT 使用。 如果未偵測到損毀,即使未指定 /f ,也會將磁碟區標示為乾淨。 |
| /? | 在命令提示字元顯示說明。 |
Remarks
/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 指令可從「回復主控台」取得。
在不常重新啟動的伺服器上,您可能想要使用 chkntfs 或指令
fsutil dirty query來判斷在執行 chkdsk 之前是否已設定磁區的髒位。
chkdsk 在不同媒體上的表現
物理性質: HDD 使用旋轉磁盤。 扇區和區塊會從拼盤中實際讀取。
當 chkdsk 執行時:
- 物理磁頭必須移動到每個正在檢查的數據位置,由於機械移動,速度 較慢 。
- 檢查 壞扇區 (使用
/r)需要更長的時間,因為會檢查每個扇區的物理完整性,並在可能的情況下替換壞扇區。 - 對於大型驅動器來說,長時間運行時間並不少見。
通常,在大型容量 HDD 上, /r 或 /b 會在讀取每個扇區時花費相當長的時間。 即使沒有錯誤,而且大部分是空的磁碟驅動器,實體讀取速度也會使程序瓶頸。
在某些情況下,大型容量 HDD chkdsk 上可能會太快地完成其程式。 如果發生這種情況,可能是:
- 磁碟區已由作系統 (OS) 或其他進程掛接或鎖定。
- 作業
chkdsk實際上並未掃描磁碟驅動器上的每個扇區。 - HDD 可能有讀取前端失敗或其他硬體問題,導致
chkdsk行為無法預期。 - 此
chkdsk作業只會對文件系統結構執行在線掃描,而且在開機進入OS之前並未明確執行離線掃描。
檢視記錄 chkdsk 可能會指向掃描期間可能發生的問題。 若要深入瞭解,請參閱 檢視 chkdsk 記錄。
了解結束代碼
下表列出 chkdsk 完成之後所報告的結束碼。
| Exit code | Description |
|---|---|
| 0 | 找不到錯誤。 |
| 1 | 找到並修正錯誤。 |
| 2 | 已執行磁碟清除 (例如記憶體回收) ,或未執行清除,因為未指定 /f 。 |
| 3 | 無法檢查磁碟、無法修正錯誤,或因為未指定 /f 而未修正錯誤。 |
Examples
若要檢查磁碟驅動器 D 中的磁碟,並出現 Windows 修正錯誤,請輸入:
chkdsk d: /f
如果遇到錯誤, chkdsk 會暫停並顯示訊息。
Chkdsk 會以顯示列出磁碟狀態的報告來完成。 在完成之前 chkdsk ,您無法在指定的磁碟驅動器上開啟任何檔案。
若要檢查目前目錄中 FAT 磁碟上是否有非連續區塊的所有檔案,請輸入:
chkdsk *.*
Chkdsk 會顯示狀態報告,然後列出符合具有非連續區塊之檔案規格的檔案。
檢視 chkdsk 記錄
有兩種方法可用來在 Windows 中使用事件查看器和 PowerShell 擷取 chkdsk 記錄檔。
若要使用事件查看器檢視記錄,請執行下列動作:
啟動 >控制台>系統管理工具事件>檢視器。
或者,按 Win + R 鍵調出運行對話框,鍵入 eventvwr.msc,然後選擇確定。
展開 Windows 日誌,>右鍵單擊應用程序>,選擇過濾當前日誌。
在 [ 篩選目前記錄檔 ] 視窗中,流覽至 [事件來源 ] 下拉功能表,選取 [Chkdsk ] 和 [Wininit]。
選取 [ 確定 ] 以完成這兩個來源的篩選。