九色国产,午夜在线视频,新黄色网址,九九色综合,天天做夜夜做久久做狠狠,天天躁夜夜躁狠狠躁2021a,久久不卡一区二区三区

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
FAT文件系統(tǒng)組織結(jié)構(gòu)

硬盤的DOS管理結(jié)構(gòu):

扇區(qū)=128*(2的N次方)

磁道=柱面

容量=磁頭×磁道×每道扇區(qū)×每扇區(qū)字節(jié)

   簇是DOS最小單位,。當(dāng)創(chuàng)建一個很小的文件時,如是一個字節(jié),則它在磁盤上并不是只占一個字節(jié)的空間,而是占有整個一簇。DOS視不同的存儲介質(zhì)(如軟盤,硬盤),不同容量的硬盤,簇的大小也不一樣。簇的大小可在稱為磁盤參數(shù)塊(BPB)中獲取。簇的概念僅適用于數(shù)據(jù)區(qū)。簇是DOS進(jìn)行分配的最小單位,不同的存儲介質(zhì),不同容量的硬盤,不同的DOS版本,簇的大小也不一樣。

物理扇區(qū)編號(柱面/磁頭/扇區(qū),起始柱面0,起始磁頭0,起始扇區(qū)1,bios內(nèi)置中斷程序)

絕對扇區(qū)編號(數(shù)字,起始扇區(qū)為0,普通人的編法)

DOS扇區(qū)編號(數(shù)字,起始扇區(qū)為0,操作系統(tǒng)采用)

邏輯扇區(qū)(同上)

絕對扇區(qū)以及相對扇區(qū)又叫DOS扇區(qū)只是一個數(shù)字

使用相對扇區(qū)編號時,DOS是從柱面0磁頭1扇區(qū)1開始,柱面0磁頭0扇區(qū)1-柱面0磁頭0扇區(qū)17(設(shè)每磁道17個扇區(qū))沒有相對扇區(qū)又叫DOS扇區(qū)編號,只能調(diào)用BIOS訪問。

第一個DOS扇區(qū)編號為0,該磁道上剩余的扇區(qū)編號為1到16(設(shè)每磁道17個扇區(qū)),然后是磁頭號為2,柱面為0的17個扇區(qū),形成的DOS扇區(qū)號從17到33。直到該柱面的所有磁頭。然后再移到柱面1,磁頭1,扇區(qū)1繼續(xù)進(jìn)行DOS扇區(qū)的編號,即按扇區(qū)號,磁頭號,柱面號(磁道號)增長的順序連續(xù)地分配DOS扇區(qū)號。

DH:第一個DOS扇區(qū)的磁頭號

DC:第一個DOS扇區(qū)的柱面號

DS:第一個DOS扇區(qū)的扇區(qū)號

NS:每磁道扇區(qū)數(shù)

NH:磁盤總的磁頭數(shù)

則某扇區(qū)(柱面C磁頭H扇區(qū)S)的相對扇區(qū)號RS為:

RS=(C-DC)×NH×NS+NS(H-DH)+(S-DS)

若已知RS,DC,DH,DS,NS和NH則

S=(RS MOD NS)+DS

H=((RS DIV NS)MOD NH)+DH

C=((RS DIV NS)DIV NH)+DC

DOS磁盤區(qū)域的劃分

  高級格式化好的硬盤,整個磁盤按所記錄數(shù)據(jù)的作用不同可分為主引導(dǎo)記錄(MBR:Main Boot Record),Dos引導(dǎo)記錄(DBR:Dos Boot Record),文件分配表(FAT:File AssignTable),根目錄(BD:Boot Directory)和數(shù)據(jù)區(qū)。前5個重要信息在磁盤的外磁道上,原因是外圈周長總大于內(nèi)圈周長,也即外圈存儲密度要小些,可靠性高些。

MBR位于硬盤第一個物理扇區(qū)(絕對扇區(qū))柱面0,磁頭0,扇區(qū)1處。由于DOS是由柱面0,磁頭1,扇區(qū)1開始,故MBR不屬于DOS扇區(qū),DOS不能直接訪問。MBR中包含硬盤的主引導(dǎo)程序pre-boot和硬盤分區(qū)表dpt和55aa組成。分區(qū)表有4個分區(qū)記錄區(qū)。記錄區(qū)就是記錄有關(guān)分區(qū)信息的一張表。它從主引導(dǎo)記錄偏移地址01BEH處連續(xù)存放,每個分區(qū)記錄區(qū)占16個字節(jié)。

硬盤的0柱面、0磁頭、1扇區(qū)稱為主引導(dǎo)記錄MBR,該記錄占用512個字節(jié),它用于硬盤啟動時將系統(tǒng)控制權(quán)轉(zhuǎn)給用戶指定的的某個活動主分區(qū)。

MBR的內(nèi)容是在硬盤分區(qū)時由分區(qū)軟件(如FDISK)寫入該扇區(qū)的,MBR不屬于任何一個操作系統(tǒng),不隨操作系統(tǒng)的不同而不同,即使不同,MBR也不會摻雜操作系統(tǒng)的性質(zhì),具有公共引導(dǎo)的特性。但安裝某些多重引導(dǎo)功能的軟件或LINUX的LILO時有可能改寫它;它先于所有的操作系統(tǒng)被調(diào)入內(nèi)存并發(fā)揮作用,然后才將控制權(quán)交給活動主分區(qū)內(nèi)的操作系統(tǒng)。

MBR由三部分構(gòu)成:

1.主引導(dǎo)程序pre-boot代碼,占446字節(jié)

2.硬盤分區(qū)表DPT,占64字節(jié)

3.主引導(dǎo)扇區(qū)結(jié)束標(biāo)志AA55H占2個字節(jié)

1.主引導(dǎo)程序代碼從偏移0000H開始到偏移01BDH結(jié)束的446字節(jié);主引導(dǎo)程序代碼包括一小段執(zhí)行代碼。啟動PC 機時,系統(tǒng)首先對硬件設(shè)備進(jìn)行測試,成功后進(jìn)入自舉程序INT 19H;然后讀系統(tǒng)磁盤0柱面、0磁頭、1扇區(qū)的主引導(dǎo)扇區(qū)MBR的內(nèi)容到內(nèi)存指定單元0:7C00 首地址開始的區(qū)域,并執(zhí)行MBR程序段。

主引導(dǎo)代碼實現(xiàn)下列功能:

  1.掃描分區(qū)表查找活動分區(qū);

  2.尋找活動分區(qū)的起始扇區(qū);

  3.將活動分區(qū)的引導(dǎo)扇區(qū)讀到內(nèi)存;

  4.執(zhí)行引導(dǎo)扇區(qū)的運行代碼。

  如果主引導(dǎo)代碼未完成這些功能,系統(tǒng)顯示下列錯誤信息:

  Invalid partition table

  Error loading operating system

  Missing operating system

二、硬盤分區(qū)表DPT是從偏移01BEH開始到偏移01FDH結(jié)束的64字節(jié);

硬盤分區(qū)表分為四小部分,每一小部分表示一個分區(qū)的信息,占16字節(jié)。在這里我們可以看出,硬盤的總分區(qū)數(shù)為什么不能大于4。其中可激活分區(qū)數(shù)不得大于3,擴展分區(qū)數(shù)不得大于1,當(dāng)前活動分區(qū)數(shù)必須小于等于1。分區(qū)表的每一分區(qū)的第0個字節(jié)是自舉標(biāo)志,其值為80H時,表示該分區(qū)是當(dāng)前活動分區(qū),可引導(dǎo),其值為00H時,表示該分區(qū)不可引導(dǎo)。第4字節(jié)是分區(qū)類型。每一分區(qū)的第1至第3字節(jié)是該分區(qū)起始地址。其中第1字節(jié)為起始磁頭號(面號);第2字節(jié)的低6位為起始扇區(qū)號,高2位則為起始柱面號的高2位;第3字節(jié)為起始柱面號的低8位。因此,分區(qū)的起始柱面號是用10位二進(jìn)制數(shù)表示的,最大值為2^10 = 1024,因邏輯柱面號從0開始計,故柱面號的顯示最大值為1023。同理,用6位二進(jìn)制數(shù)表示的扇區(qū)號不會超過2^6 - 1 = 63;用8位二進(jìn)制數(shù)表示的磁頭號不會超過2^8 - 1 = 255。每一分區(qū)的第5至第7字節(jié)表示分區(qū)的終止地址,各字節(jié)的釋義與第1至第3字節(jié)相同。這里我們假設(shè)一種極端的情況:如果讓第5至第7字節(jié)的所有二進(jìn)制位都取1,就獲得了柱面號、磁頭號和扇區(qū)號所能表示的最大值,從而得到最大絕對扇區(qū)號為:1024 × 256 × 63 =16,515,072這個扇區(qū)之前的所有物理扇區(qū)所包含的字節(jié)數(shù)為:16,515,072 × 512Bytes ≈ 8.46×109Bytes= 8.46GB。

  由此可知硬盤的容量設(shè)計為什么會有8.4GB這一檔,分區(qū)表每一分區(qū)的第1至第3字節(jié)以及第5至第7字節(jié)的數(shù)據(jù)結(jié)構(gòu)已經(jīng)不能滿足大于8.46GB的大容量硬盤的需要??紤]到向下兼容的需要,業(yè)界并未對從DOS時代就如此定義的硬盤分區(qū)表提出更改意見,否則改動所牽涉的面太廣,會造成硬件和軟件發(fā)展上的一個斷層,幾乎無法被業(yè)界和用戶所接受。硬盤廠商解決這一問題的方法是定義了新的INT 13服務(wù)擴展標(biāo)準(zhǔn)。新的INT 13服務(wù)擴展標(biāo)準(zhǔn)不再使用操作系統(tǒng)的寄存器傳遞硬盤的尋址參數(shù),而使用存儲在操作系統(tǒng)內(nèi)存里的地址包。地址包里保存的是64位LBA地址,如果硬盤支持LBA尋址,就把低28位直接傳遞給ATA接口,如果不支持,操作系統(tǒng)就先把LBA地址轉(zhuǎn)換為CHS地址,再傳遞給ATA接口。通過這種方式,能實現(xiàn)在ATA總線基礎(chǔ)上CHS尋址的最大容量是136.9GB,而LBA尋址的最大容量是137.4GB。新的硬盤傳輸規(guī)范ATA 133規(guī)范又把28位可用的寄存器空間提高到48位,從而支持更大的硬盤。分區(qū)表每一分區(qū)的第8至第11字節(jié)表示該分區(qū)的起始相對扇區(qū)數(shù)(即該扇區(qū)之前的絕對扇區(qū)個數(shù)),高位在右,低位在左;第12至第15字節(jié)表示該分區(qū)實際占用的扇區(qū)數(shù),也是高位在右,低位在左;分區(qū)表這類數(shù)據(jù)結(jié)構(gòu)的表達(dá)方式與機器中數(shù)據(jù)的實際存儲方式在順序上是一致的,即低位在前,高位在后。因此,在從16進(jìn)制向十進(jìn)制作數(shù)值轉(zhuǎn)換時,需將字段中的16進(jìn)制數(shù)以字節(jié)為單位翻轉(zhuǎn)調(diào)位,用4個字節(jié)可以表示最大2^32個扇區(qū),即2TB=2048GB。系統(tǒng)在分區(qū)時,各分區(qū)都不允許跨柱面,即均以柱面為單位,這就是通常所說的分區(qū)粒度。在未超過8.4GB的分區(qū)上,C/H/S的表示方法和扇區(qū)數(shù)的表示方法所表示的分區(qū)大小是一致的。超過8.4GB的/H/S/C一般填充為FEH/FFH/FFH,即C/H/S所能表示的最大值;有時候也會用柱面對1024的模來填充。不過這幾個字節(jié)是什么其實都無關(guān)緊要了。擴展分區(qū)中的每個邏輯驅(qū)動器都存在一個類似于MBR的擴展引導(dǎo)記錄(Extended Boot Record,EBR)。擴展引導(dǎo)記錄包括一個擴展分區(qū)表和扇區(qū)結(jié)束標(biāo)志55AA。一個邏輯驅(qū)動器中的引導(dǎo)扇區(qū)一般位于相對扇區(qū)32或63。如果磁盤上沒有擴展分區(qū),那么就不會有擴展引導(dǎo)記錄和邏輯驅(qū)動器。第一個邏輯驅(qū)動器的擴展分區(qū)表中的第一項指向它自身的引導(dǎo)扇區(qū);第二項指向下一個邏輯驅(qū)動器的EBR,如果不存在進(jìn)一步的邏輯驅(qū)動器,第二項就不會使用,而被記錄成一系列零。如果有附加的邏輯驅(qū)動器,那么第二個邏輯驅(qū)動器的擴展分區(qū)表的第一項會指向它本身的引導(dǎo)扇區(qū),第二個邏輯驅(qū)動器的擴展分區(qū)表的第二項指向下一個邏輯驅(qū)動器的EBR。擴展分區(qū)表的第三項和第四項永遠(yuǎn)都不會被使用。擴展分區(qū)表項中的相對扇區(qū)數(shù)是從擴展分區(qū)開始的扇區(qū)到該邏輯驅(qū)動器中第一個扇區(qū)的扇區(qū)數(shù);占用的扇區(qū)數(shù)是指組成該邏輯驅(qū)動器的扇區(qū)數(shù)目。

    有時候在磁盤的末尾會有剩余空間,由于分區(qū)是以1柱面的容量為分區(qū)粒度的,那么如果磁盤總空間不是整數(shù)個柱面的話,不夠一個柱面的剩下的空間就是剩余空間了,這部分空間并不參與分區(qū),所以一般無法利用。

