无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 84880|回复: 148
打印 上一主题 下一主题

【教程】fbinst 启动U盘解读(MBR层面).【1楼附录像下载】

    [复制链接]
跳转到指定楼层
#
发表于 2010-7-27 21:31:12 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
一、使用简介(源自百度)
我们知道:
      由于种种复杂原因,不同BIOS对U盘CHS/LBA参数处理结果不尽相同,导致同一个U盘,在一台机器上BOOT成功,在另一台机器上就可能BOOT失败。

  【早期硬盘也有类似问题,但最后通过多个工业标准,已经解决。而USB是万能接口,且有关标准未得到厂商统一遵守,问题更复杂】

  现在开源社区的bean提出了巧妙构思,开发出fbinst,基本解决了BIOS下的CHS/LBA参数适应调整问题,使U盘BOOT成功率大大提高。(除非碰上了极度变态的主板和BIOS)。
——fbinst的巧妙构思  
      预留8M(1-16064扇区)隐藏区,在每个扇区固定位置都写入该扇区在WIN下的LBA值,并在1-63扇区都写入boot code。BIOS启动时,通过boot code读取预先写入的LBA值,并与BIOS识别的LBA值进行比较,找出差距,倒推出当前BIOS对U盘的识别和访问情况,根据这个情况来调整纠正对U盘的访问。
——fbinst隐藏区空闲空间的利用
  fbinst对付BOOT兼容性问题的开发已经完成,目前新版本的开发重点已转向隐藏区的利用。由于8M隐藏区的每个扇区记录LBA时只用了几个字节,且boot code占据空间也不是很大,所以大量扇区空间是空闲的。在这个区域里可以嵌入:

  1。不同版本的grub4dos

  2。grub2

  3。ntldr

  4。1.44M/2.88M启动盘映像

  5。微型Linux

  现在的 fbinst 版本已经可以支持大的隐藏区了,可以装入WinPE或其他DOS工具,用grldr加载引导之。下面有详细说明。

二、MBR结构解析:
【1】主引导代码:
1.高明之一:
      几乎所有写入U盘的其他类主引导记录的都是占用一个扇区(占用0号扇区,如 HDD+,ZIP+,NT5,NT6 等等),而 fbinst 却是在前64个扇区的主引导代码都一样(稍微差异下面解释),BIOS在启动时只是读出一个扇区,但是它可能不是u盘的0扇区,因此引导代码要占多个扇区。以前的测试证明,63个就基本够了,最大只需要255。
不过我的一个U盘启动电脑时,基本扇区数设置为20000才成功启动,否则跳过U盘直接启动本机系统了。



2.高明之二:
      c、h、s(磁头、柱面、扇区)的检测需要更多的空间,至少需要一个柱面(约8M),在主数据区的每个扇区尾部都有该扇区位置代码(占用2个字节),BIOS一读便知此位置。除了位置代码外的其他部分空间就浪费了,因此才把它作为主数据区,从fbinst 1.6版开始最大30M,其间文件不连续(因为每个扇区尾部的绝对扇区地址占用2个字节)。其后再增加的存储启动和维护文件的空间称为扩展数据区,无尾部的绝对扇区地址,其间文件连续。
最小的主数据区必须包含64个主引导代码和fbinst菜单和文件列表。(但是需手动修改)
如下图:











【2】MBR细解,如图示:
      下图中是HDD模式的MBR,偏移00处是跳转指令,EB5E及跳转至偏移0x60处执行,偏移18处表示每磁道扇区数为63(3F),偏移1A处表示磁头数255(FF)



【3】分区表细解:[高明之三]

U盘第1、2扇区分区表位置对比:
1扇区



2扇区


