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

原创 2005年05月31日 17:14:00

    接着上次的说,我们来看看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引导扇区了。 :)


xp下通过grub4dos引导gentoo的 install-x86-minimal-20131029.iso以硬盘安装gentoo

一直以来不敢动系统引导这一快内容,觉得过于繁杂。但是今天突然想开始尝试安装gentoo,但是又无法使用U盘及光盘,于是便尝试使用硬盘引导iso文件以进入安装环境。原系统为xp,不求深入,只求能用。尝试...

硬盘和显卡的访问与控制(二)——《x86汇编语言:从实模式到保护模式》读书笔记02

上一篇博文我们讲了如何看到实验结果,这篇博文我们着重分析源代码。 书中作者为了说明原理,约定了一种比较简单地用户程序头部格式,示意图如下(我参考原书图8-15绘制的,左边的数字表示偏移地址): ...

Intel X86 CPU寄存器学习笔记

本文对Intel CPU寄存器做一些浅显的介绍。Intel处理器寄存器在很多教科书上有,网络也有很多文章涉及到。因此本文在这些基础上做一些归纳总结,另外也参考了Intel IA32架构软件开发手册。...
  • subfate
  • subfate
  • 2016年02月16日 20:35
  • 1118

Intel X86 CPU系列的寄存器

http://blog.chinaunix.net/uid-27717694-id-3943419.html 分类: LINUX 一、32位CPU系...

intel X86 atom加速android模拟器,遇到的一些问题记录。

一直纠结于安卓模拟器的速度,尝试给2G的RAM也同样很慢。

Intel 80x86处理器简介

1.7 Intel 80x86处理器简介 到此,您已经看到了两个将要实际编译和运行的HLA程序。然而至今为止,出现在程序中的所有语句要么是数据声明,要么是对HLA标准库例程的调用,还不是真正的汇编语...

x86都得死:Intel平台SMM漏洞门事件

x86都得死:Intel平台SMM漏洞门事件-安全新闻-黑吧安全网 http://www.myhack58.com/Article/html/1/4/2009/22678.htm...

x86架构下Intel CPU里的Multi Processor的学习记录

X86架构下的产品包括Notebook, Desktop,Server,Workstation等。Notebook和Desktop里一般都只有一颗CPU,Server和Workstation则会有多颗...

Android SDK中Intel X86 HAXM的安装

HAXM(Hardware Accelerated Execution Manager)硬件加速执行管理器的安装 第1步下载 可以在SDK中在线下载zip包,zip包在SDK的...\sdk\te...

Intel 80x86 寻址方式

Intel 80x86 寻址方式
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Intel x86 PC的引导(硬盘部分)(二)
举报原因:
原因补充:

(最多只允许输入30个字)