无忧启动论坛

标题: 【教程】关于各种USB启动模式的解读 MBR、PBR [打印本页]

作者: 天涯海角1216    时间: 2010-6-11 21:50
标题: 【教程】关于各种USB启动模式的解读 MBR、PBR


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


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个字节。
 3BPBBIOS 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 编辑 ]

BOOTICE_20100512.rar

99.88 KB, 下载次数: 2177, 下载积分: 无忧币 -2

写入引导

WINHEX14.1.part1.rar

488.28 KB, 下载次数: 2126, 下载积分: 无忧币 -2

查看扇区

WINHEX14.1.part2.rar

252.75 KB, 下载次数: 1538, 下载积分: 无忧币 -2

查看扇区


作者: 天涯海角1216    时间: 2010-6-11 21:54
最近很忙,关于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个字节。
 3BPBBIOS 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
DOS XP WIN7 微软的三种方式 好象应该还有LIUNX的。
作者: songnic    时间: 2010-6-11 22:49
支持!!

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

FBINST  和 BOOTICE  
基本也就是用GRUB的方式
作者: 白手王    时间: 2010-6-12 05:40
了解了。又增加了一份知识。
作者: wsj    时间: 2010-6-12 06:40
很好
非常需要  
是一篇很好的教程  
谢谢
作者: dlwfdlikuan    时间: 2010-6-12 07:19
较为系统,便于学习,谢谢楼主!
作者: vod1234567    时间: 2010-6-12 08:02
总结的很好,家乡人支持你,也是我想总结的,就是我是懒人,没有办法,主要知识有限,怕别人笑话,哈哈
作者: intellect    时间: 2010-6-12 09:33
仔细阅读了版主的文章,知道了很多,有些问题也明白了,谢谢版主发这么好的帖子,万分感谢
作者: ggmm888    时间: 2010-6-12 10:00
FBINST占用64个扇区

这句话对吗?
作者: hxhua    时间: 2010-6-12 10:16
学习到了一些最底层的硬件知识
作者: lvzhhai    时间: 2010-6-12 11:22
我看了很多版主的帖,心里想应该集中总结一下了。当看到这个贴时,感觉版主知道我等是怎么想的,并付诸了行动。
支持这样的总结帖!
另外建议结合一下固定硬盘的情况一并总结,或者再开帖详细讲解一下MBR和PBR中的内容,可否。
作者: 天涯海角1216    时间: 2010-6-12 12:18
标题: 回复 #10 ggmm888 的帖子
呵呵,正常规范称第一扇区为MBR,但是FBINST确实占用了64个扇区,也就只好把后面63个也叫MBR的,呵呵
作者: 天涯海角1216    时间: 2010-6-12 12:21
标题: 回复 #12 lvzhhai 的帖子
可以的,呵呵
看到很多网友的提问,所以老早我就想总结的,但是这很需时间的,因为必须用通俗的话语,让大家都能看懂的。
固定硬盘的情况,我想我会慢慢总结出来的!
作者: dfswb    时间: 2010-6-12 12:35
学习了。。。。。。。。。
作者: ToxicL    时间: 2010-6-12 14:25
UD,USB-CDROM,USB-HDD+这三个用的比较多。
作者: wwwccc    时间: 2010-6-12 15:26
学习了!!!一直
想了解的。。。。。。。。
作者: alxe1528    时间: 2010-6-12 15:56
什么时候也整理一下 各系统的 引导方式 和引导文件资料呢    应该还有很多人不知道的 。。。我想这个应该也很重要。
作者: myitmx    时间: 2010-6-13 01:05
总结:这是一部很牛B的教程!对磁介质和Flash介质及系统的启动做了详细地说明!
作者: ↙M★gicぐ    时间: 2010-6-13 09:28
那我8G U盘量产完以后 剩下的分区做HDD+还是FBINST?  看人家说FBINST对8G支持不好?
作者: qdcnc    时间: 2010-6-13 10:11
楼上的朋友,可以试着做成3驱看看.
作者: s1022305071    时间: 2010-6-13 11:02
哇,,,这个,,学习啦。
作者: Pauly    时间: 2010-6-13 11:24
天涯海角版主上任后做了不少好事,呵呵,支持一下!
作者: Hcrty    时间: 2010-6-13 11:39
楼主貌似没有总结pauly大的xorldr的引导类型知识
作者: queyao    时间: 2010-6-13 12:55
很好的教程 ,学习了
作者: 33445566    时间: 2010-6-13 19:10
教程很好,学习了。弱问:PBR是不是在每个分区的第一扇区?
作者: 天涯海角1216    时间: 2010-6-13 19:20
标题: 回复 #26 33445566 的帖子
FAT32占用1个扇区
NTFS  占用16个扇区
作者: ↙M★gicぐ    时间: 2010-6-13 20:23
惠荣的主控不能3驱  基本的常识啊
作者: 忧无    时间: 2010-6-13 20:27
多谢楼主,受益不浅。
作者: greenmood    时间: 2010-6-13 21:14
教程真好,做个记号,认真研究
作者: tdq868xin    时间: 2010-6-13 23:18
特赶来学习,收藏起,慢慢学
作者: 33445566    时间: 2010-6-14 08:24
能写出这么好的教程,要有丰富的知识,更要有奉献的精神,好好学。
作者: bd7x    时间: 2010-6-14 15:10
谢谢lz发这么好的帖子,万分感谢
作者: SONY.    时间: 2010-6-16 05:52
这个好,分析到位、全面,以前有很多地方不明白,现在清晰多了。
好教程!
作者: liaoliang    时间: 2010-6-16 22:30
先下载下来,慢慢看