三、主引導(dǎo)扇區(qū)的最后兩個字節(jié)(偏移1FEH和偏移1FFH),其值為AA55H,它表示該扇區(qū)是個有效的引導(dǎo)扇區(qū),可用來引導(dǎo)硬磁盤系統(tǒng)。

分區(qū)引導(dǎo)扇區(qū)DBR(DOS BOOT RECORD)是由FORMAT高級格式化命令寫到該扇區(qū)的內(nèi)容;DBR是由硬盤的MBR裝載的程序段。DBR裝入內(nèi)存后,即開始執(zhí)行該引導(dǎo)程序段,其主要功能是完成操作系統(tǒng)的自舉并將控制權(quán)交給操作系統(tǒng)。每個分區(qū)都有引導(dǎo)扇區(qū),但只有被設(shè)為活動分區(qū)的DBR才會被MBR裝入內(nèi)存運行。

DBR主要由下列幾個部分組成:

  1.跳轉(zhuǎn)指令,占用3個字節(jié)的跳轉(zhuǎn)指令將跳轉(zhuǎn)至引導(dǎo)代碼。

  2.廠商標(biāo)識和DOS版本號,該部分總共占用8個字節(jié)。

  3.BPB(BIOS ParameterBlock, BIOS 參數(shù)塊)。

  4.操作系統(tǒng)引導(dǎo)程序。

  5.結(jié)束標(biāo)志字,結(jié)束標(biāo)志占用2個字節(jié),其值為AA55

  DBR中的內(nèi)容除了第5部分結(jié)束標(biāo)志字固定不變之外,其余4個部分都是不確定的,其內(nèi)容將隨格式化所用的操作系統(tǒng)版本及硬盤的邏輯盤參數(shù)的變化而變化。

  一、FAT32的分區(qū)引導(dǎo)扇區(qū)

  為了使加載文件的操作更加靈活,加上FAT32文件系統(tǒng)采用"活動"的FDT表,,同時考慮到引導(dǎo)程序的代碼量和為今后發(fā)展保留適當(dāng)?shù)挠嗔浚現(xiàn)AT32文件系統(tǒng)分區(qū)引導(dǎo)扇區(qū)占據(jù)了6個扇區(qū),只有前3個扇區(qū)作為系統(tǒng)的分區(qū)引導(dǎo)扇區(qū),其余3個扇區(qū)保留暫未使用。分區(qū)引導(dǎo)扇區(qū)對于操作系統(tǒng)的啟動和磁盤文件的訪問具有至關(guān)重要的作用;引導(dǎo)程序代碼的損壞將導(dǎo)致操作系統(tǒng)不能正常啟動,磁盤讀寫參數(shù)的破壞將造成存儲在磁盤上的文件不能正常讀寫。

  由于分區(qū)引導(dǎo)扇區(qū)的重要性,F(xiàn)AT32文件系統(tǒng)在在第一個分區(qū)引導(dǎo)扇區(qū)的6個扇區(qū)后的6個扇區(qū)里保留了分區(qū)引導(dǎo)扇區(qū)的備份,在啟動時操作系統(tǒng)可以對兩份引導(dǎo)扇區(qū)進(jìn)行比較,以便選擇正確的引導(dǎo)扇區(qū)來引導(dǎo)系統(tǒng)。由于在磁盤正常工作過程中系統(tǒng)不再對引導(dǎo)扇區(qū)的程序和數(shù)據(jù)進(jìn)行修改,因此備份的分區(qū)引導(dǎo)扇區(qū)損壞的可能性非常小。

分區(qū)引導(dǎo)扇區(qū)的第一個扇區(qū)的前三個字節(jié)是一條跳轉(zhuǎn)指令,然后是8個字節(jié)長的OEM ID(廠家標(biāo)識)和版本號,其后是簡稱為BPB的BIOS參數(shù)塊(BIOSParameter Block)。對于FAT32其各部分的意義如下表:

偏移地址長度(字節(jié)) 意義

0BH 2  每個扇區(qū)的字節(jié)數(shù),常取512。

0DH 1  每簇扇區(qū)數(shù);可以是1, 2, 4, 8, 16, 32, 64, 128,取決于文件系統(tǒng)格式及分區(qū)大小。

0EH 2  為操作系統(tǒng)保留的扇區(qū)數(shù);FAT32時多為十進(jìn)制的32,F(xiàn)AT16時為1,有的格式化工具可能將它設(shè)為36或63。

10H 1  FAT表的個數(shù);常取2。

11H

 2

 在FAT16中存放系統(tǒng)根目錄中允許登記的目錄項個數(shù),F(xiàn)AT32中用于標(biāo)注系統(tǒng)采用的是否為FAT32文件系統(tǒng)。其值為0000H表示磁盤使用FAT32文件系統(tǒng)。

13H

 2

 值為00H,為保持兼容性而保留,未使用。

15H

 1

 磁盤介質(zhì)標(biāo)志,硬盤為F8。

16H

 2

 未使用,值為00H。

18H

 2

 每個磁道的扇區(qū)數(shù)。

1AH

 2

 磁盤的磁頭數(shù)。

1CH

 4

 分區(qū)前隱藏扇區(qū)的個數(shù)。

20H

 4

 邏輯磁盤中的扇區(qū)總數(shù)。

24H

 4

 每個FAT表所占的扇區(qū)數(shù)。

28H

 2

 FAT表鏡像標(biāo)志,值為0表示系統(tǒng)保存2份互為備份的FAT表,值為1表示系統(tǒng)僅保存1份FAT表。

2AH

 2

 文件系統(tǒng)的主次版本(保留)。

2CH

 4

 磁盤根目錄的起始簇號。

30H

 2

 文件系統(tǒng)參數(shù)的扇區(qū)號,通常位于引導(dǎo)扇區(qū)的下一個扇區(qū)。

32H

 2

 備份分區(qū)引導(dǎo)扇區(qū)的邏輯扇區(qū)號。

34H

 12

 保留,未使用。

40H

 1

 中斷13呼叫的預(yù)設(shè)值,指明訪問的設(shè)備;軟盤為00H,硬盤為80H。

41H

 1

 用于中斷13呼叫。

42H

 1

 磁盤讀寫參數(shù)擴展標(biāo)志,其值為29H。

43H

 4

 格式化時隨機產(chǎn)生的磁盤卷的序列號。

47H

 11

 格式化時人工輸入的磁盤卷標(biāo)號。

52H

 8

 文件系統(tǒng)的標(biāo)識號(FAT32)。

  從偏移0x5A開始的數(shù)據(jù)為操作系統(tǒng)引導(dǎo)代碼。這是由偏移0x00開始的跳轉(zhuǎn)指令所指向的,此段指令在不同的操作系統(tǒng)上和不同的引導(dǎo)方式上,其內(nèi)容也是不同的。

  扇區(qū)的最后兩個字節(jié)存儲值為0x55AA的DBR有效標(biāo)志,對于其他的取值,系統(tǒng)將不會執(zhí)行DBR相關(guān)指令。

分區(qū)引導(dǎo)扇區(qū)的第2個扇區(qū)作為文件系統(tǒng)相關(guān)參數(shù)存儲標(biāo)識扇區(qū)(圖七),

除了保存扇區(qū)的標(biāo)識信息(RraA(00H)和rrAa(1E4H))外,還可能在偏移地址1E8H處存儲了文件系統(tǒng)有關(guān)的信息。其中扇區(qū)偏移地址1E8H~1EBH的4個字節(jié)存儲了邏輯磁盤中未使用的簇數(shù),通常用于快速計算邏輯磁盤的剩余空間(典型的操作是在資源管理器狀態(tài)欄上列出的"可用磁盤空間"參數(shù)),而1ECH~1EFH 4個字節(jié)給出了邏輯盤中下一個可以分配給文件使用的空閑簇的簇號,這樣操作系統(tǒng)可以不訪問FAT表就直接獲得磁盤剩余空間和可以分配的簇號。

  分區(qū)引導(dǎo)扇區(qū)的第3個扇區(qū)則存儲了引導(dǎo)扇區(qū)的后一部分引導(dǎo)系統(tǒng)的程序代碼(圖八)。

二、NTFS的分區(qū)引導(dǎo)扇區(qū)

  對于NTFS分區(qū)來說,分區(qū)引導(dǎo)扇區(qū)DBR只占用一個扇區(qū)(圖五),并且在該分區(qū)的最后一個扇區(qū)做了備份;NTFS的引導(dǎo)扇區(qū)也是完成引導(dǎo)和定義分區(qū)參數(shù),NTFS分區(qū)的引導(dǎo)扇區(qū)不是分區(qū)的充分條件,它要求必須MFT中的系統(tǒng)記錄如$MFT等正常該分區(qū)才能正常訪問。其BPB參數(shù)如下表所示:  偏移地址

 長度(字節(jié))

 常用值

 意  義

0x0B

 2

 0x0002

 每扇區(qū)字節(jié)數(shù)

0x0D

 1

 0x08

 每簇扇區(qū)數(shù)

0x0E

 2

 0x0000

 保留扇區(qū)

0x10

 3

 0x000000

 總為0

0x13

 2

 0x0000

 NTFS未使用,為0

0x15

 1

 0xF8

 介質(zhì)描述

0x16

 2

 0x0000

 總為0

0x18

 2

 0x3F00

 每磁道扇區(qū)數(shù)

0x1A

 2

 0xFF00

 磁頭數(shù)

0x1C

 4

 0x3F000000

 隱藏扇區(qū)數(shù)

0x20

 4

 0x00000000

 NTFS未使用,為0

0x28

 8

 0x4AF57F0000000000

 扇區(qū)總數(shù)

0x30

 8

 0x0400000000000000

 $MFT的邏輯簇號

0x38

 8

 0x54FF070000000000

 $MFT Mirr的邏輯簇號

0x40

 4

 0xF6000000

 每MFT記錄簇數(shù)

0x44

 4

 0x01000000

 每索引簇數(shù)

0x48

 8

 0x14A51B74C91B741C

 卷標(biāo)

0x50

 4

 0x00000000

 檢驗和

[ 本帖最后由伐木者 于 2007-6-19 20:11 編輯 ]

附件: 您所在的用戶組無法下載或查看附件本文來自:創(chuàng)幻論壇 http://www.chcj.net

UID55456帖子9783 精華45 積分47222 威望0 金幣0  閱讀權(quán)限18 性別男 來自有樹砍的地方在線時間8494 小時 注冊時間2004-5-16 最后登錄2010-4-5 查看詳細(xì)資料

 TOP

【推薦】權(quán)威專家推薦漲停股票請點擊獲取

伐木者

魏武王常所用論壇

超級版主

電腦家園區(qū)總版主

積分47222 威望0  注冊時間2004-5-16     

發(fā)短消息 加為好友  沙發(fā) 大 中 小 發(fā)表于 2007-6-17 20:55 只看該作者

HowIt Works --- Master Boot Record (主啟動記錄)

本文是介紹MBR的反編譯程序的。MBR是放在硬盤的0柱面,0磁頭(head),1扇區(qū)的

那一段區(qū)。MBR是由FDISK程序創(chuàng)建的。所有操作系統(tǒng)的FDISK程序都會創(chuàng)建類似的MBR

記錄。MBR是多個分區(qū)的前提,每個MBR中包括了四個分區(qū)表記錄。在您的計算機加電

之后,INT19被調(diào)用了。一般來說,INT19先從第一個軟盤驅(qū)動器中讀啟動扇區(qū)記錄。

如果在軟盤中找到了啟動的扇區(qū),那么這個扇區(qū)的數(shù)據(jù)就被讀入到內(nèi)存的0000:7c00

地址上,INT19也跳到了這個地址上。但是,如果沒有在軟盤中找到這個扇區(qū)的話,INT

19就從第一個硬盤中去讀。同樣,如果成功的話,也會把MBR導(dǎo)入到相同的內(nèi)存地址

0000:7c00,INT19也會跳這個地址。MBR中包括的一段小程序是定出在分區(qū)表中的活動分

區(qū)。這樣的活動分區(qū)找到之,那個分區(qū)的啟動扇區(qū)也被讀入到0000:7c00地址,MBR程序

也轉(zhuǎn)移到了這個地址。每一個操作系統(tǒng)都有固定的啟動扇區(qū)的格式。在啟動扇區(qū)里的程

序要能定出操作系統(tǒng)啟動程序的位置(或是核心本身,或者是一個啟動管理器),然后

將它讀入內(nèi)存。

另:在Ctrl-Alt-Del鍵被按下時,INT19也會被調(diào)用。在大多數(shù)系統(tǒng)中,Ctrl-Alt-Del三?nbsp;