天涯海角1216的理解:
    比如上面第一分区起始位置扇区为 8388608(16进制为00 00 80 00),表示距离第一分区有8388608个扇区,如果此时BIOS读入的是第8号扇区,而此处分区表显示8388600(fbinst 将MBR以后扇区的分区表递减),即距离第一分区有8388600个扇区,且是第8号扇区,BIOS便回读至0号扇区(MBR中有 B9 01 00字符,意思是读入0号扇区),便可以非常准确地知道该扇区位置以及分区表详细信息。(其他分区的分区表也是递减,方法类似)


三、各种模式对比:【高明之四











四、辅助代码细解:【高明之五-UD区

fbinst 1.6辅助代码为第65-67号扇区,此为67号扇区。(这个是默认 fbinst 格式化基本扇区数为64的,否则依次增加)

主数据区(包括0扇区和fbinst菜单以及文件列表)和扩展数据区大小设定位置。(64号扇区起始处)






从第68号扇区开始为UD内文件列表,下图








五、引导过程分析:

MBR > UD区 >  grldr > PE/IMG/ISO。。。

MBR > UD区 >  buldr > PE/IMG/ISO。。。

fbinst 菜单:
1. menu HOTKEY SUBCOMMAND
启动内核的命令都以menu开始,HOTKEY是对应的热键,子命令有

  a) grldr FILENAME
  启动grldr/ntldr文件

  b) syslinux FILENAME
  启动ldlinux.bin文件
  
  c) msdos FILENAME
  启动io.sys文件
   
  d) freedos FILENAME
  启动kernel.sys文件

  e) chain FILENAME
  加载启动扇区文件

  f) linux KERNEL INITRD PARAM
  启动linux内核

2. text STR
显示一行文字

3. timeout NUM
设置自动启动的时间

4. default NUM
设置自动启动的menu项

5. color FG/BG
设置颜色,前景/背景的格式,颜色值有
暗色:black, blue, green, cyan, red, magenta, brown, light-gray,
亮色:dark-gray, light-blue, light-green, light-cyan, light-red, light-magenta, yellow, white

背景只能使用暗色。也可以用normal来表示普通色,它相当于light-gray/black。

举例:

timeout 1
default 0
color red
text "                          fbinst v1.6 menu by bean"
text "                          ----------[01]----------"
color green
text "                          Press F1  > GRLDR"
menu F1 grldr "grldr"
color red
text "                          ----------[02]----------"
color green
text "                          Press F2  > WDC-SYSLINUX"
menu F2 syslinux "ibmlinux.bin"
color red
text "                          ----------[03]----------"
color green
text "                          Press F3  > MSDOS 7.1"
menu F3 msdos "io.sys"
color red
text "                          ----------[04]----------"
color green
text "                          Press F4  > SKTQB"
menu F4 grldr "SKTQB"
color red
text "                          ----------[05]----------"
color green
text "                          Press F5  > MaoTao WinPE"
menu F5 grldr "LDRXPE"
color red
text "                          ----------[06]----------"
color green
text "                          Press F6  > XORLDR"
menu F6 chain "XORLDR.MBR"
color red
text "                          ----------[07]----------"
color green
text "                          Press F7  > BULDR"
menu F7 grldr "BULDR"
color red
text "                          ----------[08]----------"
color green
text "                          Press F8  > CJJJP"
menu F8 grldr "CJJJP"
color red
text "                          ----------[09]----------"
color green
text "                          Press F9  > NTLDR"
menu F9 grldr "NTLDR"
color red
text "                          ----------[10]----------"
color green
text "                          Press F10 > BOOTMGR"
menu F10 grldr "BOOTMGR"
color red
text "                          ----------[11]----------"
color green
text "                          Press F11 > PLoP Boot Manager"
menu F11 chain "plpbt.bin"
color red
text "                          ----------[12]----------"
color green
text "                          Press F12 > GMYghost.img"
menu F12 linux "memdisk" "GMYghost.img" "c=142 h=4 s=36 floppy"

也即进入grldr引导后,再加载ISO\IMG\MBR等文件,从而完成你需要的启动过程!


(未完待续,错误之处,请各位批评指正,大家用 winhex 打开磁盘,秘密便真相大白,否则只能跟着别人走。)

