天涯海角1216 发表于 2010-6-11 21:50:01

【教程】关于各种USB启动模式的解读 MBR、PBR



1楼MBR介绍,2楼是分区PBR介绍。
(转载请注明出处:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=166641&highlight=)

[*]系统开机或者重启过程: [*]BIOS 加电自检 ( Power On Self Test -- POST )。BIOS执行内存地址为 FFFF:0000H 处的跳转指令,跳转到固化在ROM中的自检程序处,对系统硬件(包括内存)进行检查。 [*]读取主引导记录(MBR)。当BIOS检查到硬件正常并与 CMOS 中的设置相符后,按照 CMOS 中对启动设备的设置顺序检测可用的启动设备。BIOS将相应启动设备的第一个扇区(也就是MBR扇区)读入内存地址为0000:7C00H 处。 [*]检查0000:7DFEH-0000:7DFFH(MBR的结束标志位)是否等于 AA55H,若不等于则转去尝试其他启动设备,如果没有启动设备满足要求则显示"NO ROM BASIC"然后死机。 [*]当检测到有启动设备满足要求后,BIOS将控制权交给相应启动设备。启动设备的MBR将自己复制到0000:0600H处, 然后继续执行。 [*]根据MBR中的引导代码启动引导程序。
1.MBR知识图:硬盘主引导扇第一扇区(0柱面0磁头1扇区)

      硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的、在分区表中登记了某个操作系统分区。MBR的内容是在硬盘分区时由分区软件(如FDISK)写入该扇区的,MBR不属于任何一个操作系统,不随操作系统的不同而不同,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它;它先于所有的操作系统被调入内存并发挥作用,然后才将控制权交给活动主分区内的操作系统.
      天涯海角1216注:特殊形式的MBR会占用多个扇区,如Lvyanan的1JF9占用2个扇区,GRUB的MBR占用18个扇区,FBINST占用64个扇区,PloP Boot Manage 占用62个扇区(总共63个扇区)



2.分区引导扇区知识 (2楼有详细介绍)
    分区引导扇区DBR(DOS BOOT RECORD)是由FORMAT高级格式化命令写到该扇区的内容;DBR是由硬盘的MBR装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动分区的DBR才会被MBR装入内存运行。
DBR主要由下列几个部分组成:
 1.跳转指令,占用3个字节的跳转指令将跳转至引导代码。
 2.厂商标识和DOS版本号,该部分总共占用8个字节。
 3.BPB(BIOS Parameter Block, BIOS 参数块)。
 4.操作系统引导程序。
 5.结束标志字,结束标志占用2个字节,其值为AA55
 DBR中的内容除了第5部分结束标志字固定不变之外,其余4个部分都是不确定的,其内容将随格式化所用的操作系统版本及硬盘的逻辑盘参数的变化而变化。



    详细的MBR和分区PBR内容可参看:
【原创】HDD模式U盘双重MBR系列之—— PloP Boot Manage + FBINST(多版本.11.6更新)

3. 各种USB启动模式:
【1】、USB-HDD:(占用1个扇区)硬盘仿真模式,DOS启动后显示C:盘,HP(惠普) U盘格式化工具制作的U盘即采用此启动模式。此模式兼容性很高,但对于一些只支持USB-ZIP模式的电脑则无法启动。
电脑启动后首先读取此MBR,然后从指定的激活主分区启动(所以你要启动的分区必须激活,且有指定的引导文件存在),读入PBR引导扇区,再由引导扇区指定的引导文件,从而启动系统或PE或GRLDR等。。。。
常见引导过程为:MBR → 分区PBR → 引导文件(如:XP的NTLDR,VISTA的BOOTMGR ,GRUB的GRLDR。)

【2】、USB-HDD+:(占用1个扇区)增强的USB-HDD模式,DOS启动后显示C:盘,兼容性极高。其缺点在于对仅支持USB-ZIP的电脑无法启动。
电脑启动后首先读取此MBR,然后从指定的激活主分区启动,读入PBR引导扇区,再由引导扇区指定的引导文件,从而启动系统或PE或GRLDR等。。。。
引导过程为:MBR → 分区PBR → 引导文件