鍵同時按下表示熱啟動您的計算機,回到INT19調(diào)用前的狀態(tài)。

=====

數(shù)據(jù)存放的位置:

  MBR程序放在偏移為0000的位置。

  MBR消息放在偏移為008b的位置。

  分區(qū)表放在偏移為00be的位置。

  簽名放在偏移為00fe的位置。

關(guān)于誰干什么事的總結(jié):

   如果一個活動分區(qū)找到了,這個分區(qū)的啟動數(shù)據(jù)被讀入到0000:7c00的位置,MBR程

序也跳到0000:7c00的位置。這段程序找到指向分區(qū)表的入口,入口描述的是這段分區(qū)是

怎樣被啟動的。啟動程序用這些數(shù)據(jù)來決定用來啟動的驅(qū)動器和這個驅(qū)動器分區(qū)在硬盤上

的位置。

   如果沒有找到這樣的活動分區(qū)入口,ROM BASIC會轉(zhuǎn)入INT 18的調(diào)用。所有其他的錯

誤導(dǎo)致系統(tǒng)的掛起,可以看HANG的標(biāo)記。

注意(非常之重要):

 ?。保┗顒臃謪^(qū)入口的第一個字節(jié)的內(nèi)容是80h。在INT13被調(diào)用之前,這個字節(jié)被導(dǎo)

入到DL寄存器中。當(dāng)INT13被調(diào)用時,DL表示的是BIOS的設(shè)備號碼。因為這個原因,由MBR

程序讀的啟動扇區(qū)只能從BIOS設(shè)備號碼為80的硬盤中讀入。這便是為什么不能從任何硬盤

啟動的原因。?nbsp;

 ?。玻㎝BR程序是用基于INT 13h (ah=02h)的中斷的CHS來讀取活動分區(qū)的啟動扇區(qū)位置

的。活動分區(qū)的啟動扇區(qū)內(nèi)的位置是在分區(qū)表內(nèi)用CHS格式表明的。如果這個驅(qū)動器小于

528M,這個CHS一定要是(L-CHS,見BIOS TYPES文檔)。在LBA中沒有任何地址是有用的。

(另一個LBA不能解決>528M問題的原因)   這點大家別信,西西。

====

   這是一張整個MBR記錄的表(hex 和ascii格式)

OFFSET0 1 2 3  4 5 6 7  8 9 A B  C D E F  *0123456789ABCDEF*

000000fa33c08e d0bc007c 8bf45007 501ffbfc *.3.....|..P.P...*

000010bf0006b9 0001f2a5 ea1d0600 00bebe07 *................*

000020b304803c 80740e80 3c00751c 83c610fe *...<.t..<.u.....*

000030cb75efcd 188b148b 4c028bee 83c610fe *.u......L.......*

000040cb741a80 3c0074f4 be8b06ac 3c00740b *.t..<.t.....<.t.*

00005056bb0700 b40ecd10 5eebf0eb febf0500 *V.......^.......*

000060bb007cb8 010257cd 135f730c 33c0cd13 *..|...W.._s.3...*

0000704f75edbe a306ebd3 bec206bf fe7d813d *Ou...........}.=*

00008055aa75c7 8bf5ea00 7c000049 6e76616c *U.u.....|..Inval*

00009069642070 61727469 74696f6e 20746162 *id partition tab*

0000a06c650045 72726f72 206c6f61 64696e67 *le.Error loading*

0000b0206f7065 72617469 6e672073 79737465 * operating syste*

0000c06d004d69 7373696e 67206f70 65726174 *m.Missing operat*

0000d0696e6720 73797374 656d0000 00000000 *ing system......*

0000e000000000 00000000 00000000 00000000 *................*

0000f0TO 0001af SAME AS ABOVE

0001b000000000 00000000 00000000 00008001 *................*

0001c00100060d fef83e00 00000678 0d000000 *......>....x....*

0001d000000000 00000000 00000000 00000000 *................*

0001e000000000 00000000 00000000 00000000 *................*

0001f000000000 00000000 00000000 000055aa *..............U.*

====

  這是MBR的反編譯程序:

  這個扇區(qū)被導(dǎo)入到內(nèi)存的0000:7c00位置,但是它又馬上將自己重定位到0000:0060的

位?nbsp;

。

BEGIN:  #    NOW AT 0000:7C00, RELOCATE

0000:7C00FA           CLI                    #禁止中斷

0000:7C0133C0         XOR    AX,AX           #設(shè)置堆棧段地址為0000

0000:7C038ED0          MOV    SS,AX

0000:7C05BC007C        MOV    SP,7C00         #設(shè)置堆棧指針為7c00

0000:7C088BF4         MOV    SI,SP           #SI = 7c00

0000:7C0A50           PUSH    AX

0000:7C0B07           POP    ES             #ES = 0000:7c00

0000:7C0C50           PUSH    AX

0000:7C0D1F           POP    DS             #DS = 0000:7c00

0000:7C0EFB           STI                    #開中斷

0000:7C0FFC           CLD                    #清除方向

0000:7C10BF0006        MOV    DI,0600         #DI = 0600

0000:7C13B90001        MOV    CX,0100         #移動 256 個word (512 bytes)

0000:7C16F2           REPNZ                  #把 MBR 從 0000:7c00

0000:7C17A5           MOVSW                  #移動到0000:0600

0000:7C18EA1D060000    JMP    0000:061D       #跳至NEW_LOCATION

NEW_LOCATION:#NOW AT 0000:0600

0000:061DBEBE07      MOV    SI,07BE           #指向入口的第一個字節(jié)

0000:0620B304        MOV    BL,04             #有4個入口

SEARCH_LOOP1:# 查找活動分區(qū)

0000:0622803C80      CMP     BYTE PTR[SI],80  #是不是活動分區(qū)?

0000:0625740E        JZ     FOUND_ACTIVE      #是,棧指針指向7c00

0000:0627803C00      CMP     BYTE PTR[SI],00  #是不是不活動分區(qū)?

0000:062A751C        JNZ    NOT_ACTIVE        #跳轉(zhuǎn)至NOT_ACTIVE

0000:062C83C610      ADD    SI,+10            #增量表指針加16

0000:062FFECB        DEC    BL               #減少計數(shù)

0000:063175EF        JNZ    SEARCH_LOOP1      #循環(huán)

0000:0633CD18        INT    18               #跳至 ROMBASIC

FOUND_ACTIVE:# 找到了活動分區(qū)

0000:06358B14        MOV    DX,[SI]           #設(shè)置DH/DL為INT 13

0000:06378B4C02      MOV    CX,[SI+02]        #設(shè)置CH/CL為INT 13

0000:063A8BEE        MOV    BP,SI             #保存表指針

SEARCH_LOOP2:# 確定是一個活動分區(qū)

0000:063C83C610      ADD    SI,+10            #增量表指針加16

0000:063FFECB        DEC    BL               #減少計數(shù)

0000:0641741A        JZ     READ_BOOT         #如果表結(jié)束,跳轉(zhuǎn)

0000:0643803C00      CMP     BYTE PTR[SI],00  #是不是非活動分區(qū)

0000:064674F4        JZ     SEARCH_LOOP2      #是,循環(huán)

NOT_ACTIVE:  #  多于一個活動分區(qū)

0000:0648BE8B06      MOV    SI,068B           #顯示 "Invld prttntbl"

DISPLAY_MSG: #  顯示消息循環(huán)

0000:064BAC         LODSB                    #取得消息的字符

0000:064C3C00        CMP    AL,00             #判斷消息的結(jié)尾

0000:064E740B        JZ     HANG             #

0000:065056          PUSH   SI               #保存SI

0000:0651BB0700      MOV    BX,0007           #屏幕屬性

0000:0654B40E        MOV    AH,0E             #顯示一個字符

0000:0656CD10        INT     10

0000:06585E         POP    SI               #恢復(fù)SI

0000:0659EBF0        JMP    DISPLAY_MSG       #循環(huán)

HANG:        #掛起系統(tǒng)

0000:065BEBFE        JMP    HANG             #停在這兒

READ_BOOT:  #讀活動分區(qū)的數(shù)據(jù)

0000:065DBF0500      MOV    DI,0005        #INT 13 的嘗試次數(shù)

INT13RTRY:  #INT 13的重試循環(huán)

0000:0660BB007C      MOV     BX,7C00

0000:0663B80102      MOV     AX,0201          #讀入一個扇區(qū)

0000:066657          PUSH   DI               #保存DI

0000:0667CD13        INT    13               #把扇區(qū)讀入0000:7c00

0000:06695F         POP    DI               #重存DI

0000:066A730C        JNB    INT13OK           #沒有INT 13,跳轉(zhuǎn)

0000:066C33C0        XOR    AX,AX             #調(diào)用INT 13 ,硬盤重置

0000:066ECD13        INT     13

0000:06704F         DEC    DI               #DI--

0000:067175ED        JNZ    INT13RTRY         #如果非零,重試

0000:0673BEA306      MOV     SI,06A3          #顯示"Errrldng systm"

0000:0676EBD3        JMP    DISPLAY_MSG       #跳轉(zhuǎn)至顯示循環(huán)

INT13OK:#INT 13 出錯

0000:0678BEC206      MOV    SI,06C2           #"missing op sys"

0000:067BBFFE7D      MOV    DI,7DFE            #指向簽名

0000:067E813D55AA    CMP     WORD PTR [DI],AA55 #簽名是否正確?

0000:068275C7        JNZ    DISPLAY_MSG        #不正確,跳至顯示消息循環(huán)

0000:06848BF5        MOV    SI,BP             #設(shè)置SI

0000:0686EA007C0000  JMP    0000:7C00          #跳轉(zhuǎn)至啟動扇區(qū),SI指向分區(qū)

表入

?nbsp;

#這兒是消息

0000:0680........ ........ ......49 6e76616c*           Inval*

0000:069069642070 61727469 74696f6e 20746162 *id partition tab*

0000:06a06c650045 72726f72 206c6f61 64696e67 *le.Error loading*

0000:06b0206f7065 72617469 6e672073 79737465 * operating syste*

0000:06c06d004d69 7373696e 67206f70 65726174 *m.Missing operat*

0000:06d0696e6720 73797374 656d00.. ........ *ing system.     *

#無用的數(shù)據(jù)

0000:06d0........ ........ ......00 00000000*           .....*

0000:06e000000000 00000000 00000000 00000000 *................*

0000:06f000000000 00000000 00000000 00000000 *................*

0000:070000000000 00000000 00000000 00000000 *................*

0000:071000000000 00000000 00000000 00000000 *................*

0000:072000000000 00000000 00000000 00000000 *................*

0000:073000000000 00000000 00000000 00000000 *................*

0000:074000000000 00000000 00000000 00000000 *................*

0000:075000000000 00000000 00000000 00000000 *................*

0000:076000000000 00000000 00000000 00000000 *................*

0000:077000000000 00000000 00000000 00000000 *................*

0000:078000000000 00000000 00000000 00000000 *................*

0000:079000000000 00000000 00000000 00000000 *................*

0000:07a000000000 00000000 00000000 00000000 *................*

0000:07b000000000 00000000 00000000 0000.... *............    *

#分區(qū)表從0000:07be開始。每一個分區(qū)表入口是16個字節(jié)這個表定義了一個單個的主分

區(qū)并

是活動分區(qū)。

0000:07b0........ ........ ........ ....8001*            ....*

0000:07c00100060d fef83e00 00000678 0d000000 *......>....x....*

0000:07d000000000 00000000 00000000 00000000 *................*

0000:07e000000000 00000000 00000000 00000000 *................*

0000:07f000000000 00000000 00000000 0000.... *............    *

#最后兩個字節(jié)一定包括了55aah的數(shù)據(jù)。

0000:07f0........ ........ ........ ....55aa *..............U.*

本文來自:創(chuàng)幻論壇 http://www.chcj.net

分區(qū)表的格式

偏移    意義   占用字節(jié)數(shù)

   00 引導(dǎo)指示符 1B

   01 分區(qū)引導(dǎo)記錄的磁頭號 1B

   02 分區(qū)引導(dǎo)記錄的扇區(qū)和柱面號 2B

   04 系統(tǒng)指示符 1B

   05 分區(qū)結(jié)束磁頭號 1B

   06 分區(qū)結(jié)束扇區(qū)和柱面號 2B

   08 分區(qū)前面的扇區(qū)數(shù) 4B

   0C 分區(qū)中總的扇區(qū)數(shù) 4B

4個分區(qū)中只能有1個活躍分區(qū),即C盤。標(biāo)志符是80H在分區(qū)表的第一個字節(jié)處。若是00H則表示非活躍分區(qū)。

例如:

80 01 01 00 0B FE 3F 81 3F00 00 00 C3 DD 1F 00

00  0001 82 05 FE BF 0C 02 DE 1F 00 0E 90 61 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

要點:(1)MBR位于硬盤第一個物理扇區(qū)柱面0,磁頭0,扇區(qū)1處。不屬于DOS扇區(qū),

  ?。?)主引導(dǎo)記錄分為硬盤的主引導(dǎo)程序和硬盤分區(qū)表。

