2008年10月14日 09:36

關閉開機自動磁碟檢查

執行 Regedit.exe
到:
HKLM/System/CurrentControlSet/Control/SessionManager

右邊視窗有個字串值叫 BootExecute...
把裡面的值清掉, 開機就不會執行 autochk (chkdsk) 了。
每次執行 chkdsk /f 並回答 'Y', 系統就會把 autochk 指令放在這裡。通常只要執行完就會自動清除BootExecute 裡面的值, 但有時候不會, 所以造成每次重開機就會跑 autochk 的現象。
同理, 要手動在開機時執行 autochk, 在裡面加入指令就行了。

註:autochk 為 Recovery Console 之下的磁碟檢查程式, 在未進入視窗環境之前, 跑的是它, 而不是 chkdsk
詳解 chkntfs.exe 與開機自動磁碟檢查

chkntfs.exe 主要是用來改變開機時自動檢查磁碟的行為。

每當電腦不正常關機時,磁碟機可能會被設定 dirty bit (不乾淨的磁碟),用來表示這個磁碟的內容可能有問題。而 Windows XP 開機時會自動呼叫 autochk.exe 這個程式, autochk.exe 會檢查磁碟機的 dirty bit 是否有被設定,如果有,則 autochk.exe 會呼叫 chkdsk.exe /f 檢查磁碟。

然而有時候檢查磁碟可能太浪費時間以致於我們不想要每次都執行磁碟檢查,這時候可以透過 chkntfs.exe 來跳過某些磁碟的檢查。或是執行 chkdsk.exe /f C: 之後,可能會要求在下次開機時檢查磁碟,如果這時候想取消下次開機時檢查磁碟的排程,也可以透過 chkntfs.exe 來達成。

使用方法
語法如下:

chkntfs volume [...]
chkntfs /D
chkntfs /T[:time]
chkntfs /X volume [...]
chkntfs /C volume [...]
在我的 Windows XP SP2 上 chkntfs.exe 的說明中還有一個參數 /E ,但是這個參數似乎是沒用的。

參數說明如下:

volume
磁碟機代號,字母後面需接上冒號,例如 C: 。

/D
還原成預設行為,也就是檢查所有磁碟,如果磁碟不乾淨,則在該磁碟上執行 chkdsk.exe /f 。

/T:timeout
變更 autochk.exe 的倒數計時時間(秒),如果沒有指定時間,則顯示目前設定的時間。時間倒數中可以按任意鍵跳過磁碟檢查,倒數結束後將自動執行磁碟檢查。

/X
在預設的開機檢查中,排除某些磁碟機的檢查。

/C
開機時檢查特定的磁碟機,如果磁碟機不乾淨,則自動執行 chkdsk.exe 。

chkntfs.exe 與登錄檔
開機時自動檢查磁碟的指令記錄在登錄檔

HKEY_LOCAL_MACHINE\\SYSTEM\\CurrentControlSet\\Control\\Session Manager
裡面的 BootExecute 這個字串值。

預設
BootExecute 的預設值是

autocheck autochk *
也就是會自動檢查所有磁碟,對有需要的磁碟執行 chkdsk.exe 。

/D
執行完

> chkntfs /D
之後 BootExecute 的值會變成預設值。

/C
執行完

> chkntfs /C C:
之後 BootExecute 的值會變成

autocheck autochk /m \??\C:
autocheck autochk *
透過

> chkntfs C:
檢查狀態可獲得下列訊息:

檔案系統的類型是 NTFS。
Chkdsk 已排程在下次重新開機時手動地在磁碟區 C: 執行。
/X
執行完

> chkntfs /X C:
之後 BootExecute 的值會變成

autocheck autochk /k:C *
透過

> chkntfs C:
檢查狀態可獲得下列訊息:

檔案系統的類型是 NTFS。
C: 未更動。
只檢查特定磁碟
從 /C 的 BootExecute 值可以知道,

autocheck autochk /m \??\C:
autocheck autochk *
在檢查完 C: 之後,還會繼續檢查所有磁碟,所以如果只想要檢查 C: 的話,可以依序執行下列指令:

> chkntfs /D
> chkntfs /X C: D: E:
> chkntfs /C C:
這樣一來 BootExecute 的值會變成:

autocheck autochk /m \??\C:
autocheck autochk /k:C /k:D /k:E *
也就是說 autochk.exe 會先檢查 C: ,然後剩下要檢查的磁碟機裡面會自動跳過 C: 、 D: 、 E: 不檢查。

dirty bit
dirty bit 用來表示磁碟機乾不乾淨,需不需要執行磁碟檢查。在 XP 裡面要知道某個磁碟機是不是乾淨的,可以透過 fsutil.exe 這個工具來獲取資訊。

查詢
查詢 dirty bit 的指令

fsutil dirty query C:
其結果可能是

磁碟區 - C: 不髒
或是

磁碟區 - C: 不乾淨
設定
設定 dirty bit 的指令為

fsutil dirty set C:
執行後的訊息為:

磁碟區 - C: 已經標記為不乾淨
注意
dirty bit 應該只能手動設定,但不能手動取消。
檢查完磁碟機以後 dirty bit 會自動取消。

  • greenleafland 發表於樂多回應(3)引用(0)電腦應用編輯本文
    樂多分類:日記/一般切換閱讀版型 │昨日人次:12 │累計人次:14326
     

    引用URL

    http://cgi.blog.roodo.com/trackback/7373639

    回應文章
    我倔强的不愿屈服,换来的却也只是伤痕累累
    | 檢舉 | Posted by 百家乐 at 2014年2月10日 02:14
    常山心头刚出现这个念头,一群修炼者从天而降,杀向了石猴群。
    www.qddrjgzc.com http://www.qddrjgzc.com
    | 檢舉 | Posted by www.qddrjgzc.com at 2014年4月24日 00:04
    感受着那温暖拂面的感觉,总是使得她的心静逸安稳许多。
    太阳城 http://www.cy023.com
    | 檢舉 | Posted by 太阳城 at 2014年4月24日 00:04