四虎成人免费视频,国产一级a作爱视频免费观9看,色五月丁香亚洲,亚洲欧美性爱在线视频,1000部黄片免费观看一区,国产亚洲性生活视频播放,三级黄色在线视频网站

現(xiàn)在位置:范文先生網(wǎng)>理工論文>計(jì)算機(jī)信息技術(shù)>用擴(kuò)展INT13H研析并恢復(fù)大容量硬盤分區(qū)信息鏈表

用擴(kuò)展INT13H研析并恢復(fù)大容量硬盤分區(qū)信息鏈表

時(shí)間:2023-02-21 00:09:56 計(jì)算機(jī)信息技術(shù) 我要投稿
  • 相關(guān)推薦

用擴(kuò)展INT13H研析并恢復(fù)大容量硬盤分區(qū)信息鏈表

用擴(kuò)展INT13H研析并恢復(fù)大容量硬盤分區(qū)信息鏈表

江西宜春學(xué)院計(jì)算機(jī)系  劉  健

內(nèi)容摘要:本文利用擴(kuò)展INT13H的磁盤地址數(shù)據(jù)包及相關(guān)調(diào)用,分析了整個(gè)分區(qū)鏈表并給出了鏈表中任一結(jié)點(diǎn)分區(qū)信息丟失或被破壞之后的一種恢復(fù)方法。

 

關(guān)鍵字:擴(kuò)展INT13H、數(shù)據(jù)包、分區(qū)信息、鏈表、恢復(fù)

 

一、 擴(kuò)展INT13H相關(guān)讀寫接口規(guī)范概述

擴(kuò)展INT13H接口設(shè)計(jì)的目的是為了擴(kuò)展BIOS的功能,使之能處理柱面數(shù)大于1024的硬盤,并支持移動(dòng)存貯介質(zhì)的鎖定、解鎖和彈出等各類新增功能。

1、 數(shù)據(jù)類型定義:

BYTE  一字節(jié); WORD  二字節(jié); DWORD 四字節(jié);  QWORD 八字節(jié);

磁盤讀寫地址數(shù)據(jù)包DRWAP(Disk Read Write Address Packet),利用該數(shù)據(jù)包中斷INT13H可以直接讀寫處理目前主流硬盤上的任一扇區(qū),匆需理會(huì)傳統(tǒng)磁盤概念中的通過柱面號(hào)、磁頭號(hào)及扇區(qū)號(hào)(CHS)的物理扇區(qū)定位方式。

DRWAP結(jié)構(gòu)如下:

  Struct DRWAP

{  BYTE  PacketSize;//數(shù)據(jù)包所占字節(jié)數(shù),有10H和18H兩種,本文用前者

   BYTE  Reserved;//保留字節(jié),設(shè)為00H

WORD Blockcount;//傳輸?shù)臄?shù)據(jù)塊個(gè)數(shù)(最大值為7FH),以扇區(qū)為單位

DORD TransferBuffer;//傳輸緩沖區(qū)地址(SEG:OFFSET)

QORD AbsoluteBlockNumber;//磁盤起始絕對(duì)扇區(qū)號(hào)(主引導(dǎo)扇區(qū)為0號(hào))

}

AbsoluteBlockNumber與傳統(tǒng)CHS的關(guān)系如下:

AbsoluteBlockNumber=(Cylinder*NumHeads+Head)*SectorPerTrack+Sector-1

DRWAP數(shù)據(jù)包的獲取及實(shí)際操作

2、 定義磁盤讀寫地址數(shù)據(jù)包獲取指定扇區(qū)之內(nèi)容

入口參數(shù):AH=42H; DL=80H; DS:SI=DRWAP首地址

  出口參數(shù):CF=NC OK;CF=CY ERROR

 

二、分區(qū)信息鏈表解析

讀取主引導(dǎo)扇區(qū)操作過程:(為操作的連續(xù)性,本文不采用傳統(tǒng)INT13H的功能號(hào)02)磁盤讀寫地址數(shù)據(jù)包按如下方式定義:

進(jìn)入DEBUG狀態(tài)之后,DS和SI采用當(dāng)前默認(rèn)值,假設(shè)為DS=1216,SI=0000    則E命令或F命令從1216:0000處輸入以下16個(gè)字節(jié)內(nèi)容