【3】、USB-ZIP:大容量软盘仿真模式,DOS启动后显示A盘,FlashBoot制作的USB-ZIP启动U盘即采用此模式。此模式在一些比较老的电脑上是唯一可选的模式,但对大部分新电脑来说兼容性不好,特别是大容量U盘。
引导过程为:分区PBR → 引导文件

【4】、USB-ZIP+::(占用1个扇区)增强的USB-ZIP模式,支持USB-HDD/USB-ZIP双模式启动(根据电脑的不同,有些BIOS在DOS启动后可能显示C:盘,有些BIOS在DOS启动后可能显示A:盘),从而达到很高的兼容性。其缺点在于有些支持USB-HDD的电脑会将此模式的U盘认为是USB-ZIP来启动,从而导致4GB以上大容量U盘的兼容性有所降低。
引导过程为:MBR → 分区PBR → 引导文件

【5】. USB-FDD:    是指把U盘模拟成软驱模式,启动后U盘的盘符是A:,
引导过程为:分区PBR → 引导文件

【6】、USB-CDROM:光盘仿真模式,DOS启动后可以不占盘符,兼容性比较高,新老主板一般都可以。优点可以像光盘一样使用(如,进行Windows系统安装)。缺点,把U盘量产成该模式时,我们将失去对这部分U盘空间的写权利,剩余空间会被识别成为一个独立的U盘,可以为Removable盘,当然也可以做成Fixed盘,进一步分区。制作时一般需要具体U盘型号/批号所对应的量产工具来制作,对于U盘网上有相应的量产工具。

【7】.FBINST:    (占用64个扇区)FBINST 在MBR的每个扇区(前64扇区)都写入了引导代码,并在每个扇区记录扇区号,这样无论U盘被识别为何种格式,都可以正常启动,启动的时候需要在1~64扇区读取计算好的信息,电脑就可以迅速而正确地获得参数,从而引导UD区的GRLDR,使得电脑正常启动。。。
引导过程为:MBR → UD区 → 引导文件

【8】.GRUB4DOS:(占用18个扇区,老版本占用16个扇区)是强大的引导程序,可以安装在MBR ,也可以安装在分区 PBR ,若安装在MBR,则可以搜索所有分区,启动其指定文件-GRLDR(不需读入分区PBR),从而正常启动。
引导过程为:MBR → grldr

【9】.NT 5.x:       (占用1个扇区)此MBR依然是从激活的主分区启动,遇到多个激活分区就报分区表错误。
引导过程为:MBR → 分区PBR → 引导文件

【10】. NT 6.x:      (占用1个扇区)此MBR依然是从激活的主分区启动,支持多个激活分区,从第一个激活分区启动。
引导过程为:MBR → 分区PBR → 引导文件

【11】.PLoP Boot Manager(占用62个扇区)* 支持 USB 磁盘启动,其一是从 USB 介质上启动,也能转入到 USB 介质启动(无论 BIOS 是否支持 USB 启动)。从开发日志上看,对于 EHCI/OHCI/UHCI 三种接口是都支持的,但外接 USB HUB 还不支持。这个功能,的确激动人心,虽然之前看 Filo 里面有 USB 栈,是保护模式下的,而这个是实模式下的。 * 支持光盘启动这个是两层意思: 既能从光盘上启动,也能从其他介质启动后转入光驱启动。* 超小体积和对图形界面的支持,只有 40-50kb 的个头,但是能实现 USB 栈,和 cdrom mini 驱动的确是个奇迹,而它还包括了图形支持与启动特效。
引导过程为:MBR → 分区PBR → 引导文件


模式MBR(主引导记录)
PBR(分区引导扇区)备注说明优点缺点    USB-HDD+   USB-HDD+ /有MBR和分区表

过程:MBR → 分区PBR → 引导文件NTLDR/GRLDR/SYSLINUX/BOOTMGR..
需激活主分区,从激活的主分区启动
(NTFS分区不支持SYSLINUX下同)用UltraISO写入USB
兼容性很高,启动成功率很高
兼容性很高对只支持USB-ZIP模式的电脑则无法启动   USB-HDD
   USB-HDD /有MBR和分区表
过程:MBR → 分区PBR → 引导文件NTLDR/GRLDR/SYSLINUX/BOOTMGR..
需激活主分区,从激活的主分区启动用UltraISO写入USB兼容性高硬盘仿真模式,兼容性较高
对仅支持USB-ZIP的电脑无法启动   USB-ZIP+             USB-ZIP+ /有MBR和分区表

