MBR位于硬盤第一個物理扇區(絕對扇區)柱面0,磁頭0,扇區1處。由于DOS是由柱面0,磁頭1,扇區1開始,故MBR不屬于
DOS扇區,DOS不能直接訪問。MBR中包含硬盤的主引導程序和硬盤分區表。分區表有4個分區記錄區。記錄區就是記錄有關分區信
息的一張表。它從主引導記錄偏移地址01BEH處連續存放,每個分區記錄區占16個字節。
分區表的格式
分區表項的偏移 意義占用字節數
00 引導指示符 1B
01 分區引導記錄的磁頭號 1B
02 分區引導記錄的扇區和柱面號 2B
04 系統指示符 1B
05 分區結束磁頭號 1B
06 分區結束扇區和柱面號 2B
08 分區前面的扇區數 4B
0C 分區中總的扇區數 4B
4個分區中只能有1個活躍分區,即C盤。標志符是80H在分區表的第一個字節處。若是00H則表示非活躍分區。例如:
80 01 01 00 0B FE 3F 81 3F 00 00 00 C3 DD 1F 00
00 00 01 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位于硬盤第一個物理扇區柱面0,磁頭0,扇區1處。不屬于DOS扇區,
(2)主引導記錄分為硬盤的主引導程序和硬盤分區表。
6.DBR
DBR位于柱面0,磁頭1,扇區1,即邏輯扇區0。DBR分為兩部分:DOS引導程序和BPB(BIOS參數塊)。其中DOS引導程序完成DOS系統文件(IO.SYS,MSDOS.SYS)的定位與裝載,而BPB用來描述本DOS分區的磁盤信息,BPB位于DBR偏移0BH處,共13字節。
它包含邏輯格式化時使用的參數,可供DOS計算磁盤上的文件分配表,目錄區和數據區的起始地址,BPB之后三個字提供物理格式化(低格)時采用的一些參數。引導程序或設備驅動程序根據這些信息將磁盤邏輯地址(DOS扇區號)轉換成物理地址(絕對扇區號)。
BPB格式序號 偏移地址 意義
1 03H-0AH OEM號
2 0BH-0CH 每扇區字節數
3 0DH 每簇扇區數
4 0EH-0FH 保留扇區數
5 10H FAT備份數
6 11H-12H 根目錄項數
7 13H-14H 磁盤總扇區數
8 15H 描述介質
9 16H-17H 每FAT扇區數
10 18H-19H 每磁道扇區數
11 1AH-1BH 磁頭數
12 1CH-1FH 特殊隱含扇區數
13 20H-23H 總扇區數
14 24H-25H 物理驅動器數
15 26H 擴展引導簽證
16 27H-2AH 卷系列號
17 2BH-35H 卷標號
18 36H-3DH 文件系統號
DOS引導記錄公式:
文件分配表≡保留扇區數
根目錄≡保留扇區數+FAT的個數×每個FAT的扇區數
數據區≡根目錄邏輯扇區號+(32×根目錄中目錄項數+(每扇區字節數-1))DIV每扇區字節數
絕對扇區號≡邏輯扇區號+隱含扇區數
扇區號≡(絕對扇區號MOD每磁道扇區數)+1
磁頭號≡(絕對扇區號DIV每磁道扇區數)MOD磁頭數
磁道號≡(絕對扇區號DIV每磁道扇區數)DIV磁頭數
要點:(1)DBR位于柱面0,磁頭1,扇區1,其邏輯扇區號為0
(2)DBR包含DOS引導程序和BPB。
(3)BPB十分重要,由此可算出邏輯地址與物理地址。
7.文件分配表
文件分配表是DOS文件組織結構的主要組成部分。我們知道DOS進行分配的最基本單位是簇。文件分配表是反映硬盤上所有簇的使用情況,通過查文件分配表可以得知任一簇的使用情況。DOS在給一個文件分配空間時總先掃描FAT,找到第一個可用簇,將該空間分配給文件,并將該簇的簇號填到目錄的相應段內。即形成了簇號鏈。FAT就是記錄文件簇號的一張表。
FAT的頭兩個域為保留域,對FAT12來說是3個字節,FAT來說是4個字節。其中頭一個字節是用來描述介質的,其余字節為FFH 。介質格式與BPB相同。
第一個字節的8位意義:
7 6 5 4 3 2 1 0
└─────-┘ │ │ │┌0非雙面
置1 │ │ └┤
│ │ └1雙面
│ │┌0不是8扇區
│ └┤
│ └1是8扇區
│┌0不是可換的
└┤
└1是可換的
FAT結構含義
FAT12 FAT16 意義
000H 0000H 可用
FF0H-FF6H FFF0H-FFF6H 保留
FF7H FFF7H 壞
FF8H-FFFH FFF8H-FFFFH 文件最后一個簇
×××H ××××H 文件下一個簇
對于FAT16,簇號×2作偏移地址,從FAT中取出一字即為FAT中的域。
邏輯扇區號=數據區起始邏輯扇區號+(簇號-2)×每簇扇區數
簇號=(邏輯扇區號-數據區起始邏輯扇區號)DIV每簇扇區數+2
要點:
(1)FAT反映硬盤上所有簇的使用情況,它記錄了文件在硬盤中具體位置(簇)。
(2)文件第一個簇號(在目錄表中)和FAT的該文件的簇號串起來形成文件的簇號鏈,恢復被破壞的文件就是根
據這條鏈。
(3)由簇號可算邏輯扇區號,反之,由邏輯扇區號也可以算出簇號,公式如上。
(4)FAT位于DBR之后,其DOS扇區號從1開始。
8.文件目錄
文件目錄是DOS文件組織結構的又一重要組成部分。文件目錄分為兩類:根目錄,子目錄。根目錄有一個,子目錄可以有多個。子目錄下還可以有子目錄,從而形成樹狀的文件目錄結構。子目錄其實是一種特殊的文件,DOS為目錄項分配32字節。目錄項分為三類:文件,子目錄(其內容是許多目錄項),卷標(只能在根目錄,只有一個。目錄項中有文件(或子目錄,或卷標)的名字,擴展名,屬性,生成或最后修改日期,時間,開始簇號,及文件大小。
目錄項的格式
字節偏移 意義 占字節數
00H 文件名 8B
08H 擴展名 3B
0BH 文件屬性 1B
0CH 保留 10B
16H 時間 2B
18H 日期 2B
1AH 開始簇號 2B
1CH 文件長度 4B
目錄項文件名區域中第一個字節還有特殊的意義:00H代表未使用
05H代表實際名為E5H
EBH代表此文件已被刪除
目錄項屬性區域的這個字節各個位的意義如下: 7 6 5 4 3 2 1 0
未 修 修 子 卷 系 隱 只
用 改 改 目 標 統 藏 讀
標 標 錄 屬 屬 屬
志 志 性 性 性
注意:WINDOWS的長文件名使用了上表中所說的保留這片區域。
要點:
(1)文件目錄是記錄所有文件,子目錄名,擴展名屬性,建立或刪除最后修改日期。文件開始簇號及文件長度的一張登記表.
(2)DOS中DIR列出的內容訓是根據文件目錄表得到的。
(3)文件起始簇號填在文件目錄中,其余簇都填在FAT中上一簇的位置上。
第三部分--附錄
每個用戶的硬盤中都存放著大量的有用數據,而硬盤又是一個易出毛病的采誦寧。為了有效的保存硬盤中的數據,除了有效的保存硬盤中的數據,備份工作以外,還要學會在硬盤出現故障時如何救活硬盤,或者提取其中的有用數據,把損失降到最小程度。
1、系統不承認硬盤
此類故障比較常見,即從硬盤無法啟動,從A盤啟動也無法進入C盤,使用CMOS中的自動監測功能也無法發現硬盤的存在。這種故障大都出現在連接電纜或IDE口端口上,硬盤本身的故障率很少,可通過重新插拔硬盤電纜或者改換IDE口及電纜等進行替換試驗,可很快發現故障的所在。如果新接上的硬盤不承認,還有一個常見的原因就是硬盤上的主從條線,如果硬盤接在IDE的主盤位置,則硬盤必須跳為主盤狀,跳線錯誤一般無法檢測到硬盤。
2、CMOS引起的故障
CMOS的正確與否直接影響硬盤的正常使用,這里主要指其中的硬盤類型。好在現在的機器都支持IDEautodetect的功能,可自動檢測硬盤的類型。當連接新的硬盤或者更換新的硬盤后都要通過此功能重新進行設置類型。當然,現在有的類型的主板可自動識別硬盤的類型。當硬盤類型錯誤時,有時干脆無法啟動系統,有時能夠啟動,但會發生讀寫錯誤。比如CMOS中的硬盤類型小于實際的硬盤容量,則硬盤后面的扇區將無法讀寫,如果是多分區狀態則個別分區將丟失。還有一個重要的故障原因,由于目前的IDE都支持邏輯參數類型,硬盤可采用Normal、LBA、Large等。如果在一般的模式下安裝了數據,而又在CMOS中改為其他的模式,則會發生硬盤的讀寫錯誤故障,因為其物理地質的映射關系已經改變,將無法讀取原來的正確硬盤位置。
3、主引導程序引起的啟動故障
硬盤的主引導扇區是硬盤中的最為敏感的一個采誦寧,其中的主引導程序是它的一部分,此段程序主要用于檢測硬盤分區的正確性,并確定活動分區,負責把引導權移交給活動分區的DOS或其他操作系統。此段程序損壞將無法從硬盤引導,但從軟區或光區之后可對硬盤進行讀寫。修復此故障的方法較為簡單,使用高版本DOS的fdisk最為方便,當帶參數/mbr運行時,將直接更換(重寫)硬盤的主引導程序。實際上硬盤的主引導扇區正是此程序建立的,fdisk.exe之中包含有完整的硬盤主引導程序。雖然DOS版本不斷更新,但硬盤的主引導程序一直沒有變化,從DOS3.x到目前有winDOS95的DOS,所以只要找到一種DOS引導盤啟動系統并運行此程序即可修復。
4、分區表錯誤引導的啟動故障
分區表錯誤是硬盤的嚴重錯誤,不同錯誤的程度會造成不同的損失。如果是沒有活動分區標志,則計算機無法啟動。但從軟驅或光驅引導系統后可對硬盤讀寫,可通過fdisk重置活動分區進行修復。如果是某一分區類型錯誤,可造成某一分區的丟失。分區表的第四個字節為分區類型值,正常的可引導的大于32mb的基本DOS分區值為06,而擴展的DOS分區值是05。如果把基本DOS分區類型改為05則無法啟動系統,并且不能讀寫其中的數據。如果把06改為DOS不識別的類型如efh,則DOS認為改分區不是DOS分區,當然無法讀寫。
很多人利用此類型值實現單個分區的加密技術,恢復原來的正確類型值即可使該分區恢復正常。分區表中還有其他數據用于紀錄分區的起始或終止地址。這些數據的損壞將造成該分區的混亂或丟失,一般無法進行手工恢復,唯一的方法是用備份的分區表數據重新寫回,或者從其他的相同類型的并且分區狀況相同的硬盤上獲取分區表數據,否則將導致其他的數據永久的丟失。在對主引導扇區進行操作時,可采用nu等工具軟件,操作非常的方便,可直接對硬盤主引導扇區進行讀寫或編輯。當然也可采用debug進行操作,但操作繁瑣并且具有一定的風險。
5、分區有效標志錯誤引起的硬盤故障
在硬盤主引導扇區中還存在一個重要的部分,那就是其最后的兩個字節:55aah,此字為扇區的有效標志。當從硬盤,軟盤或光區啟動時,將檢測這兩個字節,如果存在則認為有硬盤存在,否則將不承認硬盤。此標志時從硬盤啟動將轉入rombasic或提示放入軟盤。從軟盤啟動時無法轉入硬盤。此處可用于整個硬盤的加密技術。可采用debug方法進行恢復處理。另外,DOS引導扇區仍有這樣的標志存在,當DOS引導扇區無引導標志時,系統啟動將顯示為:missingoperatingsystem。其修復的方法可采用的主引導扇區修復方法,只是地址不同,更方便的方法是使用下面的DOS系統通用的修復方法。
6、DOS引導系統引起的啟動故障
DOS引導系統主要由DOS引導扇區和DOS系統文件組成。系統文件主要包括io.sys、msdos.sys、command.com,其中command.com是DOS的外殼文件,可用其他的同類文件替換,但缺省狀態下是DOS啟動的必備文件。在Windows95攜帶的DOS系統中,msdos.sys是一個文本文件,是啟動windows必須的文件。但只啟動DOS時可不用此文件。但DOS引導出錯時,可從軟盤或光盤引導系統,之后使用sysc:傳送系統即可修復故障,包括引導扇區及系統文件都可自動修復到正常狀態。
7、fat表引起的讀寫故障
fat表紀錄著硬盤數據的存儲地址,每一個文件都有一組連接的fat鏈指定其存放的簇地址。fat表的損壞意味著文件內容的丟失。慶幸的是DOS系統本身提供了兩個fat表,如果目前使用的fat表損壞,可用第二個進行覆蓋修復。但由于不同規格的磁盤其fat表的長度及第二個fat表的地址也是不固定的,所以修復時必須正確查找其正確位置,由一些工具軟件如nu等本身具有這樣的修復功能,使用也非常的方便。采用debug也可實現這種操作,即采用其m命令把第二個fat表移到第一個表處即可。如果第二個fat表也損壞了,則也無法把硬盤恢復到原來的狀態,但文件的數據仍然存放在硬盤的數據區中,可采用chkdsk或scandisk命令進行修復,最終得到*.chk文件,這便是丟失fat鏈的扇區數據。如果是文本文件則可從中提取并可合并完整的文件,如果是二進制的數據文件,則很難恢復出完整的文件。
8、目錄表損壞引起的引導故障
目錄表紀錄著硬盤中文件的文件名等數據,其中最重要的一項是該文件的起始簇號,目錄表由于沒有自動備份功能,所以如果目錄損壞將丟失大量的文件。一種減少損失的方法也是采用上面的chkdsk或scandisk程序的方法,從硬盤中搜索出chk文件,由目錄表損壞時是首簇號丟失,在fat為損壞的情況下所形成的chk文件一般都比較完整的文件數據,每一個chk文件即是一個完整的文件,把其改為原來的名字可恢復大多數文件。
9、誤刪除分區時數據的恢復
當用fdisk刪除了硬盤分區之后,表面現象是硬盤中的數據已經完全消失,在未格式化時進入硬盤會顯示無效驅動器。如果了解fdisk的工作原理,就會知道,fdisk只是重新改寫了硬盤的主引導扇區(0面0道1扇區)中的內容。具體說就是刪除了硬盤分區表信息,而硬盤中的任何分區的數據均沒有改變,可仿造上述的分區表錯誤的修復方法,即想辦法恢復分區表數據即可恢復原來的分區即數據,但這只限于除分區或重建分區之后。如果已經對分區用format格式化,在先恢復分區后,在按下面的方法恢復分區數據。
10、誤格式化硬盤數據的恢復
在DOS高版本狀態下,格式化操作format在缺省狀態下都建立了用于恢復格式化的磁盤信息,實際上是把磁盤的DOS引導扇區,fat分區表及目錄表的所有內容復制到了磁盤的最后幾個扇區中(因為后面的扇區很少使用),而數據區中的內容根本沒有改變。這樣通過運行unformatc:即可恢復原來的文件分配表及目錄表,從而完成硬盤信息的恢復。另外DOS還提供了一個miror命令用于紀錄當前的磁盤的信息,供格式化或刪除之后的恢復使用,此方法也比較有效。
硬盤基本知識
9.物理驅動器與邏輯驅動器
物理驅動器指實際安裝的驅動器。
邏輯驅動器是對物理驅動器格式化后產生的。
要點:同上。
硬盤邏輯鎖巧解
在談論具體的解決方法前,先講述一下被邏輯鎖鎖住的硬盤為什么不能用普通辦法啟 動的原因:
計算機在引導DOS系統時將會搜索所有邏輯盤的順序,當DOS被引導時,首先要去找主引導扇區的分區表信息,位于硬盤的零頭零柱面的第一個扇區的OBEH地址開始的地方,當分區信息開始的地方為80H時表示是主引導分區,其他的為擴展分區,主引導分區被定義 為邏輯盤C盤,然后查找擴展分區的邏輯盤,被定義為D盤,
以此類推找到E,F,G..... 邏輯鎖就是在此下手,修改了正常的主引導分區記錄將擴展分區的第一個邏輯盤指向 自己,DOS在啟動時查找到第一個邏輯后,查找下個邏輯盤總是找到是自己,這樣一來 就形成了死循環,這就是使用軟驅,光驅,雙硬盤都不能正常啟動的原因。實際上這邏輯鎖只是利用了DOS在啟動時的一個小小缺陷,便令不少高手都束手無策。知道了邏輯鎖的上鎖原理,要解鎖也就比較容易了。以前我看到有位朋友采用熱拔插硬盤電源的方法來處理:就是在當系統啟動時,先不給被鎖的硬盤插上電源線,等待啟動完成后再給硬盤熱插上電源線,這時如果硬盤沒有燒壞的話,系統就可以控制硬盤了。當然這是一種非常危險的方法,大家不要輕易嘗試,下面介紹兩種比較簡單和安全的處理方法。
方法一:修改DOS啟動文件
首先準備一張DOS6.22的系統盤,帶上debug、pctools5.0、fdisk等工具。然后在一臺正常的機器上,使用你熟悉的二進制編輯工具(debug、pctools5.0,或者windows下的ultraedit都行)修改軟盤上的IO.SYS文件(修改前記住改該文件的屬性為正常),具體是在這個文件里面搜索第一個55aa字符串,找到以后修改為任何其他數值即可。用這張修改過的系統軟盤你就可以順利地帶著被鎖的硬盤啟動了。不過這時由于該硬盤正常的分區表已經被黑客程序給惡意修改了,你無法用FDISK來刪除和修改分區,而且仍無法用正常的啟動盤啟動系統,這時你可以用DEBUG來手工恢復。使用DEBUG手工修復硬盤步驟如下:
a:\ >debug
-a
-xxxx:100 mov ax,0201 讀一個扇區的內容
-xxxx:103 mov bx,500 設置一個緩存地址
-xxxx:106 mov cx,0001 設置第一個硬盤的硬盤指針
-xxxx:109 mov dx,0080 讀零磁頭
-xxxx:10c int 13 硬盤中斷
-xxxx:10e int 20
-xxxx:0110 退出程序返回到指示符
-g 運行
-d500 查看運行后500地址的內容
這時候會發現地址6be開始的內容是硬盤分區的信息,發現此硬盤的擴展分區指向自己,這就使DOS或WINDOWS啟動時查找硬盤邏輯盤進去死循環,在DEBUG指示符下用E命令修改內存數據
具體如下:
E6BE
xx.0 xx.0 xx.0...............
.............................
.......................55 AA
55 AA表示硬盤有效的標記,不要修改,xx0表示把以前的數據xx改成0
再用硬盤中斷13把修改好的數據寫入硬盤就可以了,具體如下:
A:\ >debug
a 100 表示修改100地址的匯編指令
-xxxx:100 mov ax,0301 寫硬盤一個扇區
-xxxx: 這里直接按回車
-g 運行
-q 退出
然后運行 FDISK/MBR(重置硬盤引導扇區的引導程序),再重新啟動電腦就行了。 怎么樣?用這種方法處理夠簡單的吧?而且這種方法還有一個好處就是可以保住盤上的數據!如果你不需要保數據的話,還有更加簡單的處理方法:
方法二:巧設BIOS,用DM解鎖大家知道DM軟件是不依賴于主板BIOS的硬盤識別安裝軟件,(所以在不能識別大硬盤的老主板上也可用DM來安裝使用大容量硬盤)。就算在BIOS中將硬盤設為NONE,DM也可識別并處理硬盤。
首先你要找到和硬盤配套的DM軟件(找JS要或去網上蕩),然后把DM拷到一張系統盤上。接上被鎖硬盤,開機,按住DEL鍵,進CMOS設置,將所有IDE硬盤設為NONE(這是關鍵所在!),保存設置,重啟動,這時系統即可 帶鎖啟動。啟動后運行DM,你會發現DM可以繞過BIOS,識別出硬盤,選中該硬盤,分區格式化,就OK了。這么簡單?不過這種 方法的弱點是硬盤上的數據將全部丟失。
希望你能成為一名維修電腦的高手!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!