录像下载地址:http://115.com/file/d2s5ovh2#FBINST_解读MBR.rar

[ 本帖最后由 天涯海角1216 于 2011-10-19 18:06 编辑 ]

评分

参与人数 1无忧币 +5 收起 理由
+ 5 很给力!

查看全部评分

推荐
 楼主| 发表于 2010-7-27 21:32:51 | 只看该作者
先引用一下,我再慢慢分别讲述,各位见谅。
很多,需要花时间呀。。。
回复

使用道具 举报

146#
发表于 2023-11-14 17:35:27 | 只看该作者
谢谢分享
回复

使用道具 举报

145#
发表于 2020-8-22 08:50:07 | 只看该作者
xuexu
回复

使用道具 举报

144#
发表于 2020-8-17 12:51:07 来自手机 | 只看该作者
底层理论
回复

使用道具 举报

143#
发表于 2020-3-8 06:19:42 来自手机 | 只看该作者
学习一下
回复

使用道具 举报

142#
发表于 2020-1-31 20:19:39 | 只看该作者
不明觉厉,感谢大侠的教诲。
回复

使用道具 举报

141#
发表于 2019-11-17 16:01:26 来自手机 | 只看该作者
感谢,又学习了
回复

使用道具 举报

140#
发表于 2017-3-19 16:32:07 来自手机 | 只看该作者
楼主能用新的fbinst设读扇区数为1然后试试文章里那块要设20000基本扇区数的主板吗?
回复

使用道具 举报

139#
发表于 2016-3-10 23:17:20 | 只看该作者
能再提供一个视频的下载地址吗。。谢谢
回复

使用道具 举报

138#
发表于 2016-3-4 13:30:54 | 只看该作者
下载链接失效了。。。。。。。。。
回复

使用道具 举报

137#
发表于 2015-2-10 20:17:19 | 只看该作者
天涯海角1216 发表于 2015-2-9 22:14
该fb.cfg是用fbinsttool工具格式化时手动配置的。

如:

天涯版主:您没有明白我的问题?fbinst的菜单编写是用fbinsttool工具编写修改,而fb.cfg这个文件是什么时候导入ud区的?一格一拖教程,用fbinsttool工具格式化后,fbinst的菜单已经写好了,没有看到手工导入fb.cfg文件?
回复

使用道具 举报

136#
发表于 2015-2-10 19:56:07 来自手机 | 只看该作者
不错,支持
回复

使用道具 举报

135#
 楼主| 发表于 2015-2-9 22:14:33 | 只看该作者
wangmeng052 发表于 2015-2-8 16:27
请问:fbinst菜单的fb.cfg配置文件存放在ud主分区,该fb.cfg是用fbinsttool工具格式化时默认建立的吗?还是 ...

该fb.cfg是用fbinsttool工具格式化时手动配置的。

如:

timeout 0
default 0
color red
text "                          ----------[01]----------"
color green
text "                          Press F1  > grldr-BOOTMGR"
menu F1 grldr "grldr"
color red
text "                          ----------[02]----------"
color green
text "                          Press F2  > WDC-SYSLINUX"
menu F2 syslinux "ibmlinux.bin"
color red
text "                          ----------[03]----------"
color green
text "                          Press F3  > C.PBR"
menu F3 chain "C.PBR"
color red
text "                          ----------[04]----------"
color green
text "                          Press F4  > D.PBR"
menu F4 chain "D.PBR"
color red
text "                          ----------[05]----------"
color green
text "                          Press F5  > E.PBR"
menu F5 chain "E.PBR"
color red
text "                          ----------[06]----------"
color green
text "                          Press F6  > XORLDR"
menu F6 chain "XORLDR.MBR"
color red
text "                          ----------[07]----------"
color green
text "                          Press F7  > MBLDR"
menu F7 chain "MBLDR"
color red
text "                          ----------[08]----------"
color green
text "                          Press F8  > CJJJP"
menu F8 grldr "CJJJP"
color red
text "                          ----------[09]----------"
color green
text "                          Press F9  > NTLDR"
menu F9 grldr "NTLDR"
color red
text "                          ----------[10]----------"
color green
text "                          Press F10 > BOOTMGR"
menu F10 grldr "BOOTMGR"
color red
text "                          ----------[11]----------"
color green
text "                          Press F11 > PLoP Boot Manager"
menu F11 grldr "plpbt.bin"
color red
text "                          ----------[12]----------"
color green
text "                          Press F12 > TF-HPA"
menu F12 linux "memdisk" "HPA.img" "c=112 h=122 s=37 floppy"
回复