过程:MBR → 分区PBR → 引导文件NTLDR/GRLDR/SYSLINUX/BOOTMGR..
需激活主分区,从激活的主分区启动用UltraISO写入USB启动成功率很高
与USB-HDD+接近支持USB-HDD/USB-ZIP双模式启动
仅支持USB-HDD的电脑会将此模式的U盘认为是USB-ZIP来启动,从而导致4GB以上大容量U盘的兼容性有所降低   USB-ZIP
         无MBR和分区表
过程:分区PBR → 引导文件直接从分区引导扇区启动
IO.SYS/NTLDR....整个盘就是一个分区用UltraISO写入USB
大容量软盘仿真模式
在一些比较老的电脑上是唯一可选的模式
但对大部分新电脑来说兼容性不好,特别是大容量U盘。      USB-FDD                      无MBR和分区表

过程:分区PBR → 引导文件直接从分区引导扇区启动
IO.SYS/NTLDR....整个盘就是一个分区用UltraISO写入USB
软盘仿真模式
在一些比较老的电脑上是唯一可选的模式启动兼容性差

    USB-CDROM
          光盘模式整个盘就是一个分区对应量产工具写入,光盘仿真模式,DOS启动后可以不占盘符,兼容性比较高,新老主板一般都可以。

采用量产U盘方式,有些电脑不支持
         NT 5.x            NT 5.x /有MBR和分区表
过程:MBR → 分区PBR → 引导文件NTLDR/GRLDR/SYSLINUX/BOOTMGR..
需激活主分区,只容许1个激活分区从激活的主分区启动用分区软件或BOOTICE写入
微软默认的主引导代码
2000、XP、2003等系统默认引导代码
兼容性一般
    NT 6.x      NT 6.x /有MBR和分区表
过程:MBR → 分区PBR → 引导文件NTLDR/GRLDR/SYSLINUX/BOOTMGR..
需激活主分区,容许多个激活分区从第1个激活的主分区启动用分区软件或BOOTICE写入
微软默认的主引导代码
2000、XP、2003等系统默认引导代码兼容性一般
    grub4dos      18个主引导扇区 /有MBR和分区表
过程:MBR→ grldr不需要分区引导
从任意分区根目录grldr启动用bootlace或BOOTICE写入
需在某分区根目录有grldr文件

可以搜索U盘、硬盘根目录的grldr
兼容性一般       FBINST有MBR和分区表 / 前64个扇区一样的引导代码,在主数据区的每个扇区尾部记录扇区号
过程:MBR → UD区→ grldr无需分区引导
从GRLDR能够识别的UD区文件启动用fbinst或 FbinstTool写入目前最强大的USB引导模式,仍在增强中启动兼容性最高
有个防毒的UD区
1.前64个扇区都有主引导代码
2. C.H.S寻址非常准确



   PLoP Boot    Manager             占用62个扇区 /有MBR和分区表可以实现U盘多分区引导,很酷的图形启动界面过程:MBR → 分区PBR → 引导文件NTLDR/GRLDR/SYSLINUX/BOOTMGR..
需激活主分区,从激活的主分区启动
无USB和CDROM、FDD选项的电脑增加支持!

老电脑硬盘上安装,可增加USB启动支持
USB介质上安装,启动兼容性一般







4. 各种模式兼容性顺序(由强到弱):

1.fbinst    2.USB-HDD+       3.USB-ZIP+       4.USB-CDROM      5.USB-HDD       6.USB-ZIP    7.USB-FDD/NT5/6/GRUB/PLOP


不足和错误之处,请各位批评指正!
(查看扇区的方法看57楼)

[ 本帖最后由 天涯海角1216 于 2010-8-26 06:10 编辑 ]

天涯海角1216 发表于 2010-6-11 21:54:41

最近很忙,关于PBR的介绍请稍后。。。。。。。。
限于本人水平,可能有很多问题存在,欢迎各位批评指正!
谢谢!


分区PBR详解:
分区引导扇区知识

一、FAT32的分区引导扇区