1216:0000 10  00  01  00  00  02  16  12-00  00  00  00  00  00  00

  00

 數(shù)據(jù)包長度=10H=16個(gè)字節(jié)      保留字節(jié)=00H     要傳輸?shù)纳葏^(qū)個(gè)數(shù)=0001H=1個(gè)

 緩沖區(qū)地址DS:SI=1216:0200     磁盤起始絕對(duì)扇區(qū)號(hào)=0000000000000000H=0號(hào)

-A100

1216:0100 MOV AH,42

         MOV DL,80

         INT  13

         INT  3

-G=100

-D3BE

                                                                      80  01

 1216:03B0  01  00  0B  FE  BF  D9

  3F  00-00  00  1B  F2  B2  00  00  00

:03C0  81  DA  0F  FE  FF  FF  5A  F2-B2  00  3E  DE  E0  02  00  00

從上述內(nèi)容可知:

C區(qū)的起始點(diǎn)為0柱1頭1扇,即磁盤起始絕對(duì)扇區(qū)0號(hào);

C區(qū)的結(jié)束點(diǎn)為729柱254頭63扇,并隱含了63個(gè)扇區(qū);

C區(qū)共占用了00B2F21BH個(gè)扇區(qū)約為5.58GB。

整個(gè)擴(kuò)展分區(qū)的起點(diǎn)為730柱0頭1扇,其結(jié)束點(diǎn)由于柱面號(hào)已大大的大于1024,而10位二進(jìn)制數(shù)已不能表達(dá),所以其結(jié)束點(diǎn)一律記為254頭1023柱63扇,即 FE FF FF.

整個(gè)擴(kuò)展分區(qū)本身占用02E0DE3EH扇區(qū),5A F2 B2 00 為擴(kuò)展分區(qū)前所用扇區(qū)數(shù),即C區(qū)所用和隱含部分00B2F21BH+0000003FH=00B2F25AH

 

讀取邏輯D盤分區(qū)信息表:

從前面可知D盤之前已用00B2F25AH,由于起始絕對(duì)扇區(qū)號(hào)為零,因此D盤的入口地址為:00B2F25AH,所以磁盤讀寫地址數(shù)據(jù)包修改如下:

DS:0000  10 00 01 00 00 02 16 12 -5A F2 B2 00 00 00 00 00

-G=100

-D3BE

ds:3B0                                        00 01

  :3C0  81 DA 0B FE FF FF 3F 00-00 00 1B F2 B2 00 00 00

  :3D0  C1 FF 05 FE FF FF 5A F2-B2 00 54 DA D0 00

邏輯D盤的起點(diǎn)為730柱1頭1扇,0頭所含63扇隱含;

邏輯D盤的結(jié)束點(diǎn)由于柱面數(shù)超過1024,一律記為FE FF FF此后的邏輯盤結(jié)束點(diǎn)也一樣。

邏輯D盤自用00B2F21BH扇

后一分區(qū)表項(xiàng)記錄的是邏輯E盤的相關(guān)數(shù)據(jù):

邏輯E盤的起點(diǎn)由于柱面數(shù)超過1024,一律記為00 C1 FF,結(jié)束點(diǎn)為FE FF FF.

邏輯E盤之前已用的擴(kuò)展分區(qū)扇數(shù)00B2F21BH+0000003FH=00B2F25AH即D盤所用和D盤前隱含的部份 5A F2 B2 00

邏輯E盤所占扇區(qū)數(shù)(包含自身及隱含的0頭上的63扇)

 

對(duì)于后繼的各分區(qū)結(jié)點(diǎn)信息分析,可參照執(zhí)行完全類似。唯一需要注意的是,后繼結(jié)點(diǎn)分區(qū)信息表的入口地址,是其前繼結(jié)點(diǎn)的入口地址加上前繼結(jié)點(diǎn)的長度(包括隱含的3FH)。

三、 分區(qū)信息鏈表中任一結(jié)點(diǎn)分區(qū)信息的恢復(fù)

實(shí)際上對(duì)大容量硬盤分區(qū)信息的恢復(fù)有以下幾條規(guī)則:

1、 任何一分區(qū)所占用的扇區(qū)數(shù),在其所對(duì)應(yīng)的邏輯零扇區(qū)的偏移地址20H都有備份;

2、 活動(dòng)分區(qū)的起始點(diǎn)為0柱1頭1扇區(qū)即01 01 00,結(jié)束點(diǎn)可由上述備份反推求出柱面號(hào),磁頭號(hào)為FEH,扇區(qū)號(hào)為3FH,然后將柱面號(hào)和扇區(qū)號(hào)合并成兩個(gè)字節(jié),若備份容量大于傳統(tǒng)容量限制則為FE FF FF;