绝对的好东西!
作者: zhangxn    时间: 2010-6-17 10:54
hehe ,好帖,收藏。
作者: ljy3282393    时间: 2010-6-17 14:21
多谢楼主的总结,慢慢学习体会当中。
作者: hmrun51    时间: 2010-6-17 19:56
说的好 顶

收藏、、学习
作者: wmlao88    时间: 2010-6-17 21:41
门外汉看不懂,下载下来放好,以后要看时找起来方便。
版主辛苦
作者: 桃丝兰    时间: 2010-6-17 23:19
各种USB启动模式令人大开眼界,需要认真学习学习。
作者: yjd    时间: 2010-6-18 10:35
应该精华。^_^
作者: 94first    时间: 2010-6-18 15:33
跟天书一个样。。。
作者: TOSHIBA    时间: 2010-6-19 05:50
原帖由 yjd 于 2010-6-18 10:35 发表
应该精华。^_^


分析很到位、全面,以前有很多地方不明白,学习了,收藏!

建议加精!
作者: 水韵    时间: 2010-6-27 14:04
好贴,顶起来,先收藏了,慢慢的看。。。
作者: baqdn    时间: 2010-6-27 16:47
又了解到了许多与启动有关的知识,很有用,谢谢!
作者: peter201088    时间: 2010-6-27 17:26
LZ在启动有关的知识方面很有研究,佩服.
很有用.谢谢.
作者: shuiliang    时间: 2010-6-27 18:00
学习了,相当不错的文章咯。
作者: 2010豪豪情    时间: 2010-6-30 00:31
了解了。又增加了一份知识。谢谢楼主!
作者: Plantsoot    时间: 2010-6-30 00:43
这些天都没顾上看这么好的帖子,天涯对磁盘数据结构的掌握还真是非常棒,学习了。
过些天写软件应该用的着。
作者: 月光波    时间: 2010-6-30 10:56
真是学海无涯啊!感谢分享!
作者: okokokyes    时间: 2010-6-30 14:11
..............................

[ 本帖最后由 okokokyes 于 2010-6-30 15:05 编辑 ]