分区引导扇区DBR(DOS BOOT RECORD)是由FORMAT高级格式化命令写到该扇区的内容;DBR是由硬盘的MBR装载的程序段。DBR装入内存后,即开始执行该引导程序段,其主要功能是完成操作系统的自举并将控制权交给操作系统。每个分区都有引导扇区,但只有被设为活动分区的DBR才会被MBR装入内存运行。
DBR主要由下列几个部分组成:
 1.跳转指令,占用3个字节的跳转指令将跳转至引导代码。(天涯海角1216注:看下图,以FAT32为例,EB 58 指跳转至偏移5A执行,即从图中 FA 33 .. 开始执行引导程序)
 2.厂商标识和DOS版本号,该部分总共占用8个字节。
 3.BPB(BIOS Parameter Block, BIOS 参数块)。       (天涯海角1216注:这个包含BIOS操作的参数,很重要,破坏将显示分区错误)
 4.操作系统引导程序。                           (天涯海角1216注:该分区若需引导,则由该程序决定引导文件或系统)
 5.结束标志字,结束标志占用2个字节,其值为AA55。   (天涯海角1216注:很重要,若为00 00 ,则显示未格式化)
 DBR中的内容除了第5部分结束标志字固定不变之外,其余4个部分都是不确定的,其内容将随格式化所用的操作系统版本及硬盘的逻辑盘参数的变化而变化。




FAT32的BPB参数如下表所示:
(天涯海角1216注:FAT32中,BPB即指从偏移0B到偏移59止。其他略有不同,BPB 都是指跳转指令跳转位置之前的一段代码。)







分区引导扇区的第2个扇区作为文件系统相关参数存储标识扇区(下图),除了保存扇区的标识信息(RraA(00H)和rrAa(1E4H))外,还可能在偏移地址1E8H处存储了文件系统有关的信息。其中扇区偏移地址1E8H~1EBH的4个字节存储了逻辑磁盘中未使用的簇数,通常用于快速计算逻辑磁盘的剩余空间(典型的操作是在资源管理器状态栏上列出的"可用磁盘空间"参数),而1ECH~1EFH 4个字节给出了逻辑盘中下一个可以分配给文件使用的空闲簇的簇号,这样操作系统可以不访问FAT表就直接获得磁盘剩余空间和可以分配的簇号。




二、NTFS的分区引导扇区
  对于NTFS分区来说,分区引导扇区DBR只占用一个扇区(下图),并且在该分区的最后一个扇区做了备份;NTFS的引导扇区也是完成引导和定义分区参数,NTFS分区的引导扇区不是分区的充分条件,它要求必须MFT中的系统记录如$MFT等正常该分区才能正常访问






NTFS的BPB参数如下表所示:




三、各类分区引导扇区列举






    类型      占用扇区                  BPB表            引导文件    优点    缺点   NTFS

16
从偏移00到偏移53止,偏移54开始是分区引导代码,直至该扇区结束标志55AA止。
其后紧随15个扇区,可以随意用。
若是启动分区,则其代码很重要,起到引导系统文件作用,若是非启动分区,则无所谓。如常见的系统引导代码:NTLDR 、BOOTMGR 、GRLDR 等
文件加密、磁盘压缩、安全、产生的磁盘碎片少


    FAT32

1(约32个保留扇区)

从偏移00到偏移59止,偏移5A开始是分区引导代码,直至该扇区结束标志55AA止。
其后隔一个扇区后,有30个扇区可以随意用。
若是启动分区,则其代码很重要,起到引导系统文件作用,若是非启动分区,则无所谓。如常见的系统引导代码:NTLDR 、BOOTMGR 、GRLDR 、IO.SYS 、SYSLINUX等
FAT16的增强版本,FAT32使用的簇比FAT16小,有效地节约了硬盘空间。单个文件不能超过4G,产生的磁片碎片很多

    FAT16
1(约8个保留扇区)
从偏移00到偏移49止,偏移4A开始是分区引导代码,直至该扇区结束标志55AA止。
其后紧随7个扇区,可以随意用。

同上



    FAT12

1(约8个保留扇区)

从偏移00到偏移4D止,偏移4E开始是分区引导代码,直至该扇区结束标志55AA止。
其后紧随7个扇区,可以随意用。
同上




















































[ 本帖最后由 天涯海角1216 于 2010-10-12 21:27 编辑 ]

linshangren 发表于 2010-6-11 22:02:21