3、 每一結(jié)點(diǎn)分區(qū)信息中前一分區(qū)表項(xiàng)中的隱含扇區(qū)數(shù)為003FH,后一分區(qū)表項(xiàng)中的隱含扇區(qū)數(shù)分為兩種情況:在擴(kuò)展分區(qū)中該部分內(nèi)容為活動(dòng)分區(qū)大小加上隱含的63個(gè)扇區(qū);在邏輯分區(qū)中該部分內(nèi)容為前一結(jié)點(diǎn)信息中后一表項(xiàng)的兩個(gè)數(shù)據(jù)項(xiàng)之和;

4、 每一結(jié)點(diǎn)邏輯分區(qū)信息后一分區(qū)表項(xiàng)的最后四個(gè)字節(jié)內(nèi)容為下一結(jié)點(diǎn)前一分區(qū)表項(xiàng)的隱含扇區(qū)數(shù)與該分區(qū)所占扇區(qū)數(shù)之和;

5、 倒數(shù)第二個(gè)結(jié)點(diǎn)分區(qū)信息中的后一表項(xiàng)的兩個(gè)數(shù)據(jù)項(xiàng)之和等于擴(kuò)展分區(qū)所占用的總扇區(qū)數(shù);

6、 主分區(qū)信息表中分區(qū)類型標(biāo)志分別為0BH和 0FH,在后續(xù)邏輯分區(qū)信息表中分別為0BH和05H;(本文針對(duì)FAT32位分區(qū)方式,其它分區(qū)方式可相應(yīng)改動(dòng))

7、 任一結(jié)點(diǎn)邏輯分區(qū)信息所對(duì)應(yīng)的邏輯零扇區(qū)的入口地址等于該邏輯分區(qū)入口地址加上該分區(qū)所隱含的扇區(qū)數(shù),即3FH。

掌握以上幾條原則,即便整個(gè)分區(qū)信息鏈表全部破壞或丟失,都能從相關(guān)的邏輯零扇完全修復(fù)。

主分區(qū)信息的恢復(fù)過程操作概要:

  第一步:活動(dòng)標(biāo)志和起始點(diǎn)是固定的 80 01 01 00 分區(qū)類型0BH,隱含扇區(qū)數(shù)是固定的3F 00 00 00,自用扇區(qū)總數(shù)從邏輯零扇區(qū)偏移20H處提取四個(gè)字節(jié)1B F2 B2 00。

利用公式   扇區(qū)總數(shù)=(柱面號(hào)*磁頭數(shù)+磁頭號(hào))*每磁道扇區(qū)數(shù)

扇區(qū)總數(shù)=00B2F21BH、磁頭數(shù)=FFH、磁頭號(hào)=FEH、每磁道扇區(qū)數(shù)=3FH,可推算柱面號(hào),就可得到活動(dòng)分區(qū)的結(jié)束點(diǎn)內(nèi)容。

  第二步:擴(kuò)展分區(qū)的活動(dòng)標(biāo)志為00,起始點(diǎn)為下一個(gè)柱面號(hào)的0頭1扇即00 81 DA,分區(qū)類型為0FH,隱含部分=前一表項(xiàng)所占用扇區(qū)數(shù)與其前的隱含扇區(qū)之和,結(jié)束點(diǎn)由于已超過8.4G一律填為FE FF FF,擴(kuò)展分區(qū)所占用的總的扇區(qū)數(shù),可通過上述原則中的第5條計(jì)算出來。

 

 

                        地址:江西省宜春市宜春學(xué)院工學(xué)院計(jì)算機(jī)科學(xué)系

    

;                    郵編:336000       電話:0795-3561890

                        emile:liubangling@sohu.com


【用擴(kuò)展INT13H研析并恢復(fù)大容量硬盤分區(qū)信息鏈表】相關(guān)文章:

C8051F的超大容量Flash存儲(chǔ)器擴(kuò)展08-06

研析經(jīng)濟(jì)憲法學(xué)08-18

256×32大容量中文矩陣系統(tǒng)的設(shè)計(jì)08-06

擴(kuò)展語句08-16

用“語句擴(kuò)展訓(xùn)練”培養(yǎng)學(xué)生寫作能力08-15

基于IDE硬盤的大容量語音記錄儀08-06

擴(kuò)展培訓(xùn)心得10-01

語文 -擴(kuò)展語句08-16

教學(xué)方式的擴(kuò)展08-17