未命名123.JPG (183.59 KB, 下载次数: 227)

未命名123.JPG

作者: okokokyes    时间: 2010-6-30 15:15
1.例如:硬盘主引导扇第一扇区(0柱面0磁头1扇区)
对应蓝色框中的什么数字字母?
对应红色框中的什么数字字母?
对应绿色框中的啥东东?

2.图中能看到 55AA
怎么看不到 80H   ?怎样才能从图中找到 80H  ?或 80H 在哪里?

3."偏移"是啥意思?
这个"从偏移00到偏移53止"中的00是指蓝色框中的哪个00 ?还是指红色框中的哪个00 ?

4.蓝色框中的offset是啥意思?
   红色框中的 0到F 这16个是啥意思?
.....

[ 本帖最后由 okokokyes 于 2010-6-30 15:52 编辑 ]
作者: 天涯海角1216    时间: 2010-6-30 16:45
标题: 回复 #52 okokokyes 的帖子
这个是分区的起始扇区(该分区第一扇区), 80H  是在MBR上,所以这里没有的,用WINHEX打开,兰色框是偏移地址,自己搜搜就可以了,呵呵
作者: nuton    时间: 2010-6-30 17:00
虽然不是太明白慢慢学
作者: okokokyes    时间: 2010-6-30 17:16
先谢谢版大!
如有个从零学此图的教程就好了,新人也许能知道个大概
版大的教程起点略高了点,新人很难憧的?
作者: Pauly    时间: 2010-6-30 18:23
标题: 回复 #55 okokokyes 的帖子
http://tech.ddvip.com/2008-10/122310278573510.html
作者: okokokyes    时间: 2010-6-30 19:38
 谢P版!
是这个吗.先慢慢看
==============================================

一、Winhex的使用

  353时代的主流修改工具是UE,可惜UE在打开linkdata.bin这种超大文件时的速度令人难以忍受,于是狂派都投入了Winhex的怀抱。

  WinHex下载地址:
http://down.ddvip.com/view/11502679611296.html

  用Winhex打开要修改的文件,显示如下界面:

  

  任何一个存储在计算机上的文件都可以认为是由最基本的0和1组成的,Winhex便是将这些文件以二进制形式打开。不过显示的时候是十六进制,一位十六进制相当于四位二进制,两位十六进制相当于八位二进制即一个字节,每个字节即对应一个地址。

  左边那一列是行标,上边那一行是列标,行标和列标便组成了地址。如6BFA3003这个地址,其行标便是6BFA3000,列标为3。

  想要修改数值,直接键盘输入即可。

  一个基本常识:对于有多位的十六进制数值而言,存储方式是低位在前,高位在后。如6e731f这么个值,存储方式便是1f 73 6e。

  既然显示十六进制,那么自然存在一个十六进制和日常使用的十进制转化的问题。通常可以靠Windows的计算器来完成,点击Winhex工具栏的图标即可打开。在计算器的查看菜单里选择“科学型”,便有进制转换的功能。

  其实Winhex自带的数据解释器也可以实现进制转换。(看不到数据解释器的,单击视图——显示——数据解释器)把光标定在某一地址,数据解释器里便能显示对应的十进制数值。在数据解释器里输入十进制值然后按回车,则那个地址的数值就会被改写成对应的十六进制。在“选项——数据解释器”里还能对数据解释器的显示内容作设置,比如翻译无符号数、浮点数等,这个有兴趣的自己试试。
 地址定位

  靠行标和列标来定位地址显然是愚蠢废力的。Winhex的工具栏上有个图标,点击显示如下界面:

  

  此时直接在“新位置”里输入地址便可完成定位。

  也可以定位相对地址。比如此时位置在某ATK首地址,要往上移1000h到达MOV首地址,那么在“新位置”里输入1000,“相对于”选择“当前位置(P)(返回至)”就行了。

  同理,到了MOV首地址后又要往下移960h到达一方地址,则可以在“新位置”里输入960,“相对于”选择“当前位置(C)”。

  “位置”菜单里还有个很实用的功能:标记位置和转到标记,快捷键分别是Ctri+I和Ctrl+K。这个功能就不用多解释了吧,我是经常用的。

  定义选块

  定义选块主要是用来导出特定数据或缩小搜索范围,定义完成之后可以在“位置”菜单里快速定位到选块头和选块尾。

  这个操作很简单。在选块头右键点击,选择“选块开始”,选块尾右键点击,选择“选块结尾”就完成了。

  

    

  搜索

  
