无忧启动论坛

标题: 【原创 无忧首发】硬盘版 fbinst +1JF11 等多类型双重mbr系列 [打印本页]

作者: 天涯海角1216    时间: 2010-7-20 17:37
标题: 【原创 无忧首发】硬盘版 fbinst +1JF11 等多类型双重mbr系列
说明:启动后自动定向第2扇区的MBR,第2扇区可以是任意类型MBR或某分区PBR(该分区需可启动)。

优点:有的朋友经常写MBR,经常重复写在第1扇区,担心第1扇区的磁介质老化,用此MBR后,你就在第2扇区折腾吧,呵呵

意义:直接引导第2扇区的MBR,可以实现多重引导,如:1JF9,XORLDR等,同样适用于其他类型MBR多重引导,具有很好的移植性和通用性!

介绍:附件中mbr(fbinst硬盘安装)里,前面是跳转启动第2扇区的代码,从偏移0x60开始是fbinst的主引导代码,第2扇区是lvyanan的1jf9英文版,默认启动1jf9英文版,可以选择启动分区或fbinst,也可以用grldr直接调用ud区启动!

注意:下载后需修改为你的FBINST的MBR,且第1、2扇区分区表也需更换为你的分区表,且用bootice恢复,勾选“保留磁盘签名和分区表不变”
(完整版安装fbinst到硬盘,请参考:【原创】关于FBINST启动U盘MBR恢复方法和硬盘无损数据建立UD区!
  相关基础知识可参看我的帖子:【教程 无忧首发】关于各种USB启动模式的解读(MBR、PBR)不断完善中.

在此鸣谢无忧论坛的 canmaoPaulylvyanan 等网友,感谢他们的软件或方法!

方法如下:
1. 下面是MBR第1扇区。
(对于此中 FBINST 的引导,可以用grub4dos的chainloader /fbinst.bin来引导,也可以将其代码放在硬盘任意位置用3中的1JF11引导,其实只是在下面的FBINST的代码前,偏移00处加上跳转指令EB 5E)




2. 下面是MBR第2扇区,lvyanan的1jf9英文版和菜单,注意菜单只能2行(31字节,最后必须是00),
启动主分区,也可以采用伪主分区启动。(见3图)



3. 下面是1JF9英文版的启动绝对扇区详细分析
用分区表的方式启动,也可以采用4的伪主分区的绝对扇区启动,或用逻辑分区的起始绝对扇区都可以,BIOS不会读入此处的分区表了,即可以任意指定起始位置启动了,默认启动1处分区,F11启动3处分区,F12启动4处的伪主分区(此处可以放置fbinst代码,按F12便可以直接启动UD区)
或用PaulY的XORLDR,需将主引导代码放在第2扇区,辅助代码放在第3扇区或以后。




方案一:
MBR(启动2扇区MBR)+常规MBR(NT5.X/NT6.X)
方案二:
MBR(启动2扇区MBR)+1JF9或XORLDR等多重引导系列
方案三:
MBR(启动2扇区MBR)+分区PBR(复制任意可启动分区PBR第1扇区后写入MBR的第2扇区)

以下附件需有一定知识的朋友试用,用BOOTICE恢复到您的硬盘,勾选“保留磁盘签名和分区表不变”

也可咨询本人帮您定制需要的主引导程序。

[ 本帖最后由 天涯海角1216 于 2010-8-5 07:37 编辑 ]

WDC-160G-1JF11+FBINST.rar

927 Bytes, 下载次数: 383, 下载积分: 无忧币 -2

第1扇区,canmao提供,鸣谢。用bootice恢复,勾选“保留磁盘签名和分区表不变”

BOOTICE_20100512.rar

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

WINHEX14.1.part1.rar

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

打开磁盘直接查看扇区或修改

WINHEX14.1.part2.rar

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

打开磁盘直接查看扇区或修改

WDC-160G-1JF11+FBINST(Pauly 版).rar

950 Bytes, 下载次数: 340, 下载积分: 无忧币 -2

第1扇区,Pauly提供,鸣谢。用bootice恢复,勾选“保留磁盘签名和分区表不变”

2s-1-60.rar

931 Bytes, 下载次数: 274, 下载积分: 无忧币 -2

第1扇区canmao提供,鸣谢.默认从2扇1JF11启动,2扇区无引导,标志为最后55AA,则从1扇区偏移0x60开始执行


作者: 天涯海角1216    时间: 2010-7-20 17:37
1.第一扇区的MBR很有用,有的朋友经常写MBR,经常重复写在第一扇区,有的朋友会担心第一扇区的磁介质老化,用此MBR后,你就在第二扇区折腾吧,呵呵
2.第二扇区的1JF9,可以任意写伪分区表!都可以读到,前提是您的绝对扇区位置可以引导哦

附:绝对扇区10进制和16进制转换方法:
1.用winhex打开的正常显示的是16进制
2.用程序----附件----计算器的“科学型”即可转换。







[ 本帖最后由 天涯海角1216 于 2010-7-21 10:57 编辑 ]
作者: 天涯海角1216    时间: 2010-7-20 17:38
再占用一层,呵呵!
作者: pseudo    时间: 2010-7-20 17:47
硬盘版 fbinst 有什么优势?
作者: 天涯海角1216    时间: 2010-7-20 18:00
标题: 回复 #4 pseudo 的帖子
不言而喻,UD区,安全!
作者: 天涯海角1216    时间: 2010-7-20 18:24
本人始终认为:灵活运用,善于创造才是我们不息的源泉!
作者: dhbtljj    时间: 2010-7-20 18:41
天涯兄的创意无限!
您的帖子我看了不少,收获很多,谢谢!
作者: 33445566    时间: 2010-7-20 18:57
标题: 回复 #6 天涯海角1216 的帖子
佩服!有空折腾下硬盘
作者: 忧无    时间: 2010-7-20 19:12
楼主你太有才啦,学习了。
作者: diwu2005    时间: 2010-7-20 19:27
楼主有才啊,不过有点疑问:我重写MBR后,第一扇区重写了,还能自动重定向到第二扇区么?
作者: 天涯海角1216    时间: 2010-7-20 19:29
标题: 回复 #10 diwu2005 的帖子
那当然不能,你用软件重写的是微软默认的代码,只能启动第一扇区,必须用这个MBR才可以
作者: wsj    时间: 2010-7-20 20:16
这个方法很好,安全有效,楼主想法很巧妙,谢谢
作者: 华阳    时间: 2010-7-20 21:37
仔细看了,版主的方法非常值得一试,很有创意。

有个问题:是否只是fbinst才可以用这种方法呀,谢谢!
作者: k71g    时间: 2010-7-20 23:11
WDC-160G-1JF11+FBINST(Pauly 版).rar (950 Bytes)
  第1扇区,Pauly提供,鸣谢。用bootice恢复,勾选“保留磁盘签名和分区表不变”


搞下硬盘后,启动不了系统 了
作者: ly372184487    时间: 2010-7-20 23:21
我的硬盘装满了重要的数据,可不能拿来折腾,呵呵,路过!
作者: k71g    时间: 2010-7-20 23:27
原帖由 ly372184487 于 2010-7-20 23:21 发表
我的硬盘装满了重要的数据,可不能拿来折腾,呵呵,路过!


不怕啊,其实很多东西你早就想删的了。
作者: 天涯海角1216    时间: 2010-7-21 05:22
原帖由 k71g 于 2010-7-20 23:11 发表
WDC-160G-1JF11+FBINST(Pauly 版).rar (950 Bytes)
  第1扇区,Pauly提供,鸣谢。用bootice恢复,勾选“保留磁盘签名和分区表不变”


搞下硬盘后,启动不了系统 了



你肯定能看到:XP,F11-XORLDR,F12-FBINST。。
这样的菜单吧,你将第二扇区的1分区表位置修改为 3F 00 00 00,3F即为10进制的63扇区,即你的系统分区所在位置(一般情况下)



作者: wsj    时间: 2010-7-21 05:57
清晨来反馈:
昨晚测试成功,能够用你的1JF9多启动,修改分区很小心的哦,谢谢版主!
你说的可以将PBR放在第2扇区启动?
怎么使用,能否请版主具体说说,谢谢!
作者: 天涯海角1216    时间: 2010-7-21 10:17
标题: 回复 #18 wsj 的帖子
你只需将分区PBR的第一扇区复制到整个硬盘的第2号扇区,用WINHEX写入即可!
作者: zqywult    时间: 2010-7-21 10:54
#02
..............................

2.用附件里的计算器的“科学型”即可转换。

这个附件在哪儿呢??
作者: 天涯海角1216    时间: 2010-7-21 10:56
标题: 回复 #20 zqywult 的帖子
程序----附件---计算器
作者: zqywult    时间: 2010-7-21 11:07
哦!找到了,
原来在WinHex 14.1里:工具----计算器
作者: fh123456    时间: 2010-7-22 16:31
菜鸟的我看不太懂,看来我的努力学习
作者: 2010冷冷的咖啡    时间: 2010-7-22 20:39
收获很多,谢谢!收获很多,谢谢!
作者: lookhandsome    时间: 2010-7-23 11:09
牛B,必须学习。谢谢
作者: Plantsoot    时间: 2010-7-23 11:28
一键F11和我的主板的F11选择启动项的冲突吗?
作者: 天涯海角1216    时间: 2010-7-23 14:20
标题: 回复 #26 Plantsoot 的帖子
不会的!
先是你主板的F11,而后才是MBR的F11.......
作者: 天涯海角1216    时间: 2010-8-3 09:49
canmao :
能否把时空的MBR完整写一下呢?
是修改为:2扇区无引导程序,标志为 AA55,则从1扇区偏移0x60开始执行或从下一个设备启动

谢谢!
作者: canmao    时间: 2010-8-3 12:48
试试吧:
  1. 0B3B:0100 FA                 CLI
  2. 0B3B:0101 31C0              XOR     AX,AX
  3. 0B3B:0103 8ED0              MOV     SS,AX
  4. 0B3B:0105 8EC0              MOV     ES,AX
  5. 0B3B:0107 8ED8              MOV     DS,AX
  6. 0B3B:0109 BC007C           MOV     SP,7C00
  7. 0B3B:010C 89E3              MOV     BX,SP
  8. 0B3B:010E 89E6              MOV     SI,SP
  9. 0B3B:0110 BF0006           MOV     DI,0600
  10. 0B3B:0113 B90001           MOV     CX,0100
  11. 0B3B:0116 FB                  STI
  12. 0B3B:0117 FC                  CLD
  13. 0B3B:0118 F3                  REPZ
  14. 0B3B:0119 A5                  MOVSW
  15. 0B3B:011A EA1F060000    JMP     0000:061F
  16. 0B3B:011F 41                  INC     CX
  17. 0B3B:0120 41                  INC     CX
  18. 0B3B:0121 30F6               XOR     DH,DH
  19. 0B3B:0123 BD0500           MOV     BP,0005
  20. 0B3B:0126 B80102           MOV     AX,0201
  21. 0B3B:0129 CD13              INT     13
  22. 0B3B:012B 7313              JNB     0140
  23. 0B3B:012D 4D                 DEC     BP
  24. 0B3B:012E 75F6              JNZ     0126
  25. 0B3B:0130 BE6006           MOV     SI,0660
  26. 0B3B:0133 BF607C           MOV     DI,7C60
  27. 0B3B:0136 B9D000          MOV     CX,00D0
  28. 0B3B:0139 F3                  REPZ
  29. 0B3B:013A A5                 MOVSW
  30. 0B3B:013B EA607C0000   JMP     0000:7C60
  31. 0B3B:0140 A1FE7D          MOV     AX,[7DFE]
  32. 0B3B:0143 3D55AA          CMP     AX,AA55
  33. 0B3B:0146 75E8              JNZ     0130
  34. 0B3B:0148 0E                  PUSH    CS
  35. 0B3B:0149 53                  PUSH    BX
  36. 0B3B:014A CB                  RETF
复制代码
用前,请先详细检查一下代码。
12点给出的代码有误,现在已修改了。

[ 本帖最后由 canmao 于 2010-8-3 15:53 编辑 ]
作者: 天涯海角1216    时间: 2010-8-3 14:38
标题: 回复 #29 canmao 的帖子
非常感谢!

我测试了一下,如果2扇区没有最后的AA55标志,则从1扇区偏移0x60处成功启动,如果有2扇区最后的AA55标志,则不能从2扇区的MBR启动,死机。。。

没看出代码有什么问题呢,呵呵
作者: canmao    时间: 2010-8-3 15:11
你把从 0B3B:0148 处改为 JMP 0:7c00 试试。
作者: lvyanan    时间: 2010-8-3 15:19
最后三条指令有问题?RETF执行后,弹出CS:BP的入栈值作为程序的入口,也就是CS:0005到CS:0000之间,即使程序入口不出错,AX值为AA55,本程序入口的AX对SS和ES赋值,将会引起大错!

[ 本帖最后由 lvyanan 于 2010-8-3 15:26 编辑 ]
作者: 天涯海角1216    时间: 2010-8-3 15:32
谢谢 lvyanan 老师和 canmao !

直接去掉,修改为EA 00 7C 00 00 ,启动成功!
作者: 天涯海角1216    时间: 2010-8-3 15:38
再贴一下:

0B3B:0100 FA                 CLI
0B3B:0101 31C0              XOR     AX,AX
0B3B:0103 8ED0              MOV     SS,AX
0B3B:0105 8EC0              MOV     ES,AX
0B3B:0107 8ED8              MOV     DS,AX
0B3B:0109 BC007C           MOV     SP,7C00
0B3B:010C 89E3              MOV     BX,SP
0B3B:010E 89E6              MOV     SI,SP
0B3B:0110 BF0006           MOV     DI,0600
0B3B:0113 B90001           MOV     CX,0100
0B3B:0116 FB                  STI
0B3B:0117 FC                  CLD
0B3B:0118 F3                  REPZ
0B3B:0119 A5                  MOVSW
0B3B:011A EA1F060000    JMP     0000:061F
0B3B:011F 41                  INC     CX
0B3B:0120 41                  INC     CX
0B3B:0121 30F6               XOR     DH,DH
0B3B:0123 BD0500           MOV     BP,0005
0B3B:0126 B80102           MOV     AX,0201
0B3B:0129 CD13              INT     13
0B3B:012B 7313              JNB     0140
0B3B:012D 4D                 DEC     BP
0B3B:012E 75F6              JNZ     0126
0B3B:0130 BE6006           MOV     SI,0660
0B3B:0133 BF607C           MOV     DI,7C60
0B3B:0136 B9D000          MOV     CX,00D0
0B3B:0139 F3                  REPZ
0B3B:013A A5                 MOVSW
0B3B:013B EA607C0000   JMP     0000:7C60
0B3B:0140 A1FE7D          MOV     AX,[7DFE]
0B3B:0143 3D55AA          CMP     AX,AA55
0B3B:0146 75E8              JNZ     0130
0B3B:0148 EA007C0000   JMP     0000:7C0000
作者: canmao    时间: 2010-8-3 15:54
#32 & #33:

原代码犯了一个低级错误:应该是 push BX ,而不是 push BP。

29楼代码已更正。你可以再试一下。

[ 本帖最后由 canmao 于 2010-8-3 16:02 编辑 ]
作者: canmao    时间: 2010-8-3 17:01
再贴一段代码:
  1. :0100 FA           CLI
  2. :0101 0E           PUSH CS
  3. :0102 1F           POP DS
  4. :0103 0E           PUSH CS
  5. :0104 07           POP ES
  6. :0105 0E           PUSH CS
  7. :0106 17           POP SS
  8. :0107 BC007C    MOV SP, 7C00
  9. :010A 89E3       MOV BX, SP
  10. :010C 89E6       MOV SI, SP
  11. :010E BF0006    MOV DI, 0600
  12. :0111 B90001    MOV CX, 0100
  13. :0114 FB           STI
  14. :0115 FC           CLD
  15. :0116 F3           REPZ
  16. :0117 A5           MOVSW
  17. :0118 0E           PUSH CS
  18. :0119 681D06    PUSH 061D           ;在dos的debug下不能正常显示
  19. :011C CB           RETF
  20. :011D 41           INC CX
  21. :011E 41           INC CX
  22. :011F 30F6        XOR DH, DH
  23. :0121 BD0500    MOV BP, 0005
  24. :0124 B80102    MOV AX, 0201
  25. :0127 CD13       INT 13
  26. :0129 7314       JNB 003F
  27. :012B 4D          DEC BP
  28. :012C 75F6       JNE 0024
  29. :012E BE6006    MOV SI, 0660
  30. :0131 BF607C    MOV DI, 7C60
  31. :0134 B9D000    MOV CX, 00D0
  32. :0137 FC           CLD
  33. :0138 F3           REPZ
  34. :0139 A5          MOVSW
  35. :013A 0E          PUSH CS
  36. :013B 68607C   PUSH 7C60           ;在dos的debug下不能正常显示
  37. :013E CB          RETF
  38. :013F A1FE7D   MOV AX, WORD PTR [7DFE]
  39. :0142 3D55AA  CMP AX, AA55
  40. :0145 75E7      JNE 002E
  41. :0147 0E          PUSH CS
  42. :0148 53          PUSH BX
  43. :0149 CB          RETF
复制代码
这段代码最大的好处,就是可在debug下进行仿真调试。

[ 本帖最后由 canmao 于 2010-8-3 17:10 编辑 ]
作者: 天涯海角1216    时间: 2010-8-3 19:04
标题: 回复 #36 canmao 的帖子
我测试一切正常,默认从2扇启动,2扇区无引导程序,标志为2扇区最后55AA,则从1扇区偏移0x60开始执行。

高手!

非常感谢!
作者: canmao    时间: 2010-8-3 20:05
标题: 回复 #37 天涯海角1216 的帖子
看你的回帖,我总觉得自己的代码写错了。我的代码的逻辑是:

默认从2扇启动,如果 2扇读错误 或 2扇不以55、AA结尾,则从1扇区偏移0x60开始执行。

另外:36楼的代码是有风险的。比如:bios 自举后转交控制给 MBR 的指令为:

JMP 7C0:0

36楼代码就注定挂掉,而29楼代码安然无恙。
作者: 天涯海角1216    时间: 2010-8-3 20:22
标题: 回复 #38 canmao 的帖子
很好的!很欣赏你的水平!

在我的硬盘上安装 fbinst 的 mbr ,而其代码是从1扇的 60h 开始执行的,所以默认启动2扇的其他MBR,若2扇没有引导,则从1扇的 60h 执行 fbinst
作者: canmao    时间: 2010-8-3 20:46
能得到您的欣赏,俺很荣幸。

[ 本帖最后由 canmao 于 2010-8-3 20:48 编辑 ]
作者: 天涯海角1216    时间: 2010-8-4 06:15
标题: 回复 #40 canmao 的帖子
你太谦虚了!
其实你是本坛为数不多的MBR引导方面的高手,完全可以自己写出独到的MBR来的!
作者: ShoJinto    时间: 2010-8-4 16:39
可惜了,我是菜鸟了还没法看懂了。很是高深的感觉了!!
作者: LOVPE    时间: 2010-8-4 18:30
原帖由 天涯海角1216 于 2010-7-20 17:37 发表
说明:启动后自动定向第2扇区的MBR,第2扇区可以是任意类型MBR或某分区PBR(该分区需可启动)。

优点:有的朋友经常写MBR,经常重复写在第1扇区,担心第1扇区的磁介质老化,用此MBR后,你就在第2扇区折腾吧, ...


想请天涯兄台看看这个PDR有什么问题没有?
不知从何时起,电脑分区D:(NTFS)只有在win7下才正常,在XP下显示为RAW格式,不知与PDR(我也不知这个是不是所谓的PDR,反正是D:分区的第一扇区)有关系没有?
虽然现有用的系统是WIN7一切正常,但怕哪一天忽然不正常了就麻烦了。
未命名.rar (569 Bytes, 下载次数: 92)
附件MD5:15308F408CD0D355EFD901D1AF68526F
作者: 天涯海角1216    时间: 2010-8-4 18:46
标题: 回复 #43 LOVPE 的帖子
我看了,感觉你的分区PBR没问题的,或者找 lvyanan 老师问问,呵呵
作者: 2010heng    时间: 2010-8-4 18:50
有创意!真是太有才了!
作者: 2010mayiqiji    时间: 2010-9-9 08:30
楼主,我想在一个移动硬盘上,搭建移动的Linux,看了您的不少帖子,学习了很多东西,想问您一下,在win7里,通过编辑bcdedit 来实现引导有点麻烦,再有就是移植性不好,您看有没有什么好的引导程序,简单明了地引导我的PORTABALE LINUX!
论坛里的很多帖子都很有技术,我现在需要简单的一个引导程序就可以了,以后可以继续深入学习,感觉大家都在朝多功能、复杂化钻研。
谢谢您!向您学习。
作者: 天涯海角1216    时间: 2010-9-9 08:40
标题: 回复 #46 2010mayiqiji 的帖子
哦,PORTABALE LINUX 我没用过,所以也清楚是怎么引导的,呵呵
作者: zlgs    时间: 2010-11-25 21:08
没看完帖子下载了附件
WDC-160G-1JF11+FBINST(Pauly 版).rar
bootice恢复WDC-160G-1JF11+FBINST(Pauly 版).BIN不能引导
用diskgenius清除mbr回来
这个附件是否更新一下
作者: 天涯海角1216    时间: 2010-11-25 21:32
标题: 回复 #48 zlgs 的帖子
你需要将此文件按1楼的第三副图修改为你需要启动的分区!
作者: 寂寞人生    时间: 2010-11-26 21:46
楼主高才,佩服之极!!!!
作者: diy502    时间: 2010-11-28 19:33
这个研究好了,做启动U盘就很容易啦。
作者: 717758565    时间: 2010-11-28 20:05
天涯海角兄你太有你才了我想我想问个问题,就是分区间距一般都是31.5kb也就是63个扇区可是我的硬盘的分区间距的其中一个是33.5kb也就是67个扇区怎样才能用winhex改回到63个扇区呢?谢谢
作者: 370438127    时间: 2010-12-14 21:39
楼主,你发的东西太深奥了,我都看不懂!
作者: jianghe8686    时间: 2010-12-17 15:02
呵呵 不错!!!
作者: 2010xinguixujin    时间: 2010-12-19 12:57
楼主用什么软件显示的扇区代码啊?
作者: 2012yincheng137    时间: 2012-8-6 14:50
恩恩,学习了。。。。谢谢楼主
作者: IT砖家    时间: 2012-8-7 07:56
顶给有需要的人吧~~创意无限啊!
作者: szfhx    时间: 2012-8-7 08:22
支持                   顶
作者: 1e3e    时间: 2012-8-7 12:05
好深奥,不过认真学习一下,非常感谢你的分享
作者: 2011qq6554243    时间: 2016-1-13 13:59
佩服!有空折腾下硬盘
作者: Fastwingo    时间: 2023-7-16 22:57
感谢楼主码字,学习一下
作者: 2011夹克油    时间: 2023-7-16 23:51
楼主辛苦,学习了!




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