6.DBR

  DBR位于柱面0,磁頭1,扇區(qū)1,即邏輯扇區(qū)0。DBR分為兩部分:DOS引導(dǎo)程序和BPB(BIOS參數(shù)塊)。其中DOS引導(dǎo)程序完成DOS系統(tǒng)文件(IO.SYS,MSDOS.SYS)的定位與裝載,而BPB用來描述本DOS分區(qū)的磁盤信息,BPB位于DBR偏移0BH處,共13字節(jié)。它包含邏輯格式化時使用的參數(shù),可供DOS計算磁盤上的文件分配表,目錄區(qū)和數(shù)據(jù)區(qū)的起始地址,BPB之后三個字提供物理格式化(低格)時采用的一些參數(shù)。引導(dǎo)程序或設(shè)備驅(qū)動程序根據(jù)這些信息將磁盤邏輯地址(DOS扇區(qū)號)轉(zhuǎn)換成物理地址(絕對扇區(qū)號)。BPB格式

序號 偏移地址 意義

1 03H-0AH OEM號

20BH-0CH 每扇區(qū)字節(jié)數(shù)

30DH 每簇扇區(qū)數(shù)

40EH-0FH 保留扇區(qū)數(shù)

510H FAT備份數(shù)

611H-12H 根目錄項數(shù)

713H-14H 磁盤總扇區(qū)數(shù)

815H 描述介質(zhì)

916H-17H 每FAT扇區(qū)數(shù)

1018H-19H 每磁道扇區(qū)數(shù)

111AH-1BH 磁頭數(shù)

121CH-1FH 特殊隱含扇區(qū)數(shù)

1320H-23H 總扇區(qū)數(shù)

1424H-25H 物理驅(qū)動器數(shù)

1526H 擴展引導(dǎo)簽證

1627H-2AH 卷系列號

172BH-35H 卷標(biāo)號

1836H-3DH 文件系統(tǒng)號

DOS引導(dǎo)記錄公式:

文件分配表≡保留扇區(qū)數(shù)

根目錄≡保留扇區(qū)數(shù)+FAT的個數(shù)×每個FAT的扇區(qū)數(shù)

數(shù)據(jù)區(qū)≡根目錄邏輯扇區(qū)號+(32×根目錄中目錄項數(shù)+(每扇區(qū)字節(jié)數(shù)-1))DIV每扇區(qū)字節(jié)數(shù)

絕對扇區(qū)號≡邏輯扇區(qū)號+隱含扇區(qū)數(shù)

扇區(qū)號≡(絕對扇區(qū)號MOD每磁道扇區(qū)數(shù))+1

磁頭號≡(絕對扇區(qū)號DIV每磁道扇區(qū)數(shù))MOD磁頭數(shù)

磁道號≡(絕對扇區(qū)號DIV每磁道扇區(qū)數(shù))DIV磁頭數(shù)

要點:(1)DBR位于柱面0,磁頭1,扇區(qū)1,其邏輯扇區(qū)號為0

   (2)DBR包含DOS引導(dǎo)程序和BPB。

   (3)BPB十分重要,由此可算出邏輯地址與物理地址。

7.文件分配表

  文件分配表是DOS文件組織結(jié)構(gòu)的主要組成部分。我們知道DOS進(jìn)行分配的最基本單位是簇。文件分配表是反映硬盤上所有簇的使用情況,通過查文件分配表可以得知任一簇的使用情況。DOS在給一個文件分配空間時總先掃描FAT,找到第一個可用簇,將該空間分配給文件,并將該簇的簇號填到目錄的相應(yīng)段內(nèi)。即形成了“簇號鏈”。FAT就是記錄文件簇號的一張表。FAT的頭兩個域為保留域,對FAT12來說是3個字節(jié),F(xiàn)AT來說是4個字節(jié)。其中頭一個字節(jié)是用來描述介質(zhì)的,其余字節(jié)為FFH 。介質(zhì)格式與BPB相同。

第一個字節(jié)的8位意義:

7 6 5 4 3 2?。?0

└─────-┘ │ │ │┌0非雙面

置1 │ │ └┤

│ │ └1雙面

│ │┌0不是8扇區(qū)

│ └┤

│ └1是8扇區(qū)

│┌0不是可換的

└┤

└1是可換的

FAT結(jié)構(gòu)含義

FAT12FAT16 意義

000H0000H 可用

FF0H-FF6H FFF0H-FFF6H 保留

FF7HFFF7H

FF8H-FFFH FFF8H-FFFFH 文件最后一個簇

×××H ××××H 文件下一個簇

對于FAT16,簇號×2作偏移地址,從FAT中取出一字即為FAT中的域。

邏輯扇區(qū)號=數(shù)據(jù)區(qū)起始邏輯扇區(qū)號+(簇號-2)×每簇扇區(qū)數(shù)

簇號=(邏輯扇區(qū)號-數(shù)據(jù)區(qū)起始邏輯扇區(qū)號)DIV每簇扇區(qū)數(shù)+2

要點:(1)FAT反映硬盤上所有簇的使用情況,它記錄了文件在硬盤中具體位置(簇)。

  ?。?)文件第一個簇號(在目錄表中)和FAT的該文件的簇號串起來形成文件的“簇號鏈”,恢復(fù)被破壞的文件就是根

據(jù)這條鏈。

  ?。?)由簇號可算邏輯扇區(qū)號,反之,由邏輯扇區(qū)號也可以算出簇號,公式如上。

  ?。?)FAT位于DBR之后,其DOS扇區(qū)號從1開始。

8.文件目錄

  文件目錄是DOS文件組織結(jié)構(gòu)的又一重要組成部分。文件目錄分為兩類:根目錄,子目錄。根目錄有一個,子目錄可以有多個。子目錄下還可以有子目錄,從而形成“樹狀”的文件目錄結(jié)構(gòu)。子目錄其實是一種特殊的文件,DOS為目錄項分配32字節(jié)。目錄項分為三類:文件,子目錄(其內(nèi)容是許多目錄項),卷標(biāo)(只能在根目錄,只有一個。目錄項中有文件(或子目錄,或卷標(biāo))的名字,擴展名,屬性,生成或最后修改日期,時間,開始簇號,及文件大小。

目錄項的格式

字節(jié)偏移 意義 占字節(jié)數(shù)

00H 文件名 8B

08H 擴展名 3B

0BH 文件屬性 1B

0CH 保留 10B

16H 時間 2B

18H 日期 2B

1AH 開始簇號 2B

1CH 文件長度 4B

目錄項文件名區(qū)域中第一個字節(jié)還有特殊的意義:00H代表未使用

05H代表實際名為E5H

EBH代表此文件已被刪除

目錄項屬性區(qū)域的這個字節(jié)各個位的意義如下:7?。丁。怠。础。场。病。薄。?

                     未 修 修 子 卷 系 隱 只

                     用 改 改 目 標(biāo) 統(tǒng) 藏 讀

                       標(biāo) 標(biāo) 錄   屬 屬 屬

                       志 志     性 性 性

注意:WINDOWS的長文件名使用了上表中所說的“保留”這片區(qū)域。

要點:(1)文件目錄是記錄所有文件,子目錄名,擴展名屬性,建立或刪除最后修改日期。文件開始簇號及文件長度的一張

      登記表.

   (2)DOS中DIR列出的內(nèi)容訓(xùn)是根據(jù)文件目錄表得到的。

   (3)文件起始簇號填在文件目錄中,其余簇都填在FAT中上一簇的位置上。

9.物理驅(qū)動器與邏輯驅(qū)動器

  物理驅(qū)動器指實際安裝的驅(qū)動器。

  邏輯驅(qū)動器是對物理驅(qū)動器格式化后產(chǎn)生的。

要點:同上。

瀏覽:552  [打印  返回  關(guān)閉]

·下一篇:[06-08-28] 挽救硬盤的10個方法(維護(hù)硬盤故障)

·上一篇:[06-08-28] 進(jìn)行電腦維修的幾個簡單步驟

相關(guān)文章:[知識,扇區(qū),磁道]

·◎硬盤基本知識(磁道、扇區(qū)、柱面、磁頭數(shù)、簇、MBR、DBR)

·◎主板電容小知識

·◎注冊表基本知識

·◎受用一生的電腦知識

·◎Linux 發(fā)行版和安裝的基本知識

分類欄目

·硬盤

·CPU

·主板

·綜合

·內(nèi)存

·顯示器

·鼠標(biāo)鍵盤

·打印機

熱門標(biāo)簽

·方法(102)

·故障(99)

·技巧(66)

·XP(61)

·病毒(60)

·所有標(biāo)簽

點擊排行

·硬盤基本知識..

·如何給硬盤加..

·硬盤拷貝三法

·延長壽命:讓硬..

·減少硬盤出故..

 

 當(dāng)硬盤受到外部強磁體、強磁場的影響,或因長期使用,硬盤盤片上由低級格式化劃分出來的扇區(qū)格式磁性記錄部分丟失,從而出現(xiàn)大量“壞扇區(qū)”時,可以通過低級格式化來重新劃分“扇區(qū)”。但是前提是硬盤的盤片沒有受到物理性劃傷。硬盤低級格式化的功用硬盤低格格式化是對硬盤最徹底的初始化方式,經(jīng)過低格后的硬盤,原來保護(hù)的數(shù)據(jù)將全部丟失,所以一般來說低格硬盤是非常不可取的,只有非常必要的時候才能低格硬盤。當(dāng)硬盤出現(xiàn)某種類型的壞道時,使用低級格式化能起到一定的緩解或者屏蔽作用。

  邏輯壞道相對比較容易解決,它指硬盤在寫入時受到意外干擾,造成有ECC錯誤。從過程上講,它是指硬盤在寫入數(shù)據(jù)的時候,會用ECC的邏輯重新組合數(shù)據(jù),一般操作系統(tǒng)要寫入512個字節(jié),但實際上硬盤會多寫幾十個字節(jié),而且所有的這些字節(jié)都要用ECC進(jìn)行校驗編碼,如果原始字節(jié)算出的ECC校正碼和讀出字節(jié)算出的ECC不同,這樣就會產(chǎn)生ECC錯誤,這就是所謂的邏輯壞道產(chǎn)生原因。

物理壞道,磁盤表面物理損壞就是硬性的,這是無法修復(fù)的。而由于外界影響而造成數(shù)據(jù)的寫入錯誤時,系統(tǒng)也會認(rèn)為是物理壞道,而這種物理壞道是可以使用一些硬盤工具(例如硬盤廠商提供的檢測修復(fù)軟件)來修復(fù),此外,對于微小的硬盤表面損傷,一些硬盤工具(例如西部數(shù)據(jù)的Data Lifeguard Tools)就可以重新定向到一個好的保留扇區(qū)來修正錯誤。

對于硬盤上出現(xiàn)邏輯壞道或者軟性物理壞道,用戶可以試試使用低級格式化來達(dá)到屏蔽壞道的作用,但這里需要指出,屏蔽壞道并不等于消除壞道了,低格硬盤能把原來硬盤內(nèi)所有分區(qū)都刪除,但壞道卻依然存在,屏蔽只是將壞道隱藏起來,不讓用戶在存儲數(shù)據(jù)時使用這些壞道,這樣能在一定程度上保證用戶數(shù)據(jù)的可靠性,但壞道卻會隨著硬盤分區(qū)、格式化次數(shù)的增長而擴散蔓延。

1、對扇區(qū)清零和重寫校驗值。低格過程中將每個扇區(qū)的所有字節(jié)全部置零,并將每個扇區(qū)的校驗值也寫回初始值,這樣可以將部分缺陷糾正過來。譬如,由于扇區(qū)數(shù)據(jù)與該扇區(qū)的校驗值不對應(yīng),通常就被報告為校驗錯誤(ECC Error)。如果并非由于磁介質(zhì)損傷,清零后就很有可能將扇區(qū)數(shù)據(jù)與該扇區(qū)的校驗值重新對應(yīng)起來,而達(dá)到“修復(fù)”該扇區(qū)的功效。這是每種低格工具和每種硬盤的低格過程最基本的操作內(nèi)容,同時這也是為什么通過低格能“修復(fù)大量壞道”的基本原因。另外,DM中的Zero Fill(清零)操作與IBMDFT工具中的Erase操作,也有同樣的功效。

2、對扇區(qū)進(jìn)行讀寫檢查,并嘗試替換缺陷扇區(qū)。有些低格工具會對每個扇區(qū)進(jìn)行讀寫檢查,如果發(fā)現(xiàn)在讀過程或?qū)戇^程出錯,就認(rèn)為該扇區(qū)為缺陷扇區(qū)。然后,調(diào)用通用的自動替換扇區(qū)(Automatic reallocation sector)指令,嘗試對該扇區(qū)進(jìn)行替換,也可以達(dá)到“修復(fù)”的功效。