这个也很直观。搜索——查找十六进制数值,输入要查找的串即可,注意中间不要有空格。可以定义向上向下还是全面搜索,之前如果定义了选块可以选择仅在选块中搜索。其它几个选项建议不要动。找到后如果不是自己想找的目标,可以按F3继续搜索。

  数据导出和导入

  这个其实就是备份和还原的问题了。萧萧发过一个这方面的帖子,不过现在已经没有做txt补丁的必要了,备份成txt这一步骤也就多余了。

  导出:首先把要备份的数据定义成选块,然后在选块中任意位置右键点击,选择“编辑——复制区块——置入新文件”即可。

    

  导入:把备份数据定义选位,(如果是全文件那就直接Ctrl+A),然后右键右击,选择“编辑——复制区块——十六进制数值”;再定位到要还原的数据的首地址,右键点击,选择“编辑——剪贴版数据——写入”即可。注意是“写入”不是“粘贴”。

  
  
   

  文件扩容
 

  改MOT、BGM的时候有可能需要在文件尾扩容,方法便是在文件尾右键点击,选择“编辑——粘贴零字节”,输入想扩容的大小即可。

  
  

  不过那个2G多的linkdata.bin用这种办法扩容很耗时间。可以换个方法,点击“文件”菜单,新建一个合适大小(一般是所需扩容大小+1)的文件,然后把这个文件的数据复制后写入整个文件的尾地址,这也达到了扩容目的,而且处理速度很快。

  基本上需要用到的Winhex操作就这么些,其它的操作有兴趣可以搜索网上教程。最后,改完了别忘记保存。


[ 本帖最后由 okokokyes 于 2010-6-30 19:44 编辑 ]
作者: okokokyes    时间: 2010-6-30 20:05
这个是零起步学此图的Winhex的使用部分
希望大大再说说从零起步学此图的蓝色框、红色框、绿色框的意思、相互关系及与扇区的联系等等部分
作者: wenliangyu    时间: 2010-6-30 22:26
GRUB4DOS:(占用18个扇区,老版本占用16个扇区)是强大的引导程序,可以安装在MBR ,也可以安装在分区 PBR ,若安装在MBR,则可以搜索所有分区,启动其指定文件-GRLDR(不需读入分区PBR),从而正常启动。
引导过程为:MBR → grldr

那如果安装在PBR,引导过程是怎样的?谁引导计算机去PBR寻找GRUB4DOS引导程序呢?
MBR → grldr,理解为“MBR → 某分区根目录grldr文件”是否更为准确?
作者: joe_boy    时间: 2010-7-5 20:46
学习了解了谢谢楼主分享
作者: mage0805    时间: 2010-7-5 22:57
顶一个LZ,介绍的很详细。
作者: wh3509    时间: 2010-7-6 11:32
这个不错要好好学习一下
作者: lwg    时间: 2010-7-10 05:41
原帖由 yjd 于 2010-6-18 10:35 发表
应该精华。^_^


真是一篇好教程 , 总结的很好 ,以前有的启动方式很模糊 ,现在思路清晰了,谢谢楼主