DOS XP WIN7 微软的三种方式 好象应该还有LIUNX的。

songnic 发表于 2010-6-11 22:49:22

支持!!

现在启动的花样很多, 都弄晕了。。
不过我现在就用两种比较

FBINST和 BOOTICE
基本也就是用GRUB的方式

白手王 发表于 2010-6-12 05:40:31

了解了。又增加了一份知识。

wsj 发表于 2010-6-12 06:40:35

很好
非常需要
是一篇很好的教程
谢谢

dlwfdlikuan 发表于 2010-6-12 07:19:51

较为系统,便于学习,谢谢楼主!

vod1234567 发表于 2010-6-12 08:02:29

总结的很好,家乡人支持你,也是我想总结的,就是我是懒人,没有办法,主要知识有限,怕别人笑话,哈哈

intellect 发表于 2010-6-12 09:33:38

仔细阅读了版主的文章,知道了很多,有些问题也明白了,谢谢版主发这么好的帖子,万分感谢

ggmm888 发表于 2010-6-12 10:00:46

FBINST占用64个扇区

这句话对吗?

hxhua 发表于 2010-6-12 10:16:20

学习到了一些最底层的硬件知识

lvzhhai 发表于 2010-6-12 11:22:24

我看了很多版主的帖,心里想应该集中总结一下了。当看到这个贴时,感觉版主知道我等是怎么想的,并付诸了行动。
支持这样的总结帖!
另外建议结合一下固定硬盘的情况一并总结,或者再开帖详细讲解一下MBR和PBR中的内容,可否。

天涯海角1216 发表于 2010-6-12 12:18:59

回复 #10 ggmm888 的帖子

呵呵,正常规范称第一扇区为MBR,但是FBINST确实占用了64个扇区,也就只好把后面63个也叫MBR的,呵呵

天涯海角1216 发表于 2010-6-12 12:21:58

回复 #12 lvzhhai 的帖子

可以的,呵呵
看到很多网友的提问,所以老早我就想总结的,但是这很需时间的,因为必须用通俗的话语,让大家都能看懂的。
固定硬盘的情况,我想我会慢慢总结出来的!

dfswb 发表于 2010-6-12 12:35:52

学习了。。。。。。。。。

ToxicL 发表于 2010-6-12 14:25:46

UD,USB-CDROM,USB-HDD+这三个用的比较多。

wwwccc 发表于 2010-6-12 15:26:00

学习了!!!一直
想了解的。。。。。。。。

alxe1528 发表于 2010-6-12 15:56:54

什么时候也整理一下 各系统的 引导方式 和引导文件资料呢    应该还有很多人不知道的 。。。我想这个应该也很重要。

myitmx 发表于 2010-6-13 01:05:52

总结:这是一部很牛B的教程!对磁介质和Flash介质及系统的启动做了详细地说明!

↙M★gicぐ 发表于 2010-6-13 09:28:12

那我8G U盘量产完以后 剩下的分区做HDD+还是FBINST?看人家说FBINST对8G支持不好?

qdcnc 发表于 2010-6-13 10:11:32

楼上的朋友,可以试着做成3驱看看.

s1022305071 发表于 2010-6-13 11:02:36

哇,,,这个,,学习啦。

Pauly 发表于 2010-6-13 11:24:23

天涯海角版主上任后做了不少好事,呵呵,支持一下!

Hcrty 发表于 2010-6-13 11:39:07

楼主貌似没有总结pauly大的xorldr的引导类型知识

queyao 发表于 2010-6-13 12:55:07

很好的教程 ,学习了

33445566 发表于 2010-6-13 19:10:44

教程很好,学习了。弱问:PBR是不是在每个分区的第一扇区?

天涯海角1216 发表于 2010-6-13 19:20:58

回复 #26 33445566 的帖子

FAT32占用1个扇区
NTFS占用16个扇区

↙M★gicぐ 发表于 2010-6-13 20:23:36

惠荣的主控不能3驱基本的常识啊

忧无 发表于 2010-6-13 20:27:24

多谢楼主,受益不浅。

greenmood 发表于 2010-6-13 21:14:16

教程真好,做个记号,认真研究
页: [1] 2 3 4 5 6 7 8 9
查看完整版本: 【教程】关于各种USB启动模式的解读 MBR、PBR