3、對扇區(qū)的標(biāo)識信息重寫。在多年以前使用的老式硬盤(如采用ST506接口的硬盤),需要在低格過程中重寫每個扇區(qū)的標(biāo)識(ID)信息和某些保留磁道的其他一些信息,當(dāng)時低格工具都必須有這樣的功能。但現(xiàn)在的硬盤結(jié)構(gòu)已經(jīng)大不一樣,如果再使用多年前的工具來做低格會導(dǎo)致許多令人痛苦的意外。難怪經(jīng)常有人在痛苦地高呼:“危險!切勿低格硬盤!我的硬盤已經(jīng)毀于低格!”

4、對所有物理扇區(qū)進(jìn)行重新編號。編號的依據(jù)是P-list中的記錄及區(qū)段分配參數(shù)(該參數(shù)決定各個磁道劃分的扇區(qū)數(shù)),經(jīng)過編號后,每個扇區(qū)都分配到一個特定的標(biāo)識信息(ID)。編號時,會自動跳過P-list中所記錄的缺陷扇區(qū),使用戶無法訪問到那些缺陷扇區(qū)(用戶不必在乎永遠(yuǎn)用不到的地方的好壞)。如果這個過程半途而廢,有可能導(dǎo)致部分甚至所有扇區(qū)被報告為標(biāo)識不對(Sector ID not found, IDNF)。要特別注意的是,這個編號過程是根據(jù)真正的物理參數(shù)來進(jìn)行的,如果某些低格工具按邏輯參數(shù)(以 16heads 63sector為最典型)來進(jìn)行低格,是不可能進(jìn)行這樣的操作。

5、寫磁道伺服信息,對所有磁道進(jìn)行重新編號。有些硬盤允許將每個磁道的伺服信息重寫,并給磁道重新賦予一個編號。編號依據(jù)P-list或TS記錄來跳過缺陷磁道(defecttrack),使用戶無法訪問(即永遠(yuǎn)不必使用)這些缺陷磁道。這個操作也是根據(jù)真正的物理參數(shù)來進(jìn)行。

6、寫狀態(tài)參數(shù),并修改特定參數(shù)。有些硬盤會有一個狀態(tài)參數(shù),記錄著低格過程是否正常結(jié)束,如果不是正常結(jié)束低格,會導(dǎo)致整個硬盤拒絕讀寫操作,這個參數(shù)以富士通IDE硬盤和希捷SCSI硬盤為典型。有些硬盤還可能根據(jù)低格過程的記錄改寫某些參數(shù)。

我們經(jīng)常使用的DM中的Low level format命令進(jìn)行的低級格式化操作,主要進(jìn)行了第1條和第3條的操作。速度較快,極少損壞硬盤,但修復(fù)效果不明顯。另外在Lformat工具中,進(jìn)行了前三項的操作。由于同時進(jìn)行了讀寫檢查,操作速度較慢,可以替換部分缺陷扇區(qū)

  常見低格工具有l(wèi)format、DM及硬盤廠商們推出的各種硬盤工具等。

匯編語言低格,用Debug匯編語言進(jìn)行低級格式化

  低級格式化硬盤能完成銷毀硬盤內(nèi)的數(shù)據(jù),所以在操作前一定要謹(jǐn)慎。硬盤低格有許多方法,例如直接在CMOS中對硬盤進(jìn)行低格,或者使用匯編語言進(jìn)行硬盤低格。匯編是比較低級的一種編程語言,它能非常方便地直接操作硬件,而且運行效率很高,如果軟件系統(tǒng)中需要直接操作硬件時,經(jīng)常使用的就是匯編語言。使用匯編也可以對硬盤進(jìn)行低級格式化,它比DM等工具軟件顯得更為靈活,具體應(yīng)用時就是使用debug程序,而具體操作就是在debug環(huán)境下,調(diào)用存放在BIOS 中的低級格式化程序(CMOS中直接低格硬盤調(diào)用的也是此段低格程序)。實現(xiàn)方法通常有如下三種:

  (1)、直接調(diào)用BIOS ROM中的低格程序

  在很多計算機的BIOS ROM中存放著低格程序,存放地址從C8005H地址開始,具體操作如下:

  A:\>Debug

  -G C800 :0005(這時屏幕顯示信息(不同版本的BIOS顯示的信息可能不同),回車后提示:)

  Current Interleave is 3 select new interleave orReturn for current(這是要求用戶選擇交叉因子,按回車表示取默認(rèn)值3,也可輸入新的交叉因子值,硬盤的交叉因子一般是3,所以直接回車即可。屏幕接著提示:)

  Are you dynamically configuring the drive-answer YN t

  Press“Y”to begin formatting the drive C: withinterleave 03(鍵入“Y”后開始對硬盤進(jìn)行低格)

  Formatting ……(完成后詢問是否處理壞磁道)

  Do you want to format bad track-answer YN?

  若沒有則用“N”回答。屏幕顯示:

  Format Successful,system willnew restart,Insert Dos diskette indrive A:

  插入系統(tǒng)盤到A驅(qū)動器,即可進(jìn)行分區(qū),高級格式化等操作來安裝系統(tǒng)了。

  (2)、通過調(diào)用INT 13H中斷的7號功能對硬盤進(jìn)行低格

  操作如下:

  A:\>DEBUG

  -A 100

  -XXXX:0100 MOV AX,0703;(交叉因子為3)

  -XXXX:0103 MOV CX,0001;(0磁道0扇區(qū)起)

  -XXXX:0106 MOV DX,0080;(C盤0磁道)

  -XXXX:0109 INT 13

  -XXXX:010B INT 3

  -XXXX:010D

  -G 100

  這樣硬盤就被低格了。

  (3)、調(diào)用INT 13H中斷的5號功能

  對硬盤調(diào)用INT 13H中斷的5號功能只低格0面0道1扇區(qū),而不必低格整個硬盤,從而使低格在很短的時間內(nèi)完成。具體操作如下:

  ADEBUG

  -A 100

  -XXXX:0100 MOV AX,0500;(調(diào)用5號功能)

  -XXXX:0103 MOV BX,0180;(設(shè)置緩沖區(qū)地址)

  -XXXX:0106 MOV CX,0001;(0磁道1扇區(qū)起)

  -XXXX:0109 MOV DX,0080;(C盤0磁道)

  -XXXX:010B INT 13

  -XXXX:010D INT 3

  -E 0180 0 0 0002;(寫入?yún)?shù))

  -G 100

DM低級格式化方法

  用DM進(jìn)行低級格式化

  DM的全名是Hard Disk ManagementProgram,它能對硬盤進(jìn)行低級格式化、校驗等管理工作,可以提高硬盤的使用效率??偟膩碚f,DM具有如下幾個功能:硬盤低級格式化、分區(qū)、高級格式化、硬盤參數(shù)配置及其它功能。

  在實際應(yīng)用時,dm工具跟普通DOS命令(如fdisk或format)一樣,它的命令格式為:ADM [參數(shù)] 。其中的參數(shù)可取以下值:

  M DM軟件以手工方式進(jìn)入,如無該參數(shù),DM以自動方式運行,依次執(zhí)行INITIALIZE. PARTITIONG. PREPARAFION。

  C DM軟件以彩色方式執(zhí)行,即運行于彩色顯示器上。

  P DM軟件以PCXT方式管理硬盤。

  A DM軟件以PCAT方式管理硬盤。

  2 DOS 2.XX版本方式。

  3 DOS 3.XX版本方式。

  4 DOS 4.XX版本方式(僅DM 5.01版有此參數(shù))。

  V DM運行于可改變簇長度、根目錄項方式。

  在實際使用中常用以下兩種方式啟動:

  1、ADM (自動方式。初始化硬盤時很多參數(shù)都用默認(rèn)值幾乎不要人工干預(yù))。

  2、ADM (手動方式。作格式化時一些參數(shù)要人工指定)。

  啟動dm工具后,用戶就可以根據(jù)自己的需要選擇相應(yīng)的操作,由于它也是以DOS用戶界面的形式存,所以使用起來也十分簡捷、明了。

其它低級格式化方法

  除了上面介紹的兩種低格工具外,還有許多其它低級格式化方法。

  1、CMOS中直接操作

  如果主板支持,用戶可以直接在CMOS對硬盤進(jìn)行低級格式化,這種方法非常簡單、方便,因此如果可能的話,筆者推薦使用這種方法進(jìn)行硬盤低格。具體操作方法:在開機時根據(jù)系統(tǒng)提示進(jìn)入CMOS Setup(如果是Award等BIOS,會提示按DEL進(jìn)入CMOSSetup,如果是Intel主板,一般是按F2進(jìn)入CMOS Setup),接著在CMOS菜單內(nèi)選擇low formatted HardDisk Drive選擇,然后根據(jù)程序提示進(jìn)行待低格硬盤,同時回答一些程序提問即可進(jìn)行硬盤低級格式化。

  2、lformat.com程序低格硬盤

  除了dm工具外,還有一款比較常見的低格程序是lformat.exe,它是由邁拓公司推出的低級格式化硬盤工具。在DOS狀態(tài)下運行 lformat.exe后,程序即啟動警告界面。在該畫面中說明的大概意思是,如果用戶使用這個工具時,硬盤內(nèi)所有數(shù)據(jù)將丟失,因此推薦在運行它之前備份必要的數(shù)據(jù),同時推薦移走所有其它硬盤。如果用戶忘記備份數(shù)據(jù),而希望退出該程序,則可以按除Y之外的任意鍵即可,如果用戶確認(rèn)對硬盤進(jìn)行低格,請按 “Y”鍵。

  如果選擇了“Y”后,程序?qū)⒁笥脩暨x擇硬盤或者就對當(dāng)前硬盤進(jìn)行低格,接著,問答幾個提問,即可開始硬盤低級格式化過程。

編輯本段低格,高格及快格的區(qū)別

類型    主要工作    特點    備注

低級格式化  介質(zhì)檢查;磁盤介質(zhì)測試;劃分磁道和扇區(qū);對每個扇區(qū)進(jìn)行編號(C/H/S);設(shè)置交叉因子。 只能在DOS環(huán)境或自寫的匯編指令下進(jìn)行,低級格式化只能整盤進(jìn)行。

高級格式化

清除數(shù)據(jù)(寫刪除標(biāo)記);檢查扇區(qū);重新初始化引導(dǎo)信息;初始化分區(qū)表信息;    可以在DOS和操作系統(tǒng)上進(jìn)行,只能對分區(qū)操作。高級格式化只是存儲數(shù)據(jù),但如果存在壞扇區(qū)可能會導(dǎo)致長時間磁盤讀寫。  DOS下可能有分區(qū)識別問題。使用Format命令格式化不會自動修復(fù)邏輯壞道,如果發(fā)現(xiàn)有壞道,最好使用SCANDISK或WINDOWS系統(tǒng)的磁盤檢查功能、還有其它第三方軟件進(jìn)行修復(fù)或隱藏,邏輯壞道既可以通過磁盤檢查也可以通過低格解決,這取決于是扇區(qū)的哪個部分出現(xiàn)了錯誤。

快速格式化  刪除文件分配表;不檢查扇區(qū)損壞情況;    可以在DOS和操作系統(tǒng)上進(jìn)行,只能對分區(qū)操作。

硬盤MBR全面分析

主板芯片和CPU收到了不符合規(guī)定的電流,將自動產(chǎn)生一個RESET信號,在主板沒有收到電源的Power Good信號之前,重復(fù)RESET信號

BIOSJMP指令,跳轉(zhuǎn)到真正的BIOS啟動程序處

BIOS開始加電自檢(Power-OnSelf Test, POST),若成功執(zhí)行INT 19h(SYSTEM - BOOTSTRAPLOADER)

BIOS開始尋找顯卡,找到的話將執(zhí)行顯卡的BIOS。接著顯卡初始化,將顯示一段顯卡信息

BIOS開始執(zhí)行所有其他設(shè)備的BIOS,包括軟驅(qū),硬盤等

BIOS顯示啟動信息

BIOS開始額外的檢測。一般有內(nèi)存檢測,如果內(nèi)存有問題,將顯示錯誤消息

BIOS探測所有的硬件,將顯示硬盤/光區(qū)信息等

BIOS給出一個已知硬件的列表

BIOS按照設(shè)置的驅(qū)動器順序找驅(qū)動器,如果驅(qū)動器存在的話繼續(xù)找啟動扇區(qū),軟驅(qū)/硬盤的啟動扇區(qū)都在0柱0頭1扇區(qū)(cylinder 0, head 0, sector 1)

將啟動扇區(qū)讀到內(nèi)存0000:7c00處,接著INT 19h開始執(zhí)行0000:7c00處代碼

 如果找不到驅(qū)動器,系統(tǒng)顯示錯誤信息并停止。通常是"No boot device"或"NO ROMBASIC -SYSTEM HALTED"

磁盤的啟動扇區(qū)就是主引導(dǎo)記錄(Master Boot Record),包括0柱0頭1扇區(qū)的512個字節(jié),它的任務(wù)是完成BIOS到操作系統(tǒng)的交接。

MBR的大體結(jié)構(gòu):

偏移 內(nèi)容

0000 MBR程序代碼

01BE 分區(qū)表

01FE 結(jié)束標(biāo)志

分區(qū)表結(jié)構(gòu)

BYTE

1 如果是引導(dǎo)分區(qū),就是80H,如果不是,就是00H

