如果有朋友問:“我在用DOS啟動盤啟動後格式化了C盤,重啟後照樣進入了原先C盤的操作系統,反而D盤的內容全部不見了。”你會毫不猶豫地回答:“那是因為你的C盤在裝系統時或裝了系統後被轉換成了NTFS格式,而NTFS格式的C盤在實DOS模式下不可見,所以你在DOS中見到並格式化的C盤其實是WIN裡面的D盤。”事實如此,NTFS格式的分區在實DOS模式下的不認盤符已經是大多數朋友掌握的知識。
但如果反過來問:“我在用DOS啟動盤啟動後格式化了D盤,重啟後硬盤居然進不了系統,經查看D盤的數據還在,反而C盤的數據沒有了。”相信會被搞得一頭霧水。下面我們就通過一個實驗來解決這個故障現象。為方便說明,對Win2000(NT5.0)/WinXP(NT5.1)/Win2003(NT5.2)我們在下面簡稱“NT系統”;而“DOS啟動盤”則指的是我們現在最常用到的Win98版本的DOS啟動盤(MSDOS7.1)。TW.WiNGWIt.com為避免在說清楚問題時盤符上的混淆以及我們針對的故障現象,硬盤的分區格式也定為最常用的FAT32格式。
現在我們以標准格式進行操作來做實驗。
第一步:DOS啟動盤啟動,用FDISK對硬盤進行分區:主分區(C盤)、擴展分區、邏輯分區1(D盤)、邏輯分區2(E盤)、激活主分區。重啟後對三個分區用FORMAT進行格式化。(這一步操作也可用PQ或DM進行)
第二步:繼續用NT系統光盤啟動安裝系統至C盤。
第三步:安裝完成後進入NT系統。打開我的電腦,右擊D盤,選擇“格式化”(文件格式仍舊選擇FAT32)。完成格式化後再往D盤隨便復制幾個文件,以方便後來查看格式化結果。
第四步:重啟後用DOS盤啟動系統,再用FORMAT命令對D盤進行格式化:A:\>format d:或A:\>format d:/q
第五步:重啟,故障出現:C盤數據全部丟失,D盤文件仍然存在。
分析:只要跳過上面第三步的操作,無故障發生,那我們就從執行第三步操作的前後找起,執行完第二步後我們先不急於執行第三步,而是用DOS啟動盤啟動,用DEBUG調入D盤的0扇區數據,查看其BPB表中的變化(一些無影響的BPB表數據這裡不介紹了)
A:\>debug
-L 100 3 0 1
-D 11C L4
B7 72 13 02
-Q
上面操作顯示的字節十六進制值在BPB表中定義為特殊隱含扇區數,下面略述一下其在FAT32和FAT16格式上的不同之處:
FAT32格式中:該值為該邏輯盤起始扇區相對於第一張分區表(也有稱為主引導扇區或硬盤0柱0道1扇區)
的扇區數,分區大小不同該值不同。
FAT16格式中:該值為該邏輯盤起始扇區相對於該盤分區表(每個邏輯盤對應一張分區表)所在扇區的扇區數,值一般固定,等同於硬盤參數中的每磁頭扇區數,現在的硬盤中的每磁頭扇區數都為63個,即十六進制3F,在BPB表中體現為3F 00 00 00。
在實際使用中發現,這個四字節的值除了與活動分區引導系統和格式化有關外,其它的讀寫操作並未發現有不良影響。
記下剛才的BPB表中的四個字節後繼續我們的第三步操作,並且在第四步操作中用DOS盤啟動後不先進行FORMAT操作,而再次用DEBUG檢查一下第三步的執行結果:
A:\>DEBUG
-L 100 3 0 1
-D 11C L4
3F 00 00 00
-Q
我們發現該值竟然被NT系統的格式化以FAT16的標准重寫,而DOS啟動盤中的FORMAT命令在針對FAT32格式的分區進行格式化時是通過該值進行確定邏輯盤的起始位置,被重寫為3F 00 00 00後就剛好與我們的C盤的起始位置相同。現在執行完FORMAT D:或FORMAT D:/Q後,你的C盤的文件就只能看數據恢復軟件有無回天之術了。
在這裡還發現NT系統的一個奇怪的現象,懂匯編的朋友可以在NT系統的命令提示符中用DEBUG查詢一下虛擬DOS的版本號,居然為5.0版,在實DOS模式中的MSDOS5.0正好只支持FAT16而不支持FAT32,相信在其格式化FAT32格式分區時與填寫BPB表中的四個字節有一定的聯系。
不只是在NT系統的窗口狀態下的格式化,還包括在NT系統安裝過程中的格式化、控制台中的格式化操作都會使FAT32格式分區的BPB表中的該值轉寫為FAT16標准,這就給習慣在DOS下處理問題的朋友留下的隱患。當你准備在實DOS模式下對FAT32格式的非主分區進行格式化時就得慎重了。上面實驗的例子中,就算C盤已經轉化成NTFS格式(FORMAT D:改成FORMAT C:),也難逃一劫。在網上不時會有朋友提起這類故障現象,希望上面的實驗和分析,各位朋友能引以為鑒。
預防:在不清楚自己或朋友機器上的FAT32格式的邏輯分區有沒有經過NT系統格式化的情況下,如果真的需要在實DOS模式下進行格式化,可以先執行SYS命令(會修復上面提到的影響FORMAT的BPB表中的四個字節),再執行FORMAT命令,以減少不必要的損失。上面的第四步我們如果先執行A:\>sys d:再執行A:\>format d:/q,就可以正確無誤地格式化D盤了。
From:http://tw.wingwit.com/Article/Software/201309/1613.html