Intel x86 PC的引导(硬盘部分)(二)

    接着上次的说,我们来看看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 Compaq 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 Netware
 65 Novell Netware
 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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值