2-4 是該分區(qū)的起始扇區(qū)號

5 標(biāo)志字節(jié),比如05表示擴展分區(qū)

6-8 該分區(qū)的終止扇區(qū)號

9-12 該分區(qū)已使用的扇區(qū)數(shù)

13-16 該分區(qū)總共占用的扇區(qū)數(shù)

這是從我的硬盤上提取的MBR(硬盤是Maxtor的金鉆20G,netfay的電腦早過時了:P),不同型號的硬盤MBR稍有不同,不過功能都是一樣的

0000 33 C0 8E D0 BC 00 7C FB-50 07 50 1F FCBE 1B 7C 3.....|.P.P....|

0010 BF 1B 06 50 57 B9 E5 01-F3 A4 CB BE BE07 B1 04 ...PW...........

0020 38 2C 7C 09 75 15 83 C6-10 E2 F5 CD 188B 14 8B 8,|.u...........

0030 EE 83 C6 10 49 74 16 38-2C 74 F6 BE 1007 4E AC ....It.8,t....N.

0040 3C 00 74 FA BB 07 00 B4-0E CD 10 EB F289 46 25 <.t...........F%

0050 96 8A 46 04 B4 06 3C 0E-74 11 B4 0B 3C0C 74 05 ..F...<.t...<.t.

0060 3A C4 75 2B 40 C6 46 25-06 75 24 BB AA55 50 B4 :.u+@.F%.u$..UP.

0070 41 CD 13 58 72 16 81 FB-55 AA 75 10 F6C1 01 74 A..Xr...U.u....t

0080 0B 8A E0 88 56 24 C7 06-A1 06 EB 1E 8866 04 BF ....V$.......f..

0090 0A 00 B8 01 02 8B DC 33-C9 83 FF 05 7F03 8B 4E .......3.......N

00A0 25 03 4E 02 CD 13 72 29-BE 59 07 81 3EFE 7D 55 %.N...r).Y..>.}U

00B0 AA 74 5A 83 EF 05 7F DA-85 F6 75 83 BE2E 07 EB .tZ.......u.....

00C0 8A 98 91 52 99 03 46 08-13 56 0A E8 1200 5A EB ...R..F..V....Z.

00D0 D5 4F 74 E4 33 C0 CD 13-EB B8 00 00 8008 10 16 .Ot.3...........

00E0 56 33 F6 56 56 52 50 06-53 51 BE 10 0056 8B F4 V3.VVRP.SQ...V..

00F0 50 52 B8 00 42 8A 56 24-CD 13 5A 58 8D64 10 72 PR..B.V$..ZX.d.r

0100 0A 40 75 01 42 80 C7 02-E2 F7 F8 5E C3EB 74 B7 .@u.B......^..t.

0110 D6 C7 F8 B1 ED CE DE D0-A7 A1 A3 B0 B2D7 B0 B3 ................

0120 CC D0 F2 CE DE B7 A8 BC-CC D0 F8 A1 A300 BC D3 ................

0130 D4 D8 B2 D9 D7 F7 CF B5-CD B3 CA B1 B3F6 CF D6 ................

0140 B4 ED CE F3 A1 A3 B0 B2-D7 B0 B3 CC D0F2 CE DE ................

0150 B7 A8 BC CC D0 F8 A1 A3-00 C8 B1 C9 D9B2 D9 D7 ................

0160 F7 CF B5 CD B3 00 00 00-00 00 00 00 0000 00 00 ................

0170 00 00 00 00 00 00 00 00-00 00 00 00 0000 00 00 ................

0180 00 00 00 8B FC 1E 57 8B-F5 CB 00 00 0000 00 00 ......W.........

0190 00 00 00 00 00 00 00 00-00 00 00 00 0000 00 00 ................

01A0 00 00 00 00 00 00 00 00-00 00 00 00 0000 00 00 ................

01B0 00 00 00 00 00 2C 44 63-B5 D7 B5 D7 0000 80 01 .....,Dc........

01C0 01 00 0B FE 7F FD 3F 00-00 00 3F 04 7D00 00 00 ......?...?.}...

01D0 41 FE 0C FE FF FF 7E 04-7D 00 7D 9B E501 00 00 A.....~.}.}.....

01E0 00 00 00 00 00 00 00 00-00 00 00 00 0000 00 00 ................

01F0 00 00 00 00 00 00 00 00-00 00 00 00 00 0055 AA ..............U.

由于程序代碼從0000:7C00開始,下面看反編譯的結(jié)果(經(jīng)過修改)

7C00 33C0 XOR AX,AX ;AX=0

7C02 8ED0 MOV SS,AX ;SS=0

7C04 BC007C MOV SP,7C00 ;SP=7C00

7C07 FB STI ;中斷允許

7C08 50 PUSH AX

7C09 07 POP ES ;ES=0

7C0A 50 PUSH AX

7C0B 1F POP DS ;DS=0

7C0C FC CLD ;字符串操作方向:從低到高

7C0D BE1B7C MOV SI,7C1B ;源地址 DS:SI=0000:7C1B

7C10 BF1B06 MOV DI,061B ;目的地址 ES:DI=0000:061B

7C13 50 PUSH AX

7C14 57 PUSH DI

7C15 B9E501 MOV CX,01E5 ;共1E5h個字節(jié)

7C18 F3 REPZ

7C19 A4 MOVSB ;將MBR從0000:7C00移動到0000:0600

7C1A CB RETF ;跳轉(zhuǎn)到0000:061B處

PARTITION_SEARCH_LOOP:

061B BEBE07 MOV SI,07BE ;SI指向分區(qū)表的開始

061E B104 MOV CL,04 ;循環(huán)4次,硬盤最多4個主分區(qū)

0620 382C CMP [SI],CH

0622 7C09 JL ACTIVE_PARTITION_FOUND

;分區(qū)是活動分區(qū)

0624 7515 JNZ INVALID_PARTITION_TABLE

;無效的分區(qū)表

0626 83C610 ADD SI,+10 ;每個分區(qū)占用16個字節(jié),SI指向下一個分區(qū)

0629 E2F5 LOOP PARTITION_SEARCH_LOOP

062B CD18 INT 18 ;分區(qū)表搜索完,無活動分區(qū),INT 18h=DISKLESS BOOT HOOK

ACTIVE_PARTITON_FOUND:

062D 8B14 MOV DX,[SI] ;下面的搜索保證只存在一個活動分區(qū),否則分區(qū)表無效

062F 8BEE MOV BP,SI ;找到的引導(dǎo)分區(qū)標(biāo)志和開始地址分別存入DX,BP

ONLY_ONE_ACTIVE_PARTITON_SEARCH_LOOP:

0631 83C610 ADD SI,+10

0634 49 DEC CX

0635 7416 JZ GOOD_PARTITION_TABLE ;搜索完畢,剩下的分區(qū)中無活動分區(qū),分區(qū)表正常

0637 382C CMP [SI],CH

0639 74F6 JZONLY_ONE_ACTIVE_PARTITON_SEARCH_LOOP ;如果還有活動分區(qū)則繼續(xù)向下執(zhí)行

INVALID_PARTITION_TABLE:

063B BE1007 MOV SI,0710 ;SI指向要顯示的錯誤信息處

HANG_MACHINE_LOOP:

063E 4E DEC SI

DISPLAY_ERROR_MESSAGE_LOOP:

063F AC LODSB

0640 3C00 CMP AL,00

0642 74FA JZ HANG_MACHINE_LOOP

;到字符串尾時進(jìn)入死循環(huán),停止運行

0644 BB0700 MOV BX,0007

0647 B40E MOV AH,0E

0649 CD10 INT 10 ;顯示錯誤信息

DISPLAY_ERROR_MESSAGE_LOOP_ALIAS:

064B EBF2 JMP DISPLAY_ERROR_MESSAGE_LOOP

GOOD_PARTITION_TABLE:

064D 894625 MOV [BP+25],AX

;tmpvar=BP+25處清零,作為臨時變量

0650 96 XCHG SI,AX ;SI=0

0651 8A4604 MOV AL,[BP+04]

;讀分區(qū)類型入AL

0654 B406 MOV AH,06

0656 3C0E CMP AL,0E ;類型 WIN95: DOS 16-bit FAT, LBA-mapped

0658 7411 JZ TYPE_WIN95_DOS_16BIT_FAT_LBA

065A B40B MOV AH,0B

065C 3C0C CMP AL,0C ;類型 WIN95 OSR2 32-bit FAT, LBA-mapped

065E 7405 JZ TYPE_WIN95_OSR2_32BIT_FAT_LBA

0660 3AC4 CMP AL,AH ;類型 WIN95 OSR2 32-bit FAT

0662 752B JNZ TYPE_DEFAULT

0664 40 INC AX ;AX=0B0C

TYPE_WIN95_OSR2_32BIT_FAT_LBA:

0665 C6462506 MOV BYTE PTR [BP+25],06

;tmpvar=06

0669 7524 JNZ TYPE_DEFAULT

;這里有點問題,這個轉(zhuǎn)移應(yīng)該肯定不成立?

TYPE_WIN95_DOS_16BIT_FAT_LBA:

066B BBAA55 MOV BX,55AA

066E 50 PUSH AX

066F B441 MOV AH,41

0671 CD13 INT 13 ;int 13h擴展功能的檢測,IBM/MS INT 13 Extensions - INSTALLATION CHECK

0673 58 POP AX

0674 7216 JB INT13H_EXTENSION_UNSUPPORTED

;CF=1 - 不支持int 13h擴展功能

0676 81FB55AA CMP BX,AA55 ;BX不為AA55 - 不支持int 13h擴展功能

067A 7510 JNZ INT13H_EXTENSION_UNSUPPORTED

067C F6C101 TEST CL,01 ;CL不為1 - 不支持int 13h擴展功能

067F 740B JZ INT13H_EXTENSION_UNSUPPORTED

0681 8AE0 MOV AH,AL ;AH=0E

0683 885624 MOV [BP+24],DL

;tmpvar=DL,引導(dǎo)分區(qū)標(biāo)志

0686 C706A106EB1E MOV WORD PTR [06A1],1EEB

;改06A1處指令為PUSH DS; JMP NEW_LOCATION_1

INT13H_EXTENSION_UNSUPPORTED:

068C 886604 MOV [BP+04],AH

;如果支持的話置分區(qū)類型為0E(類型 WIN95: DOS 16-bit FAT, LBA-mapped)

;否則為06(類型 DOS 3.31+ 16-bit FAT over 32M)

TYPE_DEFAULT:

068F BF0A00 MOV DI,000A

READ_SECTOR_LOOP:

0692 B80102 MOV AX,0201

0695 8BDC MOV BX,SP ;BX設(shè)置為7C00

0697 33C9 XOR CX,CX ;CX=0

0699 83FF05 CMP DI,+05

069C 7F03 JG NEW_LOCATION_0

069E 8B4E25 MOV CX,[BP+25]

NEW_LOCATION_0:

06A1 034E02 ADD CX,[BP+02]

06A4 CD13 INT 13 ;將活動分區(qū)的起始扇區(qū)讀到0000:7C00

NEW_LOCATION_1:

06A6 7229 JB READ_SECTOR_ERROR

;CF=1 - 錯誤

06A8 BE5907 MOV SI,0759

06AB 813EFE7D55AA CMP WORD PTR [7DFE],AA55

;扇區(qū)結(jié)束標(biāo)志是否正確?

06B1 745A JZ READ_SECTOR_SUCCEEDED

;正確

06B3 83EF05 SUB DI,+05 ;DI=DI-5

06B6 7FDA JG READ_SECTOR_LOOP

06B8 85F6 TEST SI,SI

06BA 7583 JNZ DISPLAY_ERROR_MESSAGE_LOOP:

;顯示錯誤信息:缺少操作系統(tǒng)

06BC BE2E07 MOV SI,072E

06BF EB8A JMPDISPLAY_ERROR_MESSAGE_LOOP_ALIAS

;顯示錯誤信息:加載操作系統(tǒng)時發(fā)生錯誤。

070D EB74 JMP CONTINUE_KOAD_OS

0783 8BFC MOV DI,SP

;DI=7C00

0785 1E PUSH DS

0786 57 PUSH DI

0787 8BF5 MOV SI,BP

0789 CB RETF ;轉(zhuǎn)到執(zhí)行0000:7C00處的語句,即操作系統(tǒng)的引導(dǎo)程序

硬盤主引導(dǎo)記錄(MBR)及其結(jié)構(gòu)

硬盤的0柱面、0磁頭、1扇區(qū)稱為主引導(dǎo)扇區(qū),F(xiàn)DISK程序?qū)懙皆撋葏^(qū)的內(nèi)容稱為主引導(dǎo)記錄(MBR)。該記錄占用512個字節(jié),它用于硬盤啟動時將系統(tǒng)控制權(quán)交給用戶指定的,并在分區(qū)表中登記了的某個操作系統(tǒng)區(qū)。

