文章編號: 218461 - 上次校閱: 2004年9月22日 - 版次: 2.1

Windows 2000 中 Chkdsk、Autochk 以及 Chkntfs 增強工具的說明

系統提示本文適用於您使用的作業系統之外的作業系統。與您不相關的文章內容已停用。
本文曾發行於 CHT218461
全部展開 | 全部摺疊

結論

Windows 2000 中,Chkdsk.exe、Autochk.exe 以及 Chkntfs.exe 工具已經做了很多功能的增強,管理員可以更準確地控制何時在卷 (disk volume) 上進行文件繫統檢查。

注意,卷被定義為包括檔案繫統的磁碟分割,它可以用磁碟機字母代號/卷安裝點,或全局唯一標識符 (GUID) 來尋址。

其他相關資訊

Windows 2000 中,Autochk.exe 可以區分為手工安排的卷檢查,又或由檔案系統發現卷處於「dirty」狀態而自動進行卷檢查,並會把相應的訊息寫入應用程式事件歷程記錄。

以下是 Windows 2000 的功能增強清單,但並沒有列出每個工具的所有開關選項。 Chkdsk /F: 如果 Chkdsk 在執行時不能鎖定卷執行,就會出現以下對話方塊,然後提示您在系統下次重新啟動時,再執行該指令:
Chkdsk 不能執行,因為卷正被另一個進程使用。 要執行 Chkdsk,可以首先卸除該卷。 該卷所有開啟的句柄皆將無效。 您想強行卸除此卷嗎? (是/否)
如果管理員安排指令在系統下次重新啟動時運行,則 Chkdsk 並不為正在使用的卷設定「髒字位元」(Dirty Bit)(設定髒字位元的方法可以在下次啟動時對卷進行檢查)。 相反,它會設定一個注冊表項,通知 Autochk 執行來執行卷檢查。 衹有當檔案系統偵測至問題時,才會親自設定「髒字位元」。

Chkdsk /X: 這是一個新的指令參數,它執行 Chkdsk /F,並強制執行卷卸除,關閉非系統卷上開啟的檔案句柄 (File handle),以便立即對卷進行檢查。 這樣,要執行 Chkdsk 並修復卷,就不必重新啟動。

Chkntfs volume: 顯示檔案系統類型、檔案系統髒字位元狀態,以及是否已手工安排啟動時運行 Chkdsk 進行卷檢查等資訊。

Chkntfs /C: 將某個卷安排在啟動時檢查(如果先前 chkntfs /x 沒有檢查該卷,此操縱就會執行)。 衹有發現卷處于「臟」時,Chkdsk 才會執行。

Chkntfs /D: 將電腦還原為預設設定,并移除 Chkdsk /F 或 Chkntfs /X 所作的登記設定。 這意味著,在啟動時所有磁碟機均將被檢查,對那些發現處于「臟」狀態的磁碟機,還將執行 Chkdsk 進行檢查。

