昨天,我無意間運(yùn)行了一下chkdsk,結(jié)果竟然報(bào)告有錯誤,需要使用chkdsk /F來進(jìn)行修復(fù)。系統(tǒng)是Windows XP Pro SP2簡體中文版的,操作系統(tǒng)所在的這個(gè)E:盤是ntfs文件系統(tǒng)。我印象中ntfs是不太有磁盤錯誤(硬盤物理損壞另當(dāng)別論)這種情況的,因?yàn)閚tfs本身就具備強(qiáng)大的日志和自動修復(fù)功能。
有了問題了當(dāng)然要修復(fù)。于是運(yùn)行chkdsk /F,chkdsk報(bào)告說無法鎖定當(dāng)前驅(qū)動器,需要在下次啟動時(shí)候運(yùn)行chkdsk。這是意料之中的,因?yàn)楫?dāng)前這個(gè)分區(qū)是系統(tǒng)所做的分區(qū)。那就重啟動吧。
重啟動,chkdsk自動運(yùn)行,過程好像挺順利,很訣結(jié)束并再次重啟,進(jìn)入圖形界面。
出于習(xí)慣,我再次運(yùn)行chkdsk,看看現(xiàn)在有沒有問題了。令我有點(diǎn)驚訝的事情發(fā)生了,chkdsk還是報(bào)告說有問題,需要用/F參數(shù)來修復(fù)。具體的輸出信息與上次一樣:
E:\>chkdsk
文件系統(tǒng)的類型是 NTFS。
卷標(biāo)是 hda3_WinXP。
警告! 沒有指定 F 參數(shù)
用只讀模式運(yùn)行 CHKDSK。
CHKDSK 正在校驗(yàn)文件(3 的階段 1)...
文件校驗(yàn)完成。00。
CHKDSK 正在校驗(yàn)索引(3 的階段 2)...
索引校驗(yàn)完成。00。
CHKDSK 正在恢復(fù)丟失的文件。
CHKDSK 正在校驗(yàn)安全描述符(3 的階段 3)...
安全描述符校驗(yàn)完成。
CHKDSK 發(fā)現(xiàn)主控文件表(MFT)位圖中有標(biāo)記為
已分配的可用空間。
正在修復(fù)卷位圖的錯誤。
Windows 發(fā)現(xiàn)文件系統(tǒng)有問題。
運(yùn)行 CHKDSK (使用選項(xiàng) /F) 來更正這些問題。
總共有 12586895 KB 磁盤空間。
61555 個(gè)文件中有 9631188 KB。
6810 個(gè)索引 20528 KB。
不正確扇區(qū) 0 KB。
系統(tǒng)正在使用 153423 KB。
日志文件占用了 64992 KB。
磁盤上 2781756 KB 可用。
每個(gè)分配單元中有 4096 字節(jié)。
磁盤上共有 3146723 個(gè)分配單元。
磁盤上有 695439 個(gè)可用的分配單元。
我當(dāng)時(shí)就覺得不妙,難道硬盤有物理故障了?這可是用了約2個(gè)月的新硬盤呀。再修復(fù)一次試試看。
于是繼續(xù)用chkdsk /F,重啟動自動chkdsk。再次重啟進(jìn)入界面。然后再用chkdsk看看,問題依舊呀。
我就這樣重新啟動了4、5次,但是都沒有解決問題。chkdsk總是報(bào)告說有問題,需要用/F修復(fù),然而真用了/F但還是沒有修復(fù)問題。
報(bào)告的錯誤,除了上面那種,有時(shí)是這樣的:
E:\>chkdsk
文件系統(tǒng)的類型是 NTFS。
卷標(biāo)是 hda3_WinXP。
警告! 沒有指定 F 參數(shù)
用只讀模式運(yùn)行 CHKDSK。
CHKDSK 正在校驗(yàn)文件(3 的階段 1)...
文件校驗(yàn)完成。00。
CHKDSK 正在校驗(yàn)索引(3 的階段 2)...
索引校驗(yàn)完成。00。
CHKDSK 正在校驗(yàn)安全描述符(3 的階段 3)...
安全描述符校驗(yàn)完成。
正在修復(fù)卷位圖的錯誤。
Windows 發(fā)現(xiàn)文件系統(tǒng)有問題。
運(yùn)行 CHKDSK (使用選項(xiàng) /F) 來更正這些問題。
總共有 12586895 KB 磁盤空間。
61556 個(gè)文件中有 9631192 KB。
6810 個(gè)索引 20528 KB。
不正確扇區(qū) 0 KB。
系統(tǒng)正在使用 153423 KB。
日志文件占用了 64992 KB。
磁盤上 2781752 KB 可用。
每個(gè)分配單元中有 4096 字節(jié)。
我覺得問題復(fù)雜了。還是上網(wǎng)查查吧。
google: chkdsk ntfs "正在修復(fù)卷位圖的錯誤"
結(jié)果只有一個(gè)網(wǎng)頁,在一個(gè)bbs中有人也發(fā)現(xiàn)這個(gè)問題,總解決不了。換個(gè)思路,用英文查,畢竟英文資料比中文的多呀。
google: chkdsk ntfs bitmap error
希望我的這個(gè)“翻譯”能比較準(zhǔn)確地命中。結(jié)果是一大堆呀,一個(gè)個(gè)打開來看看,原來,老外遇到這種情況是很多的。在很多論壇、bbs中,都是尋求這個(gè)問題的解答的,但連續(xù)看了很多網(wǎng)頁,都沒有完善地解決這個(gè)問題。
看來這是個(gè)疑難雜癥?
不過,通過這些英文網(wǎng)頁,我知道在英文版中,chkdsk對這個(gè)問題的輸出中有這樣的關(guān)鍵字句:Correcting errors in the Volume Bitmap。
好的,縮小范圍,再來查一下。
google: chkdsk ntfs "Correcting errors in the Volume Bitmap"
這次很順利,馬上在一個(gè)老外的博客網(wǎng)頁上,發(fā)現(xiàn)了這篇文章:
http://mike.steinbaugh.com/journal/2002/08/28/ntfs-file-system-glitch.html
讀完這篇文章,終于知道了這個(gè)問題的具體情況。大意是這樣的。
這個(gè)博客的主人也遇到了這個(gè)問題,難以解決。于是他尋求微軟的技術(shù)支持。微軟答復(fù)說,ntfs上的chkdsk的確有這個(gè)問題。
當(dāng)用chkdsk檢查ntfs卷時(shí),也會檢查主控文件表(MFT)中的安全描述子(security descriptor)數(shù)據(jù)庫,如果發(fā)現(xiàn)有的安全描述子不被任何文件所引用,chkdsk就會輸出這個(gè)錯誤信息。
進(jìn)一步的解釋。當(dāng)我們對ntfs卷上的文件、目錄設(shè)置訪問權(quán)限時(shí),系統(tǒng)會在該卷的MFT中創(chuàng)建一個(gè)唯一的安全描述子,用以描述這些權(quán)限設(shè)置,并且對這個(gè)文件或目錄創(chuàng)建一個(gè)引用(類似于指針),指向這個(gè)安全描述子。這樣就完成了對這個(gè)目錄或文件的權(quán)限設(shè)置。
然而,如果以后不再使用這些安全描述子(注:我理解為,撤銷了這些額外的權(quán)限設(shè)置),那么這些安全描述子并不會被刪除,而是繼續(xù)保留。因?yàn)椋锌赡芩鼈冞€會被使用,就像所有的Cache策略一樣。
然后問題就出現(xiàn)了,chkdsk檢測出這些安全描述子不被任何文件所引用,但還占據(jù)在MFT中,所以認(rèn)為是“主控文件表(MFT)位圖中有標(biāo)記為已分配的可用空間”。
可以說,這是chkdsk將一個(gè)比較正常的現(xiàn)象當(dāng)作故障來報(bào)告了,而且它也沒辦法修復(fù),其實(shí)也不必修復(fù)。
了解了這些,我們也可以知道,這就不必要去“解決”了,因?yàn)楸举|(zhì)上也沒有什么問題。
當(dāng)然,從軟件完善的角度來說,chkdsk這樣的輸出肯定是不妥當(dāng)?shù)?,小題大做,引起用戶的“恐慌”??纯淳W(wǎng)上那么多對這個(gè)問題求助的帖子,就知道了。
看那個(gè)老外的博客上的文章,他貼出這個(gè)帖子(當(dāng)時(shí)已經(jīng)解決)是2002年8月28日,當(dāng)時(shí)微軟就是這么回復(fù)他的。但直到現(xiàn)在,2005年了,都WinXP SP2了,微軟依然不進(jìn)行任何修正。這好像也太不應(yīng)該了吧。
其實(shí)要修正這個(gè)問題,真的很簡單,只要讓chkdsk忽略這種情況,對此現(xiàn)象不輸出錯誤信息就行了。微軟對真正的安全問題是很重視,補(bǔ)丁是三天兩頭出,但對這種“不是問題的問題”,它就可以這么放任不管?
=====================================
卷位圖是文件系統(tǒng)的術(shù)語,這代表你的硬盤的文件系統(tǒng)出了問題或者是硬盤有壞道。
=====================================
NTFS 主文件表 (MFT) 擴(kuò)展
創(chuàng)建和格式化 NTFS 卷時(shí),將創(chuàng)建 NTFS 圖元文件。其中的一個(gè)圖元文件稱為主文件表 (MFT)。它在創(chuàng)建時(shí)非常?。ù蠹s 16 KB),但將隨著在卷上創(chuàng)建文件和文件夾而增大。創(chuàng)建文件時(shí),該文件會作為文件記錄段 (FRS) 輸入 MFT。FRS 的大小始終是 1024 字節(jié) (1 KB)。在將文件添加到卷中時(shí),MFT 將增大。但是,當(dāng)刪除文件時(shí),相關(guān)的 FRS 將被標(biāo)記為可供再次使用,但 FRS 和相關(guān) MFT 分配總數(shù)保持不變。這就是在您刪除大量文件后仍不能重新獲得由 MFT 使用的空間的原因。
NTFS 文件系統(tǒng)損壞
在極為罕見的情況下,NTFS 圖元文件 $MFT 或 $BITMAP 可能已損壞,進(jìn)而導(dǎo)致磁盤空間丟失??赏ㄟ^對卷運(yùn)行 chkdsk /f 命令來鑒定并修復(fù)此問題。如果必須調(diào)整 $BITMAP,您會在 chkdsk 將近結(jié)束時(shí)收到以下消息:
正在修復(fù)主文件表 (MFT) 位圖屬性的錯誤。CHKDSK 發(fā)現(xiàn)卷位圖中有標(biāo)記為已分配的可用空間。Windows 已更正文件系統(tǒng)。
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請
點(diǎn)擊舉報(bào)。