强烈建议加精!
作者: snowman1101    时间: 2010-7-14 11:35
留个记号 版主辛苦 谢谢了
作者: snowman1101    时间: 2010-7-15 17:05
多谢 学习了 留个记号
作者: fuqiao_9b    时间: 2010-7-16 02:36
很好
非常需要  
是一篇很好的教程  
谢谢
作者: wsj    时间: 2010-7-16 06:32
原帖由 lwg 于 2010-7-10 05:41 发表


真是一篇好教程 , 总结的很好 ,以前有的启动方式很模糊 ,现在思路清晰了,谢谢楼主

强烈建议加精!

很好的技术帖子,支持版主!
作者: aoxue    时间: 2010-7-16 16:37
好东西,看看充下电......
作者: qytjc    时间: 2010-7-16 19:29
版主能把这么多启动方法排一个名次吗?
作者: 天涯海角1216    时间: 2010-7-16 21:28
好的,有时间就办!
作者: kunpeng    时间: 2010-7-17 11:02
谢谢楼主 好贴 系统 详细
作者: 8568864_cn    时间: 2010-7-17 14:45
强烈支持此贴,很有用,以前我是不明白的
作者: xiuxianxiuxian    时间: 2010-7-17 22:59
归类好完整,继续学习。
作者: jesse1986    时间: 2010-7-18 13:59
好贴啊! 请问天涯海角大版 grub和pbr是不是没有一点关系?扩展分区的pbr有什么用 怎么调用的??
作者: 天涯海角1216    时间: 2010-7-18 14:26
标题: 回复 #74 jesse1986 的帖子
应该说grub的mbr是搜索分区后找到文件列表从而引导grldr的。
扩展分区的pbr写入引导后,该分区依然可以启动,当然通过主分区表和扩展分区表调用扩展分区pbr的
作者: jesse1986    时间: 2010-7-18 14:45
版主回复这么快啊 谢谢 还有2问题

1.如果有多个grldr是不是默认引导第一个分区下的?

2.能引导扩展分区pbr的mbr或者文件有哪些?

[ 本帖最后由 jesse1986 于 2010-7-18 14:47 编辑 ]
作者: 天涯海角1216    时间: 2010-7-18 14:56
标题: 回复 #76 jesse1986 的帖子
1.是搜索到的第一个分区下(从hd0开始)
2.GRUB,XORLDR,1JF9,MBLDR....

本坛这方面很多,搜搜就可以了,呵呵
作者: jesse1986    时间: 2010-7-18 15:46
原帖由 天涯海角1216 于 2010-7-18 14:56 发表
1.是搜索到的第一个分区下(从hd0开始)
2.GRUB,XORLDR,1JF9,MBLDR....

本坛这方面很多,搜搜就可以了,呵呵


好的 谢谢啊 版主太热心了
作者: wenliangyu    时间: 2010-7-24 18:08
原帖由 wenliangyu 于 2010-6-30 22:26 发表
GRUB4DOS:(占用18个扇区,老版本占用16个扇区)是强大的引导程序,可以安装在MBR ,也可以安装在分区 PBR ,若安装在MBR,则可以搜索所有分区,启动其指定文件-GRLDR(不需读入分区PBR),从而正常启动。
引 ...

