2012年2月23日 星期四

chkdsk d: /f /r /x

資料出處:
http://tw.knowledge.yahoo.com/question/question?qid=1610020507160



CHKDSK 檢查磁碟並顯示狀態報告。



說明



chkdsk.exe 的功用是檢查磁碟,



例如找出是否有 cross link 或 lost chain ,



並且顯示磁碟狀態。一般磁碟都會分成許多的叢集 (cluster) ,



一個叢集就是一個最小的儲存單位。



假設某個檔案有 1 KB ,而一個叢集是 4 KB ,



那麼這個檔案將會佔去一整個叢集,



此叢集剩下的 3 KB 空間無法被其他任何檔案使用。



磁碟另外還會維護一個配置表,記錄每個檔案所用到的叢集。



所謂的 cross link 就是在配置表裡有兩個以上的檔案用到同一個叢集,



而 lost chain 則是某個叢集實際上有被使用,



但是在配置表裡卻沒有被任何檔案使用的紀錄。



使用方式



語法如下:



chkdsk [volume:[[path]filename]]] [/F] [/V] [/R] [/X]



[/I] [/C] [/L[:size]]



參數說明如下:



volume:



磁碟代號,例如 C: 或 D: ,在不指定的情況下會檢查目前所在的磁碟。



[path] filename



檢查檔案分配叢集的破碎情形 (Fragmentation) ,



檔案系統為 FAT 時此參數才有用。例如:



> chkdsk C:\\test\\*



會檢查 C:\test 下所有檔案的破碎情形,



如果所有檔案所分配到的叢集都是連續的,則輸出結果會出現



所有指定的檔案都有連續性。



若有檔案分配到不連續的叢集,則輸出結果會出現



\test\t1.txt 包含 2 個不連續區塊。



\test\t2.txt 包含 3 個不連續區塊。



當檔案破碎情況嚴重時,就可以進行磁碟重組了。



/F



修正磁碟錯誤。使用此參數會鎖定磁碟,鎖定時其他程序將無法存取。



如果無法鎖定,則可能會詢問是否卸載該磁碟:



無法執行 Chkdsk,因為磁碟區被其他處理程序使用中。



如果您先解下這個磁碟區的話,Chkdsk 可能可以執行。



所有在這個磁碟區上開啟的控制碼都會失效。



您想要強制解下這個磁碟區嗎? (Y/N)



或是詢問是否在下次開機時執行:



無法執行 Chkdsk,因為有其他處理程序正在使用磁碟區。



您是否要將這個磁碟區排定在下次系統重新啟動時



進行檢查? (Y/N)



/V



在 FAT 的情況下會顯示磁碟上每個檔案的完整路徑及名稱,



在 NTFS 的檔案系統下會一併顯示清除的訊息,



這個訊息會出現在階段 3 ,如下:



正在從檔案 9 的索引 $SII 清除 9 未使用的索引項目。



正在從檔案 9 的索引 $SDH 清除 9 未使用的索引項目。



清除 9 未使用的安全性描述元。



之所以出現上面的安全性描述元,是因為有些檔案或資料夾被設定過 ACL ,



當檔案刪除時這些 ACL 資訊並未同時移除。



另外值得注意的是在沒有指定 /F 的情況下,並不會真的執行清除,



只會顯示相關資訊而已。



/R



找出損壞的磁區,並嘗試復原裡面儲存的資訊。跟 /F 一樣必須鎖定磁碟。




/L:size



只能用於 NTFS 檔案系統,用處是改變記錄檔大小,



如果沒有指定大小的話,則顯示目前記錄檔大小,如下:



檔案系統的類型是 NTFS。



目前的記錄檔大小為 65536 KB 。



這個磁碟區的預設記錄檔大小為 65536 KB。



/X



必要時強制卸載磁碟,使用此參數會自動包含



/F 。



/I



/I



只適用於

NTFS 檔案系統,作用是跳過索引檢查,

可減少 chkdsk 檢查所需要的時間。



/C



只適用於 NTFS 檔案系統,作用是跳過資料夾結構的循環檢查,



也就是不檢查資料夾的子資料夾是否又指回去自己。