Intel x86 PC的引導(硬碟部分)(二)

2021-04-01 01:42:41 字數 3353 閱讀 3006

接著上次的說,我們來看看mbr中的dpt的含義。dpt就是磁碟分割槽表,一般我們所說的分割槽表都是指這裡。dpt中的一項是16位元組,每個位元組的含義如下:

0x0000位元組: 引導標誌符,指明該分割槽是否為乙個活動分割槽,就是可引導的分割槽。

0x0001位元組: 開始磁頭數,記錄了這個分割槽開始的磁頭數。

0x0002位元組: 這個位元組的前6位(0-5bit)被用來記錄開始扇區數,後2位(6-7bit)用來配合記錄開始柱面數

0x0003位元組:這個位元組和0x0003位元組的高2位一起定義了開始柱面數,因此柱面數是由10bit定義的,最大數值為1023,組成柱面數的10bit中的最高2位為0x0003位元組的6-7bit。

0x0004位元組: 分割槽型別標誌位元組,這裡定義好了各種分割槽型別,具體的偶下面給大家出個表。

0x0005位元組: 結束磁頭數,記錄了這個分割槽結束的磁頭數。

0x0006位元組: 結束扇區數,同樣只使用了0-5bit,高2位6-7bit被用來配合記錄結束柱面數

0x0007位元組: 結束柱面數,約定同開始柱面數。

0x0008-0x000b: 相對扇區數,從該磁碟的開始位置,到分割槽開始位置的扇區數目。

0x000c-0x000f: 本分割槽總扇區數,記錄該分割槽中總共的扇區數。

可以看到,磁頭數是以乙個位元組來存放,扇區是以6bit來存放,柱面是以10bit來存放的。那麼按照chs模型,最大可以線性定址的磁碟空間為:

256個磁頭*63個扇區*1024個柱面*每扇區52位元組 = 8455716864byte 也就是常說的,8.4gb。

那麼超過8.4gb的分割槽怎麼辦呢,其實現在的os都不再利用chs模型來管理超過8.4gb的分割槽,而是使用分割槽表中最後的8個位元組(0x0008-0x000b和0x000c-0x000f)的扇區數來進行管理,因此支援的最大分割槽容量為:

2^32*512=2048gb=2tb  一般來說,都夠用了…… - -

因此在超過8.4gb的分割槽的分割槽表上 chs引數是什麼已經沒所謂了,一般結束chs引數用 feh ffh ffh 來填充chs。

分割槽在物理上並不是乙個緊挨著乙個的,乙個分割槽和另乙個分割槽之間,通常是有保留扇區來分隔的。保留扇區不只起到分隔的作用。通常來說是這樣:

保留扇區+第乙個分割槽+保留扇區+第二個分割槽…………。

保留扇區裡,一般按照分割槽的型別儲存著mbr或者ebr扇區! 注意,dbr並不儲存在這裡,dbr儲存在分割槽真正起始的第乙個扇區中。保留扇區的數目,是由dbr中的引數來決定的,在分割槽表的0x0008-0x000b欄位中,是不會記入保留扇區數的。意思是:假設第乙個分割槽占用了64個扇區,第乙個分割槽和第二分割槽之間保留了16個扇區,那麼第二個分割槽的分割槽表上0x0008-0x000b中記錄的將是80而不是64,換言之,隱藏扇區通常是不可見的。而第二個分割槽的dbr就儲存在80開始的扇區中,而不是保留扇區中。

理解這些概念偶覺的比較重要,它會讓你明白磁碟分割槽的物理排布,和重要的mbr以及ebr和dbr的儲存位置 :)

最後給出一張**,列出了常見的分割槽型別(對應於分割槽表0x0004位元組)

00 空

01 fat32

02 xenix root

03 xenix usr

04 fat16(<32mb)

05 extended

06 fat16

07 hpfs/ntfs

08 aix

09 aic bootable

0a os/2 boot manage

0b win95 fat32

0c win95 fat32

0e win95 fat16

0f win95 extended(>8gb)

10 opus

11 hidden fat12

12 ***paq diagnost

14 hideen fat16(<32mb)

16 hidden fat16

17 hidden hpfs/ntfs

18 ast window swap

1b hidden fat32

1c hideen  fat32 (using lba-mode int 13 extensions)

1e hidden lba  vfat partition

24 nec dos

3c partition magic

40 venix 80286

41 ppc prep boot

42 sfs

4d qnx4.x

4e qnx4.x 2nd part

4f qnx4.x 3rd part

50 ontrack dm

51 ontrack dm6 aux

52 cp/m

53 ontrack dm6 aux

54 ontrack dm6

55 ez-drive

56 golden bow

5c priam edisk

61 speed stor

63 gnu hurd or sys

64 novell ***ware

65 novell ***ware

70 disk secure mult

75 pc/ix

80 old minix

81 minix/old linux

82 linux swap

83 linux

84 os/2 hidden c:

85 linux extended

86 ntfs volume set

87 ntfs volume set

93 amoeba

94 amoeba bbt

a0 ibm thinkpad hidden

a5 bsd/386

a6 open bsd

a7 nextstep

b7 bsdi fs

b8 bsdi swap

be solaris boot partition

c0 dr-dos/novell dos secured partition

c1 drdos/sec

c4 drdos/sec

c6 drdos/sec

c7 syrinx

db cop/m/ctos

e1 dos access

e3 dos r/o

e4 speedstor

eb beos fs

f1 speedstor

f2 dos 3.3+ secondary partition

f4 speedstor

fe lan step

ff bbt

以上**來自網上,很多分割槽型別見都沒見過,所以正確與否請大家一起修訂 :) 下次偶們來看下dbr中的各種引數,dbr就是真正負責引導os的os引導扇區了。 :)

1 2 Intel X86 CPU系列的定址方式

所謂x86系列,是指intel從16位微處理器8086開始的整個cpu晶元系列,系列中的每種型號都保持與以前的各種型號相容,主要有8086 8088 80186 80286 80386 80486以及以後各種型號的pentium晶元。在x86系列中,8086和8088是16位處理器,而從80386開...

多硬碟作業系統的引導

想在兩塊硬碟上安裝不同的作業系統,於是分別在第一塊硬碟上安裝了windowxp,第二塊硬碟上安裝了linux redhat 由於ntloader不能引導其他硬碟上的作業系統,於是決定用第二塊硬碟上來啟動計算機,於是在bios上把啟動硬碟設定為第二塊硬碟,由於前面安裝redhat時把grub安裝在了m...

硬碟和軟盤的引導扇區結構

一 硬碟mbr mbr master boot record,或main boot record 中文意為主引導區記錄,位於磁碟0磁軌的第乙個扇區,大小正好為512位元組,所以又稱為主引導扇區。mbr構成如下圖所示 從圖中看出,mbr被分為三個部分 1 第一部分為bootloader 主引導資訊 佔...