这个我再理解一下。如果要讲GRUB引导装入PBR,那么MBR应该装入可引导至PBR的引导方式,如NT5.x、NT6.x。对于NT5.x、NT6.x,如果PBR没有装入GRUB,PBR原有NT的引导代码会去引导NTLDR之类的文件,如果PBR写入了GRUB引导,相当于替代了原指向NTLDR的代码,转向引导grldr文件。不知道我的理解对不对?
作者: 888r    时间: 2010-7-24 19:36
为楼主加油..好详细..不过我一般用量产 USB-ROM..万事大吉.
作者: 天涯海角1216    时间: 2010-7-24 20:01
标题: 回复 #79 wenliangyu 的帖子
你的理解正确!
分区写入grldr后,主引导用哪个都可以,只是兼容性问题。
fbinst最好,hdd+其次。。。
作者: qthhanfeng    时间: 2010-7-27 11:18
这个很好没,留个记号,值得回味。
作者: 安情    时间: 2010-7-27 17:06
BPB是什么,为什么为fb制作的u盘启动时,加入bpb才能启动某一机器,不加,就启动不了哪台机器?
作者: 2010yuns888    时间: 2010-7-27 18:13
哇,好详细,又增添了新知识
作者: 天涯海角1216    时间: 2010-7-27 19:16
标题: 回复 #83 安情 的帖子
在2楼有介绍呀,就是将可见分区的BPB复制到MBR,使得fbinst更容易让BIOS识别U盘,增强启动兼容性!
作者: M    时间: 2010-7-27 19:29
请问下天涯大版,我UD启动模式的怎么启动的时候显示的是 PBP 模式呢? 不是 PBR 模式呀?
作者: 天涯海角1216    时间: 2010-7-27 19:54
标题: 回复 #86 msad 的帖子
没有 PBR 模式呀?

复制BPB就是将可见分区的最前端 几十个字节复制到MBR的最前端而已,从而增强了BIOS启动兼容性的。
作者: 安情    时间: 2010-7-28 08:17
在ud中,可见分区是什么概念?
作者: 安情    时间: 2010-7-28 08:18
我用fb作u盘启动的时候,只有一个隐藏分区,它是fba的大小决定的,还剩下一个分区,可以放一些数据,难道这个就是可见分区吗?
作者: 天涯海角1216    时间: 2010-7-28 10:29
标题: 回复 #89 安情 的帖子
呵呵,就是呀!
作者: dhbtljj    时间: 2010-7-28 16:21
很完善,是我们学习的好帮手,非常感谢!
作者: 安情    时间: 2010-7-28 16:24
还是不懂ud内可见分区和u盘启动有什么关系?特别是你说的兼容性有什么关系?
所有的代码不全是在fb分区吗?启动也是fb分区的事,和ud内的可见分区有什么关系?
作者: 安情    时间: 2010-7-28 16:26
就是将可见分区的BPB复制到MBR
bpb具体复制了什么内容?作用是?
作者: 天涯海角1216    时间: 2010-7-28 16:28
标题: 回复 #93 安情 的帖子
你所说的FB区就是UD区,可见分区是处了UD外的系统能够识别的分区!

关于BPB建议仔细看看本帖2楼!
作者: 安情    时间: 2010-7-28 16:31
看了,看不懂看了,看不懂
作者: 安情    时间: 2010-7-28 16:34
map --set /2003pe.iso (cd96)
cdload --image=0 (map224)
我输入上面两句,没有启动2003?
再输入boot,虚拟报什么堆错误
你能不能给我一个在grub命令符下,启动这个2003的正确命令写法?
brug
问个关于burg的问题?
作者: 天涯海角1216    时间: 2010-7-28 16:42
标题: 回复 #96 安情 的帖子
哦,这个我也不清楚,bean的buldr使用还在尝试阶段,命令好像老在变

试试这个呢?

map --set (hd0,1)/aa.iso (cd96)
cdload --image=0 ($root)
boot
作者: 安情    时间: 2010-7-28 16:51
原帖由 天涯海角1216 于 2010-7-28 16:42 发表
哦,这个我也不清楚,bean的buldr使用还在尝试阶段,命令好像老在变

试试这个呢?

map --set (hd0,1)/aa.iso (cd96)
cdload --image=0 ($root)
boot

当boot回车后,就报错,所有的命令写法全试了,全报这个错,郁闷

22.jpg (54.68 KB, 下载次数: 141)

22.jpg

作者: 天涯海角1216    时间: 2010-7-28 16:55
你用实机试试???
作者: 安情    时间: 2010-7-28 16:58
虚拟机没过以前,我不想用实机




欢迎光临 无忧启动论坛 (http://bbs.c3.wuyou.net/) Powered by Discuz! X3.3