Chkntfs /T:time: 將 Autochk 超時值變更為指定時間(秒數)。 如果沒有指定時間,則顯示現用設定。 有關此功能的其它資訊,請參見 Microsoft Knowledge Base 文章:
191603? (http://support.microsoft.com/kb/191603/EN-US/ ) 變更 Autochk.exe 超時值
有關 Chkntfs 的其它資訊,請參見 Microsoft Knowledge Base 文章:
160963? (http://support.microsoft.com/kb/160963/EN-US/ ) CHKNTFS.EXE: 用途
Autochk: 尋找每個卷上的髒字位元,以及 Chkdsk /F 和 Chkntfs /X 或 /C 所作的登記設定,決定是檢查卷,還是跳過檢查。

注意: Chkdsk /F 或 Chkntfs /C(安排 Chkdsk 對某個卷進行檢查)以及 Chkntfs /X(將某個卷由正在檢查的卷中排除)的結果可彼此覆蓋。 這樣,管理員就可以完全控制在啟動程序中是無條件地、還是有條件地執行 Chkdsk 對給定一個卷進行檢查,或者直接不檢查。 所發出的最後指令,將對相應的注冊表項進行設定/重設。

如果安排 Chkdsk 在啟動時運行以檢查某個卷,但實際啟動時決定按下某個鍵跳過 Autochk,則 Autochk 將不會檢查該卷,并移除相應的注冊表項,在以后,Autochk 也不會檢查該卷。

當 Autochk 在啟動時運行檢查某個卷時,它會輸出記錄至一個稱為 Bootex.log 的檔案中,該檔案放在被檢查卷的根目錄下。 隨后,Winlogon 服務將每個 Bootex.log 檔案的內容移至「應用程式事件歷程記錄」(Application Event log)中。 每個被檢查卷的事件歷程記錄訊息按以下方式記錄:
事件 ID: 1001
來源: Winlogon
描述: 它包含檔案繫統類型、磁碟機字母代號或 GUID 及卷名稱或序列號,可以說明確定 Chkdsk 檢查的是哪個卷。
此外還包含,Chkdsk 是因為使用者的安排而執行的呢,還是因為已設定了髒字位元而執行的等資訊。
Autochk 在確定啟動時檢查哪些卷所使用的注冊表項為:
Hkey_local_machine\System\CurrentControlSet\Control\Session Manager\ BootExecute:REG_MULTI_SZ: autocheck autochk *
注意: 這是 Autochk 的預設設定,也是使用 Chkntfs /d 安排啟動時檢查所有卷所得到的結果。

BootExecute 的其它項包含:

摺疊此表格展開此表格
/P \??\Volume:安排 Chkdsk 無條件地執行來檢查卷。
/p \??\VOLUME{GUID}安排 Chkdsk 無條件地執行來檢查卷安裝點。
/k:Volume *不對卷執行 Chkdsk 檢查。
/m \??\Volume:讓 Autochk 僅尋找卷上的髒字位元,如果已設定髒字位元,則執行 Chkdsk。


摺疊此表格展開此表格
Chkdsk C: /F自動檢查 autochk /p \??\C:
Chkdsk C:\mountpoint /F自動檢查 autochk /p \??\C:
Chkntfs D: E: /X動檢查 autochk /k:D /k:E *
Chkntfs G: /C動檢查 autochk /m \??\G:


由于可以藉由設定或重設注冊表,來控制 Autochk,因此可使用 Regini 腳本,由程式中安排卷的修復日程。

注意: 對于執行群集服務的伺服器群集節點所共用的卷,不允許在啟動時運行 Autochk.exe 進行檢查。當這些卷被線上,或由一個節點移至另一節點時,群集服務會檢查該卷是否處于「臟」狀態。 如果是,那麼在線上前,就要使用 Chkdsk 來檢查該卷。 但并去不檢查 BootExecute 注冊表值,所以,也不會去考慮那些值。

有關在共用群集磁碟上手工運行 Chkdsk 的資訊,請參見 Microsoft Knowledge Base 文章:
176970? (http://support.microsoft.com/kb/176970/EN-US/ ) Chkdsk /f 不在共用群集磁碟上執行

這篇文章中的資訊適用於:
  • Microsoft Windows 2000 Datacenter Server
  • Microsoft Windows 2000 Professional Edition
  • Microsoft Windows 2000 Server
  • Microsoft Windows 2000 Advanced Server
關鍵字:?
kbhowto kbtool KB218461
Microsoft及(或)其供應商不就任何在本伺服器上發表的文字資料及其相關圖表資訊的恰當性作任何承諾。所有文字資料及其相關圖表均以「現狀」供應,不負任何擔保責任。Microsoft及(或)其供應商謹此聲明,不負任何對與此資訊有關之擔保責任,包括關於適售性、適用於某一特定用途、權利或不侵權的明示或默示擔保責任。Microsoft及(或)其供應商無論如何不對因或與使用本伺服器上資訊或與資訊的實行有關而引起的契約、過失或其他侵權行為之訴訟中的特別的、間接的、衍生性的損害或任何因使用而喪失所導致的之損害、資料或利潤負任何責任。