使用道具 举报

134#
发表于 2015-2-8 16:35:29 | 只看该作者
谢天涯斑主
回复

使用道具 举报

133#
发表于 2015-2-8 16:27:12 | 只看该作者
请问:fbinst菜单的fb.cfg配置文件存放在ud主分区,该fb.cfg是用fbinsttool工具格式化时默认建立的吗?还是用fbinsttool工具导入的?谢谢海角版主指点!

点评

该fb.cfg是用fbinsttool工具格式化时手动配置的。 如: timeout 0 default 0 color red text " ----------[01]----------" color green text " Press  详情 回复 发表于 2015-2-9 22:14
回复

使用道具 举报

132#
发表于 2014-2-6 10:05:14 | 只看该作者
回复

使用道具 举报

131#
发表于 2014-1-24 16:36:28 | 只看该作者
看看学习...
回复

使用道具 举报

130#
发表于 2013-7-27 22:51:03 来自手机 | 只看该作者
好贴!顶
回复

使用道具 举报

129#
发表于 2013-7-27 15:47:30 | 只看该作者
教程很实用,可惜那个录像115网盘要开通 VIP50元一年的会员才能离线下载
回复

使用道具 举报

128#
发表于 2013-4-23 11:43:15 | 只看该作者
好东西啊,就是不够详细,我是小白啊
回复

使用道具 举报

127#
发表于 2012-10-25 23:46:20 | 只看该作者
让我认识FBINST了一点, 录像谁有,分享下。谢!
回复

使用道具 举报

126#
发表于 2012-10-25 08:26:01 | 只看该作者
再学习一下fbinst
回复

使用道具 举报

125#
发表于 2012-4-2 13:21:11 | 只看该作者
谢谢楼主分享,学习了.
回复

使用道具 举报

124#
发表于 2012-3-25 12:47:18 | 只看该作者
谢谢天涯大大的帖子,学习了很多书本学不到的知识,版主加油!!
回复

使用道具 举报

123#
发表于 2011-11-9 08:03:12 | 只看该作者
虽然看不太懂,先收藏,再支持
回复

使用道具 举报

122#
发表于 2011-10-21 11:33:03 | 只看该作者

回复 #124 天涯海角1216 的帖子

终于能看到了,再次感谢天涯大大··
回复

使用道具 举报

121#
 楼主| 发表于 2011-10-19 19:37:58 | 只看该作者
原帖由 2011zeal 于 2011-10-18 10:03 发表
感谢天涯大大 让我认识FBINST有了初步了解 但是那个115资源可以续期一下吗?


已经续期了,你看看行不?
回复

使用道具 举报

120#
发表于 2011-10-18 10:03:10 | 只看该作者
感谢天涯大大 让我认识FBINST有了初步了解 但是那个115资源可以续期一下吗?
回复

使用道具 举报

119#
发表于 2011-9-21 16:30:53 | 只看该作者
不好看懂,有点晕忽忽的
回复

使用道具 举报

118#
发表于 2011-9-20 20:52:58 | 只看该作者
学习了,,支持。。
回复

使用道具 举报

117#
发表于 2011-9-5 13:25:13 | 只看该作者
看着很费劲。。。。基础太差了。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-26 00:53

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表