1.MBR的讀取

    硬盤的引導(dǎo)記錄(MBR)是不屬于任何一個操作系統(tǒng),也不能用操作系統(tǒng)提供的磁盤操作命令來讀取它。但我們可以用ROM-BIOS中提供的INT13H的2號功能來讀出該扇區(qū)的內(nèi)容,也可用軟件工具Norton8.0中的DISKEDIT.EXE來讀取。

用INT13H的讀磁盤扇區(qū)功能的調(diào)用參數(shù)如下:

入口參數(shù):AH=2 (指定功能號)

AL=要讀取的扇區(qū)數(shù)

DL=磁盤號(0、1-軟盤;80、81-硬盤)

DH=磁頭號

CL高2位+CH=柱面號

CL低6位=扇區(qū)號

CS:BX=存放讀取數(shù)據(jù)的內(nèi)存緩沖地址

出口參數(shù):CS:BX=讀取數(shù)據(jù)存放地址

錯誤信息:如果出錯CF=1 AH=錯誤代碼

用DEBUG讀取位于硬盤0柱面、0磁頭、1扇區(qū)的操作如下:

A>DEBUG

-A 100

XXXX:XXXX MOV AX,0201 (用功能號2讀1個扇區(qū))

XXXX:XXXX MOV BX,1000 (把讀出的數(shù)據(jù)放入緩沖區(qū)的地址為CS:1000)

XXXX:XXXX MOV CX,0001 (讀0柱面,1扇區(qū))

XXXX:XXXX MOV DX,0080 (指定第一物理盤的0磁頭)

XXXX:XXXX INT 13

XXXX:XXXX INT 3

XXXX:XXXX (按回車鍵)

-G=100 (執(zhí)行以上程序段)

-D 1000 11FF (顯示512字節(jié)的MBR內(nèi)容)

2.MBR的組成

一個扇區(qū)的硬盤主引導(dǎo)記錄MBR由如圖6-15所示的4個部分組成。

·主引導(dǎo)程序(偏移地址0000H--0088H),它負(fù)責(zé)從活動分區(qū)中裝載,并運行系統(tǒng)引導(dǎo)程序。

·出錯信息數(shù)據(jù)區(qū),偏移地址0089H--00E1H為出錯信息,00E2H--01BDH全為0字節(jié)。

·分區(qū)表(DPT,Disk Partition Table)含4個分區(qū)項,偏移地址01BEH--01FDH,每個分區(qū)表項長16個字節(jié),共64字節(jié)為分區(qū)項1、分區(qū)項2、分區(qū)項3、分區(qū)項4。

·結(jié)束標(biāo)志字,偏移地址01FE--01FF的2個字節(jié)值為結(jié)束標(biāo)志55AA,如果該標(biāo)志錯誤系統(tǒng)就不能啟動。

0000-0088

Master Boot Record 主引導(dǎo)程序

主引導(dǎo)

程序

0089-01BD

出錯信息數(shù)據(jù)區(qū)

數(shù)據(jù)區(qū)

01BE-01CD

分區(qū)項1(16字節(jié))

分區(qū)表

01CE-01DD

分區(qū)項2(16字節(jié))

01DE-01ED

分區(qū)項3(16字節(jié))

01EE-01FD

分區(qū)項4(16字節(jié))

01FE

55

結(jié)束標(biāo)志

01FF

AA

                      圖6-15 MBR的組成結(jié)構(gòu)圖
3.MBR中的分區(qū)信息結(jié)構(gòu)
    占用512個字節(jié)的MBR中,偏移地址01BEH--01FDH的64個字節(jié),為4個分區(qū)項內(nèi)容(分區(qū)信息表)。它是由磁盤介質(zhì)類型及用戶在使用FDISK定義分區(qū)說確定的。在實際應(yīng)用中,F(xiàn)DISK對一個磁盤劃分的主分區(qū)可少于4個,但最多不超過4個。每個分區(qū)表的項目是16個字節(jié),其內(nèi)容含義如表6-19所示。
表6-19 分區(qū)項表(16字節(jié))內(nèi)容及含義

存貯字節(jié)位

內(nèi)容及含義

第1字節(jié)

引導(dǎo)標(biāo)志。若值為80H表示活動分區(qū),若值為00H表示非活動分區(qū)。

第2、3、4字節(jié)

本分區(qū)的起始磁頭號、扇區(qū)號、柱面號。其中:
    磁頭號——第2字節(jié);
    扇區(qū)號——第3字節(jié)的低6位;
    柱面號——為第3字節(jié)高2位+第4字節(jié)8位。

第5字節(jié)

分區(qū)類型符。
    00H——表示該分區(qū)未用(即沒有指定);
    06H——FAT16基本分區(qū);
    0BH——FAT32基本分區(qū);
    05H——擴展分區(qū);
    07H——NTFS分區(qū);
    0FH——(LBA模式)擴展分區(qū)(83H為Linux分區(qū)等)。

第6、7、8字節(jié)

本分區(qū)的結(jié)束磁頭號、扇區(qū)號、柱面號。其中:
    磁頭號——第6字節(jié);
    扇區(qū)號——第7字節(jié)的低6位;
    柱面號——第7字節(jié)的高2位+第8字節(jié)。

第9、10、11、12字節(jié)

本分區(qū)之前已用了的扇區(qū)數(shù)。

第13、14、15、16字節(jié)

本分區(qū)的總扇區(qū)數(shù)。

4.MBR的主要功能及工作流程
    啟動PC機時,系統(tǒng)首先對硬件設(shè)備進(jìn)行測試,測試成功后進(jìn)入自舉程序INT 19H,然后讀系統(tǒng)磁盤0柱面、0磁頭、1扇區(qū)的主引導(dǎo)記錄(MBR)內(nèi)容到內(nèi)存指定單元0:7C00地址開始的區(qū)域,并執(zhí)行MBR程序段。
    硬盤的主引導(dǎo)記錄(MBR)是不屬于任何一個操作系統(tǒng)的,它先于所有的操作系統(tǒng)而被調(diào)入內(nèi)存,并發(fā)揮作用,然后才將控制權(quán)交給主分區(qū)(活動分區(qū))內(nèi)的操作系統(tǒng),并用主分區(qū)信息表來管理硬盤。
MBR程序段的主要功能如下:
·檢查硬盤分區(qū)表是否完好。
·在分區(qū)表中尋找可引導(dǎo)的“活動”分區(qū)。
·將活動分區(qū)的第一邏輯扇區(qū)內(nèi)容裝入內(nèi)存。在DOS分區(qū)中,此扇區(qū)內(nèi)容稱為DOS引導(dǎo)記錄(DBR)。
MBR引導(dǎo)程序段的執(zhí)行流程如圖6-16所示。



                                 硬盤邏輯驅(qū)動器的分區(qū)表鏈結(jié)構(gòu)
    硬盤是由很多個512字節(jié)的扇區(qū)組成,而這些扇區(qū)會被組織成一個個的“分區(qū)”。
硬盤的分區(qū)規(guī)則是:一個分區(qū)的所有扇區(qū)必須連續(xù),硬盤可以有最多4個物理上的分區(qū),這4個物理分區(qū)可以時個主分區(qū)或者3個主分區(qū)加一個擴展分區(qū)。在DOS/Windows管理下的擴展分區(qū)里,可以而且必須再繼續(xù)劃分邏輯分區(qū)(邏輯盤)。
從MS-DOS3.2問世以后,用戶就可以在一個物理硬盤驅(qū)動器上劃分一個主分區(qū)和一個擴展分區(qū),并在擴展分區(qū)上創(chuàng)建多個邏輯驅(qū)動器,也即我們常說的一個物理盤上多個邏輯盤。
舉一個例子,一個10G的硬盤,安裝Windows,有C:、D:、E:三個邏輯盤,那么它的分區(qū)情況可以是如下的方式:
分區(qū)一:主分區(qū)2GB,格式化為C:盤。
分區(qū)二:擴展分區(qū)8GB。它被再劃分為兩個各4GB的邏輯盤,格式化為以D:和E:盤。
在一個劃分有多個主分區(qū)的硬盤上,則可安裝多個不同的操作系統(tǒng)。如Windows、Linux、Solaris等。每個操作系統(tǒng)自己去管理分配給自己的分區(qū)。但是,每個操作系統(tǒng)對分區(qū)的操作方式是不同的。對于DOS/Windows來說,它能夠把它所能管轄的一個主分區(qū)和一個擴展分區(qū)格式化,然后按照C:、D:、E:邏輯盤的方式來管理。而Linux則不同,它是把“分區(qū)”看作一個設(shè)備,既沒有“擴展分區(qū)”的概念,也沒有“邏輯盤”的概念。
1.邏輯盤的鏈接關(guān)系
在FAT文件系統(tǒng)中,硬盤的邏輯盤字符用字符C:、D:、E:、...、Z:來表示。主分區(qū)一般被格式化成C:盤,從D:盤開始的邏輯盤是建立在擴展分區(qū)之上的。在系統(tǒng)進(jìn)行讀寫操作時,DOS首先查看主引導(dǎo)記錄(MBR)中的分區(qū)信息表,分區(qū)項將指向活動主分區(qū)的DOS引導(dǎo)記錄(DBR)。
MBR中的分區(qū)表位于0柱面、0磁頭、1扇區(qū)內(nèi),以位移1BEH開始的第一分區(qū)表作為鏈?zhǔn)?,有表?nèi)的鏈接表項指示下一分區(qū)表的物理位置(xx柱面、0磁頭、1扇區(qū)),在該位置的扇區(qū)內(nèi)同樣位移1BEH處,保存著第2張分區(qū)表,依次類推,直至指向最后一張分區(qū)表的物理位置(yy柱面、0磁頭、1扇區(qū))。因該分區(qū)表內(nèi)不存在鏈接表項,即作為分區(qū)表鏈的鏈尾。如圖6-17所示。
   硬盤                     第一個虛擬              第二個虛擬                  第三個虛擬  
MBR分區(qū)表                   MBR分區(qū)表              MBR分區(qū)表                   MBR分區(qū)表

定義C:盤

------------>

定義D:盤

----------->

定義E:盤

------------>

定義F:盤

描述剩余空間

描述剩余空間

描述剩余空間

描述剩余空間

未用

未用

未用

未用

未用

未用

未用

未用

55AA

55AA

55AA

55AA

圖具有4個邏輯盤的分區(qū)鏈表示意圖
舉例來說,本來位于柱面0、磁頭0、扇區(qū)1上的分區(qū)表的每一項記錄和主分區(qū)的DBR之間有一對應(yīng)的關(guān)系,但是,如果在擴展分區(qū)中建立了多個邏輯盤,例如D:、E:、F:,該分區(qū)表中的分區(qū)項可指向第一個邏輯盤:,但對于其它的邏輯盤,則就沒有這種對應(yīng)關(guān)系了。為能夠查找擴展分區(qū)中的多個邏輯盤,DOS系統(tǒng)可做如下安排:
·如果硬盤只有一個主分區(qū),即是將整個硬盤作為一個邏輯盤C:,則分區(qū)命令FDISK只在硬盤的柱面0、磁頭0、扇區(qū)1上建立一個MBR。
·如果硬盤被劃分成2--4個分區(qū),則FDISK除了在柱面0、磁頭0、扇區(qū)1上建立一個MBR之外,還在擴展分區(qū)的每個邏輯盤的起始扇區(qū)上都建立一個虛擬MBR,每一個虛擬MBR用于擴展分區(qū)上的一個邏輯盤。
·擴展分區(qū)的第一個扇區(qū)不是用于一個邏輯盤的DBR,而是指向一個“擴展的”分區(qū)表,即第一個虛擬的MBR。該邏輯盤DBR扇區(qū)的起點應(yīng)為虛擬MBR的下一個磁道1扇區(qū)。
這些MBR中的各個分區(qū)表鏈接成一個如圖6-17所示的分區(qū)表鏈。這是一個硬盤具有4個表項所描述的內(nèi)容。
DOS就是用這種方法來使一個擴展分區(qū)看起來象是有多個硬盤。
從圖中可以看到,位于磁盤柱面0、磁頭0、扇區(qū)1上MBR的分區(qū)表指向基本分區(qū)及擴展分區(qū)中的第一個邏輯盤。



圖6-16 MBR引導(dǎo)程序段執(zhí)

 需要指出的是,在以前的磁盤讀取技術(shù)水平下,低級格式化是一種損耗性操作,其對硬盤壽命有一定的負(fù)面影響。最近一兩年出的硬盤進(jìn)行低級格式化影響要小的多,因為他不是物理上的操作。因此,許多硬盤廠商均建議用戶不到萬不得已,不可“妄”使此招。當(dāng)硬盤受到外部強磁體、強磁場的影響,或因長期使用,硬盤盤片上由低級格式化劃分出來的扇區(qū)格式磁性記錄部分丟失,從而出現(xiàn)大量“壞扇區(qū)”時,可以通過低級格式化來重新劃分“扇區(qū)”。但是前提是硬盤的盤片沒有受到物理性劃傷。   硬盤低級格式化的功用硬盤低格格式化是對硬盤最徹底的初始化方式,經(jīng)過低格后的硬盤,原來保護(hù)的數(shù)據(jù)將全部丟失,所以一般來說低格硬盤是非常不可取的,只有非常必要的時候才能低格硬盤。而這個所謂的必要時候有兩種,一是硬盤出廠前,硬盤廠會對硬盤進(jìn)行一次低級格式化;另一個是當(dāng)硬盤出現(xiàn)某種類型的壞道時,使用低級格式化能起到一定的緩解或者屏蔽作用。   對于第一種情況,這里不用多說了,因為硬盤出廠前的低格工作只有硬盤工程師們才會接觸到,對于普通用戶而言,根本無須考慮這方面的事情。至于第二種情況,是什么類型的壞道時才需要低格呢?在說明這個關(guān)鍵性問題前,先來看看硬盤壞道的類型。

編輯本段產(chǎn)生原因及作用

邏輯壞道

  總的來說,壞道可以分為物理壞道和邏輯壞道。其中邏輯壞道相對比較容易解決,它指硬盤在寫入時受到意外干擾,造成有ECC錯誤。從過程上講,它是指硬盤在寫入數(shù)據(jù)的時候,會用ECC的邏輯重新組合數(shù)據(jù),一般操作系統(tǒng)要寫入512個字節(jié),但實際上硬盤會多寫幾十個字節(jié),而且所有的這些字節(jié)都要用ECC進(jìn)行校驗編碼,如果原始字節(jié)算出的ECC校正碼和讀出字節(jié)算出的ECC不同,這樣就會產(chǎn)生ECC錯誤,這就是所謂的邏輯壞道產(chǎn)生原因。

物理壞道

  至于物理壞道,它對硬盤的損壞更具致命性,它也有軟性和硬性物理壞道的區(qū)別,磁盤表面物理損壞就是硬性的,這是無法修復(fù)的。而由于外界影響而造成數(shù)據(jù)的寫入錯誤時,系統(tǒng)也會認(rèn)為是物理壞道,而這種物理壞道是可以使用一些硬盤工具(例如硬盤廠商提供的檢測修復(fù)軟件)來修復(fù),此外,對于微小的硬盤表面損傷,一些硬盤工具(例如西部數(shù)據(jù)的Data Lifeguard Tools)就可以重新定向到一個好的保留扇區(qū)來修正錯誤。   對于這些壞道類型,硬性的物理壞道肯定是無法修復(fù)的,它是對硬盤表面的一種最直接的損壞,所以即使再低格或者使用硬盤工具也無法修復(fù)(除非是非常微小的損壞,部分工具可以將這部份壞道保留不用以此達(dá)到解決目的)。

低格的作用

  對于硬盤上出現(xiàn)邏輯壞道或者軟性物理壞道,用戶可以試試使用低級格式化來達(dá)到屏蔽壞道的作用,但這里需要指出,屏蔽壞道并不等于消除壞道了,低格硬盤能把原來硬盤內(nèi)所有分區(qū)都刪除,但壞道卻依然存在,屏蔽只是將壞道隱藏起來,不讓用戶在存儲數(shù)據(jù)時使用這些壞道,這樣能在一定程度上保證用戶數(shù)據(jù)的可靠性,但壞道卻會隨著硬盤分區(qū)、格式化次數(shù)的增長而擴散蔓延。   所以筆者并不推薦用戶對硬盤進(jìn)行低格,如果硬盤在保修期內(nèi)最好去保修或者找經(jīng)銷商換一塊,這可以說是最佳解決方案,也是最徹底的解決方案了。如果硬盤過了保修期不讓換,那可以試試低格硬盤,以防止將數(shù)據(jù)存儲到壞道導(dǎo)致數(shù)據(jù)損失。

編輯本段方法

工具低格

  對于如何進(jìn)行硬盤低格,一般來說是使用低格工具來操作,這個將在下面的章節(jié)中詳細(xì)介紹,這里再說一些相關(guān)話題。即低格工具跟硬盤檢測工具是有著本質(zhì)的區(qū)別,低格工具就是對硬盤進(jìn)行低格的作用,而硬盤檢測工具一般來說是硬盤廠商推出的用來檢測硬盤,及早發(fā)現(xiàn)硬盤錯誤,以提醒用戶備份重要數(shù)據(jù)或者檢修硬盤用的,它不是用于低格硬盤。 而最常見的莫過于使用一些工具軟件來對硬盤進(jìn)行低格,常見低格工具有lformat、DM及硬盤廠商們推出的各種硬盤工具等。

匯編語言低格

  用Debug匯編語言進(jìn)行低級格式化   低級格式化硬盤能完成銷毀硬盤內(nèi)的數(shù)據(jù),所以在操作前一定要謹(jǐn)慎。硬盤低格有許多方法,例如直接在CMOS中對硬盤進(jìn)行低格,或者使用匯編語言進(jìn)行硬盤低格。匯編是比較低級的一種編程語言,它能非常方便地直接操作硬件,而且運行效率很高,如果軟件系統(tǒng)中需要直接操作硬件時,經(jīng)常使用的就是匯編語言。使用匯編也可以對硬盤進(jìn)行低級格式化,它比DM等工具軟件顯得更為靈活,具體應(yīng)用時就是使用debug程序,而具體操作就是在debug環(huán)境下,調(diào)用存放在BIOS 中的低級格式化程序(CMOS中直接低格硬盤調(diào)用的也是此段低格程序)。實現(xiàn)方法通常有如下三種:   (1)、直接調(diào)用BIOS ROM中的低格程序   在很多計算機的BIOS ROM中存放著低格程序,存放地址從C8005H地址開始,具體操作如下:   A:\>Debug   -G C800 0005(這時屏幕顯示信息(不同版本的BIOS顯示的信息可能不同),回車后提示:)   Current Interleave is 3 select newinterleave or Return for current(這是要求用戶選擇交叉因子,按回車表示取默認(rèn)值3,也可輸入新的交叉因子值,硬盤的交叉因子一般是3,所以直接回車即可。屏幕接著提示:)   Are you dynamically configuring thedrive-answer YN t   PressYto begin formatting the drive C with interleave 03(鍵入“Y”后開始對硬盤進(jìn)行低格)   Formatting ……(完成后詢問是否處理壞磁道)   Do you want to format bad track-answer YN?   若沒有則用“N”回答。屏幕顯示:   Format Successfulsystem will new restart,Insert Dos diskette indrive A   插入系統(tǒng)盤到A驅(qū)動器,即可進(jìn)行分區(qū),高級格式化等操作來安裝系統(tǒng)了。   (2)、通過調(diào)用INT 13H中斷的7號功能對硬盤進(jìn)行低格   操作如下:   A:\>DEBUG   -A 100   -XXXX0100 MOV AX,0703;(交叉因子為3   -XXXX0103 MOV CX,0001;(0磁道0扇區(qū)起)   -XXXX0106 MOV DX,0080;(C0磁道)   -XXXX0109 INT 13   -XXXX010B INT 3   -XXXX010D   -G 100   這樣硬盤就被低格了。   (3)、調(diào)用INT 13H中斷的5號功能   對硬盤調(diào)用INT 13H中斷的5號功能只低格001扇區(qū),而不必低格整個硬盤,從而使低格在很短的時間內(nèi)完成。具體操作如下:   ADEBUG   -A 100   -XXXX0100 MOV AX,0500;(調(diào)用5號功能)   -XXXX0103 MOV BX,0180;(設(shè)置緩沖區(qū)地址)   -XXXX0106 MOV CX,0001;(0磁道1扇區(qū)起)   -XXXX0109 MOV DX,0080;(C0磁道)   -XXXX010B INT 13   -XXXX010D INT 3   -E 0180 0 0 0002;(寫入?yún)?shù))   -G 100

DM低級格式化方法

  用DM進(jìn)行低級格式化   DM的全名是Hard Disk Management Program,它能對硬盤進(jìn)行低級格式化、校驗等管理工作,可以提高硬盤的使用效率。總的來說,DM具有如下幾個功能:硬盤低級格式化、分區(qū)、高級格式化、硬盤參數(shù)配置及其它功能。   在實際應(yīng)用時,dm工具跟普通DOS命令(fdiskformat)一樣,它的命令格式為:ADM [參數(shù)] 。其中的參數(shù)可取以下值:   M DM軟件以手工方式進(jìn)入,如無該參數(shù),DM以自動方式運行,依次執(zhí)行INITIALIZE. PARTITIONG. PREPARAFION。   C DM軟件以彩色方式執(zhí)行,即運行于彩色顯示器上。   P DM軟件以PCXT方式管理硬盤。   A DM軟件以PCAT方式管理硬盤。   2 DOS 2.XX版本方式。   3 DOS 3.XX版本方式。   4 DOS 4.XX版本方式(DM 5.01版有此參數(shù))   V DM運行于可改變簇長度、根目錄項方式。   在實際使用中常用以下兩種方式啟動:   1、ADM (自動方式。初始化硬盤時很多參數(shù)都用默認(rèn)值幾乎不要人工干預(yù))。   2、ADM (手動方式。作格式化時一些參數(shù)要人工指定)。   啟動dm工具后,用戶就可以根據(jù)自己的需要選擇相應(yīng)的操作,由于它也是以DOS用戶界面的形式存,所以使用起來也十分簡捷、明了。

其它低級格式化方法

  除了上面介紹的兩種低格工具外,還有許多其它低級格式化方法。   1、CMOS中直接操作   如果主板支持,用戶可以直接在CMOS對硬盤進(jìn)行低級格式化,這種方法非常簡單、方便,因此如果可能的話,筆者推薦使用這種方法進(jìn)行硬盤低格。具體操作方法:在開機時根據(jù)系統(tǒng)提示進(jìn)入CMOS Setup(如果是AwardBIOS,會提示按DEL進(jìn)入CMOSSetup,如果是Intel主板,一般是按F2進(jìn)入CMOS Setup),接著在CMOS菜單內(nèi)選擇low formatted HardDisk Drive選擇,然后根據(jù)程序提示進(jìn)行待低格硬盤,同時回答一些程序提問即可進(jìn)行硬盤低級格式化。   2lformat.com程序低格硬盤   除了dm工具外,還有一款比較常見的低格程序是lformat.exe,它是由邁拓公司推出的低級格式化硬盤工具。在DOS狀態(tài)下運行 lformat.exe后,程序即啟動警告界面。在該畫面中說明的大概意思是,如果用戶使用這個工具時,硬盤內(nèi)所有數(shù)據(jù)將丟失,因此推薦在運行它之前備份必要的數(shù)據(jù),同時推薦移走所有其它硬盤。如果用戶忘記備份數(shù)據(jù),而希望退出該程序,則可以按除Y之外的任意鍵即可,如果用戶確認(rèn)對硬盤進(jìn)行低格,請按 Y”鍵。   如果選擇了“Y”后,程序?qū)⒁笥脩暨x擇硬盤或者就對當(dāng)前硬盤進(jìn)行低格,接著,問答幾個提問,即可開始硬盤低級格式化過程。

編輯本段低格,高格及快格的區(qū)別

  類型 主要工作 特點 備注

低級格式化 介質(zhì)檢查;磁盤介質(zhì)測試;劃分磁道和扇區(qū);對每個扇區(qū)進(jìn)行編號(C/H/S);設(shè)置交叉因子。 只能在DOS環(huán)境或自寫的匯編指令下進(jìn)行,低級格式化只能整盤進(jìn)行,現(xiàn)在硬盤出廠都是經(jīng)過低格的,實際使用不到萬不得已不要使用低格。 低級格式化對硬盤有損傷,如果硬盤已有物理壞道,則低級格式化會更加損傷硬盤,加快報廢。低格的時間漫長,比如現(xiàn)在320G硬盤低格可能需要20小時,或更多。

高級格式化 清除數(shù)據(jù)(寫刪除標(biāo)記);檢查扇區(qū);重新初始化引導(dǎo)信息;初始化分區(qū)表信息; 可以在DOS和操作系統(tǒng)上進(jìn)行,只能對分區(qū)操作。高級格式化只是存儲數(shù)據(jù),但如果存在壞扇區(qū)可能會導(dǎo)致長時間磁盤讀寫。 DOS下可能有分區(qū)識別問題。使用Format命令格式化不會自動修復(fù)邏輯壞道,如果發(fā)現(xiàn)有壞道,最好使用SCANDISKWINDOWS系統(tǒng)的磁盤檢查功能、還有其它第三方軟件進(jìn)行修復(fù)或隱藏,邏輯壞道既可以通過磁盤檢查也可以通過低格解決,這取決于是扇區(qū)的哪個部分出現(xiàn)了錯誤。

快速格式化 刪除文件分配表;不檢查扇區(qū)損壞情況; 可以在DOS和操作系統(tǒng)上進(jìn)行,只能對分區(qū)操作。快速格式化也只是存儲數(shù)據(jù) DOS下可能有分區(qū)識別問題。另外,似乎Linux系統(tǒng)沒有快速格式化命令。

本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
MBR與分區(qū)表
硬盤低格(Low Level Format)
低級格式化
電腦不認(rèn)硬盤的終極處理辦法
系統(tǒng)工作機理的簡單介紹
關(guān)于硬盤各種保養(yǎng)知識
更多類似文章 >>
生活服務(wù)
熱點新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服