无忧启动论坛

标题: 【原创 无忧首发】建立伪分区,合理利用分区间距,打造安全启动 MBR ! [打印本页]

作者: 天涯海角1216    时间: 2010-3-6 04:58
标题: 【原创 无忧首发】建立伪分区,合理利用分区间距,打造安全启动 MBR !
【原创文章,转载及引用请与本人协商并保持完整及出处!对此,本人保留利益追索权利 !





(转载请注明出处:http://bbs.wuyou.net/forum.php?mod=viewthread&tid=160773&page=1&extra=

   前言:我们知道,多引导系统和一键恢复等工具均安装在MBR上,占用一个或多个扇区,如果重新安装系统或误操作,都可能会导致MBR损坏使得电脑无法正常启动。
     想法:而分区间距就安全多了,“分区间距”是指分区之间的63个保留扇区,除第一个扇区被分区表DPT+”55AA“占用外,还有62个保留扇区可用,与主引导扇区惊人的相似,且不怕格式化,不怕病毒,不怕误操作(只要你不专门找到它。其实最好放在硬盘剩余扇区,重新分区都不怕。)
     优点:
写HDD+或NT5或分区软件重写MBR都不会影响启动,用软件重写MBR也只是写了前446字节,启动丝毫不受影响!
     做法:本人经过探索研究,采用以下方法可以安全保护和方便使用MBR。






预备:MBR知识图:  硬盘主引导扇第一扇区(0柱面0磁头0扇区)
    硬盘的主引导扇区,分区表,分区引导扇区(MBR、DPT、DBR、BPB)是电脑BIOS自检完成后,操作系统开始引导系统前整个电脑运作过程中需要检查的重要参数,硬盘的主引导扇区,分区表,分区引导扇区(MBR、DPT、DBR、BPB)参数错误可能导致系统无法启动或存储的数据丢失,这片文章我们介绍一下硬盘的主引导扇区,分区表,分区引导扇区(MBR、DPT、DBR、BPB)的详细信息。
  硬盘的0柱面、0磁头、1扇区称为主引导扇区(也叫主引导记录MBR),该记录占用512个字节,它用于硬盘启动时将系统控制权转给用户指定的、在分区表中登记了某个操作系统分区。MBR的内容是在硬盘分区时由分区软件(如FDISK)写入该扇区的,MBR不属于任何一个操作系统,不随操作系统的不同而不同,即使不同,MBR也不会夹带操作系统的性质,具有公共引导的特性。但安装某些多重引导功能的软件或LINUX的LILO时有可能改写它;它先于所有的操作系统被调入内存并发挥作用,然后才将控制权交给活动主分区内的操作系统(下图)
    天涯海角1216 注:特殊形式的MBR会占用多个扇区,如 Lvyanan 的1JF9占用2个扇区,Pauly 的 XORLDR 占用30来个扇区, GRUB 的MBR占用18个扇区,FBINST 占用64个扇区,PloP Boot Manage 占用62个扇区(总共63个扇区)







方法和过程(四步):


1.激活启动扩展分区间距第一扇区.
      如果有逻辑分区,则用 WINHEX 将80(激活分区)写在扩展分区表上,NT5 的MBR会傻乎乎地启动到该扩展分区表所在的分区间距第一扇区位置(如果有扩展分区,下面的第二步建立伪分区的操作可以跳过。),下图.



2.建立一个“伪分区”,激活并使之启动.
       如果全是主分区,则建立一个“伪分区”(不会4个主分区表都用了吧),将你想要启动的分区间距的绝对扇区位置用WINHEX写入(16进制),下图。
    伪分区的建立方法,比如最后一个分区表位置偏移1F6-1F9用WINHEX写入16进制的起始扇区位置即可(只能在没有利用的分区表的偏移6-9共四个字节处)。

伪分区,是只指定了起始扇区号,而没有完整的分区信息的情况 —天涯海角1216定义。
且常规MBR启动时只是去检测80和起始扇区号,对分区信息不做完整检测,这就为我们任意指定启动扇区位置做了铺垫。)






3.复制多扇区MBR代码到分区间距.
    用 WINHEX 分2步将原 MBR 复制到你前面对应的分区间距上(因为扩展分区间距有扩展分区表,所以要2步,否则扩展分区表会被覆写),
第1步复制MBR的前446字节到你选的分区间距第一扇区偏移00处,
第2步将MBR的后面扇区内容写入到该分区间距的对应位置,注意不要破坏逻辑分区表!!!下图.







4.MBR写入NT5或HDD+引导代码.
   将硬盘MBR写入NT5 ,电脑就会从你指定的所谓激活主分区启动!(我发现电脑启动时 NT5 或HDD+的MBR不会检测分区表的合法性,本方法同样适用于HDD模式多分区U盘启动.当然有的MBR的第二扇区及后面扇区不可以移动位置就没办法了,比如时空论坛发布的63个扇区的63-grub后面扇区就不可以移动。)







  ◎后记:即使MBR出问题了,也只需重写MBR,将你启动的逻辑分区或伪分区激活(写80)即可,不需要重新安装多启动的复杂代码了。

详细过程看2楼实例!

[ 本帖最后由 天涯海角1216 于 2010-8-26 06:15 编辑 ]
作者: 天涯海角1216    时间: 2010-3-6 05:03
新手勿试!!!

实例1:扩展分区间距实现多启动

利用MBLDR打造多重启动。

1.将下面的MBLDR“MBLDR写入任意位置模板”下载后,用WINHEX打开,将其前446字节写入扩展分区第一间距的第一扇区.(注意扩展分区间距里第一扇区后面有扩展分区表,千万别覆盖!)

MBLDR写入任意位置模板.rar (540 Bytes, 下载次数: 407)

2.按照下图,将你需要启动的分区写入到相应位置,延时是2秒,默认启动第一项。参看MBLDR及其设置



3.在MBR处将该扩展分区写80(激活),同时将MBR写NT5/6或HDD+(若写NT6,则需将该扩展分区设置为第一个活动分区)



实例2:剩余扇区实现多启动

我是用Pauly的XORLDR安装在剩余扇区里启动的,因为XORLDR的后面扇区可以自由移动位置!
注意:一定要小心,可先备份分区表和你要操作的扇区文件到U盘,出错可恢复。

1.安装XORLDR,且将辅助代码安装到剩余扇区里的某扇区。



2.用WINHEX打开剩余扇区,将XORLDR的MBR第一扇区(主程序)用WINHEX复制全部512字节代码写入到你想启动的剩余扇区某位置。




3.将该位置写成“伪分区”,同时将MBR写NT5/6或HDD+(若写NT6,则需将启动的分区设置为第一个活动分区)



重新启动电脑即可成功进入XORLDR享受多启动了。
(注意:重新启动电脑后,XORLDR会回写到0扇区,我是用20100120版本,且将回写0扇区功能去除的,从安装好的文件中查找CD13,将第二个CD13写为00 00 即可)
恳请各位批评指正!!!

新版本已经支持!
看说明:

【XORLDR: 多系统引导程序】-(2010.3.14 V0.30)


[ 本帖最后由 天涯海角1216 于 2010-6-25 15:48 编辑 ]

xorldrc_0.30.rar

24.38 KB, 下载次数: 439, 下载积分: 无忧币 -2


作者: TOSHIBA    时间: 2010-3-6 05:39
标题: 回复 #1 天涯海角1216 的帖子
很欣赏天涯海角1216灵活的思维和缜密的思考。
有时间试试,这种方法的确很安全,谢谢..........
作者: ZXQ99925    时间: 2010-3-6 08:02
楼主总是出新招!
支持,周末没事情也试试看
作者: yichya    时间: 2010-3-6 08:27
猛一看没看明白,估计一大早大脑短路了.

你的意思是,把MBR复制一份,让MBR A去引导MBR B,这样顺便也备份了分区表?想法很好!
作者: PTPTPTPTPTPT    时间: 2010-3-6 09:10
哦,原来移动扇区是要干这个使。。。呵呵,放心,63-grub很快就可以的。


补充:
又想了一下,还不是那么简单,涉及到扩展 int13 以及 c h s 转换等问题,不如在0磁道兼容性好。还是不搞了先。

[ 本帖最后由 PTPTPTPTPTPT 于 2010-3-6 11:52 编辑 ]
作者: gzdiky    时间: 2010-3-6 09:29
尔等小虾看不明操作。写得不够具体。看来是写给大虾们的思路吧。
作者: o157    时间: 2010-3-6 10:54
楼主研究得真深啊,不错!
作者: viptks    时间: 2010-3-6 11:17
这招太怪了.....希望有工具直接搞定,要不我可不敢在别人机器上直接安装,自己的到时可以玩玩
作者: cjx2665    时间: 2010-3-6 13:56
看的有点晕,还需要学习啊。
作者: szl1990    时间: 2010-3-6 15:25
收藏,备用。
作者: k71g    时间: 2010-3-6 19:05
看的有点晕,还需要学习啊。
作者: 天涯海角1216    时间: 2010-3-6 21:14
我试过,用逻辑分区间距或伪分区激活启动方式,MBR写HDD+或NT5或分区软件重写MBR都不会影响启动,个人认为还是很安全的。
作者: 天涯海角1216    时间: 2010-3-6 21:17
标题: 回复 #5 yichya 的帖子
是这意思,而且MBR就是普通的446字节的MBR,真正启动MBR放在分区间距里,无论怎样都不会损坏。。。。

事实上我的电脑就是将XORLDR全部放在分区间距里,0扇区只是普通的NT5,用软件重写MBR也只是写了钱446字节,启动丝毫不受影响!

[ 本帖最后由 天涯海角1216 于 2010-3-6 21:31 编辑 ]
作者: yichya    时间: 2010-3-6 21:43
貌似LZ让NT5的MBR很悲惨的去引导了一个在某个分区BPB的地方呆着的MBR,结果又绕了回来。。。不那么晕了
作者: zqywult    时间: 2010-3-7 02:02
LZ总是出新招!我还没有完全理解:

1、”.....其实最好放在硬盘剩余扇区,重新分区都不怕。“
这里的“剩余扇区”是指什么?是指不够一个柱面的剩下的空间吗?这部分是不参与分区,但可能也因此无法利用吧?

2、LZ说的“分区间距”是指分区之间的63个保留扇区吧,除第一个扇区 被分区表DPT+”55AA“占用外,还有62个保留扇区--系统扇区?

3、“伪分区"是指什么?如何建立伪分区?我看图还是不太明白?

请麻烦楼主说明一下!谢谢!
作者: 天涯海角1216    时间: 2010-3-7 06:38
标题: 回复 #16 zqywult 的帖子
1,2你说的很正确,“剩余扇区”是可以利用的呀,我的GRLDR,NTLDR,SETUPLDR.BIN(PE引导文件)都放在里面,
3.伪分区,是只指定了起始扇区号,而常规MBR启动时只是去检测80和起始扇区号,对分区信息不做完整检测,这就为我们任意指定启动扇区位置做了铺垫。
伪分区的建立方法,比如最后一个分区表位置偏移1F6-1F9用WINHEX写入16进制的起始扇区位置即可(只能在没有利用的分区表的偏移6-9共四个字节处)。。

[ 本帖最后由 天涯海角1216 于 2010-3-7 06:58 编辑 ]
作者: ZXQ99925    时间: 2010-3-7 06:51
我仔细阅读、认真实践后成功,还真的是不错。。
楼主思维好,是我等学习榜样。谢谢!有问题再向你讨教。。。

建议版主此帖加精!!!
作者: yueyezhan    时间: 2010-3-7 11:51
这个思路很别致,收藏了
作者: 8897597    时间: 2010-3-7 13:47
真是不短的革新啊 厉害
作者: SONY.    时间: 2010-3-8 08:01
看了好久,终于看懂了!
牛帖子,强帖子!
让我对于逻辑分区得结构也了解一点点了。
我得好好试试,谢谢!
作者: lvyanan    时间: 2010-3-8 10:15
很有启发,可以借鉴。
作者: TOSHIBA    时间: 2010-3-8 18:16
我试过了,启动很完美!我又学到很多知识!
对分区等知识有了全新的认识.
非常感谢天涯海角1216 !

强烈建议此帖加为精华!!!
作者: zqjiang    时间: 2010-3-8 19:21
想法虽好 但是对菜鸟们说有点难了
作者: victor888    时间: 2010-3-8 20:35
楼主,你应该申请发明专利,我在说真的。
另,有时间望考虑一下NT6。
作者: 天涯海角1216    时间: 2010-3-8 21:08
标题: 回复 #24 victor888 的帖子
版主过奖了,只是一点点小发现。
谢谢鼓励~~!
作者: Pauly    时间: 2010-3-8 21:12
标题: 回复 #26 天涯海角1216 的帖子
兄台总是有些奇怪且有创意的想法,呵呵
作者: emCupid    时间: 2010-3-8 23:04
如此操作……不易,菜菜是完蛋了
作者: z410262166    时间: 2010-3-9 01:19
独特的想法,楼主有才
作者: blue_moon    时间: 2010-3-9 02:41
我不敢在自己机器上做,跟帖关注中。
作者: 天涯海角1216    时间: 2010-3-9 05:43
标题: 回复 #27 Pauly 的帖子
呵呵,我也是被逼出来的。
当初我安装你的XORLDR后又安装三茗一键恢复来保护XORLDR,发现每次卸载三茗后XORLDR不能启动了,仔细观察发现MBR后的第7、41、42、43扇区被清空,所以没办法才想到安装到分区间距或剩余扇区才最安全。
作者: dxqingyue    时间: 2010-3-9 08:12
看得有点儿晕,只能慢慢消化了。
作者: diwu2005    时间: 2010-3-9 08:54
真是太高深了,还没看懂,不敢操作,晕死……
问一下:用FDisk /mbr 或用工具重写MBR能否破坏它?
能不能搞个可设置的傻瓜式安装软件让我等菜鸟试试?
作者: 天涯海角1216    时间: 2010-3-9 09:10
标题: 回复 #31 diwu2005 的帖子
说的很明白,用FDisk /mbr 或用工具重写MBR不会破坏它!!!
作者: haiou327    时间: 2010-3-9 16:00
相当于用MBR引导MBR,如果当在物理0扇区建立好“伪主分区标识”,写在分区间距的第0扇到后续保留扇区是NT5的MBR,也就是用NT5的MBr又再来引导NT5的MBR,分区间距扇区的MBR的80标志这时一定要指向主分区了,如果再建立一个“伪主分区”标识会不会出现MBR---->MBR的死循环。

或者说如果在分区间距里写入的是NT5的主引导,这时MBR会不会找不到活动分区标识了而无法启动。

[ 本帖最后由 haiou327 于 2010-3-9 16:07 编辑 ]
作者: webshow    时间: 2010-3-9 16:11
提示: 作者被禁止或删除 内容自动屏蔽
作者: 天涯海角1216    时间: 2010-3-9 16:12
标题: 回复 #33 haiou327 的帖子
应该不会吧,我没试过。呵呵。
理论上应该指向分区间距位置的“80”的伪分区扇区了。

如果在分区间距里写入的是NT5的主引导,该分区间距的逻辑分区表没有活动分区标识了应该会无法启动的。
不过一般我们不会这么做的,呵呵。

[ 本帖最后由 天涯海角1216 于 2010-3-9 16:14 编辑 ]
作者: window    时间: 2010-3-9 16:15
对电脑上网貌似也有影响
作者: lvyanan    时间: 2010-3-9 16:17
标题: 回复 #33 haiou327 的帖子
80活动标志只是提供给MBR识别的,到了DBR引导之后,除了DOS系统自举时还要用到这个标志,其它Windows系统基本上不依赖它了,驻留在EBR扇区的接力引导程序,只要解决DBR的选择和装入问题,就可以不依赖80标志而完成引导,LZ的想法很好,可据此开发出安全性更高的引导程序,还可以减少对主引导扇的写入频度,不利的是DOS启动没有标志,要采取技术措施,呵呵,我来改一个1JF9ky试试。

[ 本帖最后由 lvyanan 于 2010-3-9 16:34 编辑 ]
作者: webshow    时间: 2010-3-9 16:19
提示: 作者被禁止或删除 内容自动屏蔽
作者: haiou327    时间: 2010-3-9 17:12
原帖由 lvyanan 于 2010-3-9 16:17 发表
80活动标志只是提供给MBR识别的,到了DBR引导之后,除了DOS系统自举时还要用到这个标志,其它Windows系统基本上不依赖它了,驻留在EBR扇区的接力引导程序,只要解决DBR的选择和装入问题,就可以不依赖80标志而完 ...

如果指定的分区间距装入的是NT5的主引导,这时主引导里根本找不到启动项,如果装入是GRLDR或XORLDR........ 或其它类型引导程序就可以根据引导程序指定的位置来装载分区DBR或NTLDR,IO........等。应该装入NT5的主引导不可行吧
作者: 老徐    时间: 2010-3-9 17:52
哪位写一个智能操作版本就好了。懒人的愿望啊。
作者: 33445566    时间: 2010-3-9 18:12
不管有多个逻辑分区(分区间距也多个),但在MBR分区表中只扩展分区一个分区表,80激活标志是否修改在这个扩展分区表中,是否只能用第一个分区间距?
作者: 天涯海角1216    时间: 2010-3-9 18:33
标题: 回复 #41 33445566 的帖子
是的!
如果启动激活的逻辑分区,只能是启动到逻辑分区第一分区间距。
如果建立伪分区,则可随意启动某分区间距或剩余扇区。
作者: zjq20032006    时间: 2010-3-9 18:51
想麻烦一下 天涯海角1216  能不能给讲解一下扇区的一些知识?
作者: 天涯海角1216    时间: 2010-3-9 19:06
标题: 回复 #43 zjq20032006 的帖子
呵呵,不是一句话两句话就可以说清楚的,网上搜一下吧。。。
作者: 33445566    时间: 2010-3-9 19:20
标题: 回复 #42 天涯海角1216 的帖子
能弄个伪分区的例子?
作者: 天涯海角1216    时间: 2010-3-9 19:30
在2楼呀,直接写入剩余扇区就可以了!





[ 本帖最后由 天涯海角1216 于 2010-3-9 19:31 编辑 ]
作者: lvyanan    时间: 2010-3-9 19:56
原帖由 haiou327 于 2010-3-9 17:12 发表

如果指定的分区间距装入的是NT5的主引导,这时主引导里根本找不到启动项,如果装入是GRLDR或XORLDR........ 或其它类型引导程序就可以根据引导程序指定的位置来装载分区DBR或NTLDR,IO........等。应该装入NT ...

分区间距装入NT5是不理想的,此地应该装入一个选择启动分区的人机控制程序,由程序默认启动或使用者选择启动某个分区的系统,这个选择启动的程序,只要装入指定磁盘的DBR,即可实现启动目的。
作者: 天涯海角1216    时间: 2010-3-9 20:06
标题: 回复 #47 lvyanan 的帖子
我记得装入分区DBR是可以的,可以启动的。这个用伪分区比较好。
我也装过MBLDR在里面实现多分区引导的。
作者: 天涯海角1216    时间: 2010-3-9 20:08
标题: 回复 #47 lvyanan 的帖子
lvyanan 老师没打算写个装入分区间距或剩余扇区的1JF9吗?
作者: lvyanan    时间: 2010-3-9 20:31
原帖由 天涯海角1216 于 2010-3-9 20:08 发表
lvyanan 老师没打算写个装入分区间距或剩余扇区的1JF9吗?

呵呵,有点蠢蠢欲动,改造一个1JF9ky吧,正在构思。
作者: haiou327    时间: 2010-3-9 21:21
@天涯海角1213这个想法很有创意
把XORLDR的引导放在剩余扇区有没有启动成功的案例!
作者: 天涯海角1216    时间: 2010-3-9 21:57
标题: 回复 #51 haiou327 的帖子
成功的,伪分区启动就可以了。。
后来为了多建一个主分区,我就将XORLDR放在扩展分区间距里启动了。
作者: 33445566    时间: 2010-3-9 22:07
原帖由 lvyanan 于 2010-3-9 20:31 发表

呵呵,有点蠢蠢欲动,改造一个1JF9ky吧,正在构思。

期待老蛙兄的新作
作者: haiou327    时间: 2010-3-9 22:12
@天涯海角1213
如果是建立”伪分区“,只要和前面伪分区指定的启始扇区号一致原则上第二主引导程序能不能放在任意扇区位置?

[ 本帖最后由 haiou327 于 2010-3-9 22:19 编辑 ]
作者: 天涯海角1216    时间: 2010-3-9 22:23
标题: 回复 #54 haiou327 的帖子
可以的呀!

以XORLDR为例:
但是有个小问题,当初我和Pauly提过,就是XORLDR会回写到0扇区,你用2楼的XORLDR安装到剩余扇区备份到文件,用WINHEX打开该文件,将第二个CD13写为00 00(去掉回写功能),再用WINHEX写到你需要的位置。

其实辅助代码位置在下图中。。。。也就是说,你清除掉第二个CD13后,将辅助代码放到哪都行,只需再将主代码下图位置写对就可以了。(其他版本我没测试CD13)

要小心,备份好分区表到U盘,万一出错用U盘启动恢复!!!



[ 本帖最后由 天涯海角1216 于 2010-3-9 22:43 编辑 ]
作者: haiou327    时间: 2010-3-9 22:38
标题: 回复 #57 天涯海角1216 的帖子
XORLDR会回写0扇区,其它版本的XORLDR是不是每次在你改动了XORLDR的0扇区重启他又会改回来,还是说安装第一次重启才会回写。
作者: 天涯海角1216    时间: 2010-3-9 22:41
标题: 回复 #58 haiou327 的帖子
重新启动后会将主代码回写!
作者: haiou327    时间: 2010-3-9 22:43
标题: 回复 #59 天涯海角1216 的帖子
是每次重启还是安装XORLDR的第一次重启,也就是XORLDR在其它扇区还有一个重复的主引导的备份了。

主引导代码扇区号位置是在伪分区里起始扇区号指定(用WINHEX修改),辅助代码安装位置可以在安装XORLDR时界面上指定了。

[ 本帖最后由 haiou327 于 2010-3-9 22:47 编辑 ]
作者: 天涯海角1216    时间: 2010-3-9 22:46
标题: 回复 #60 haiou327 的帖子
第一次重启就回写了,我是清除CD13后用WINHEX移动的。
作者: haiou327    时间: 2010-3-9 22:56
标题: 回复 #61 天涯海角1216 的帖子
  1. 我是清除CD13后用WINHEX移动的
复制代码

你只是用WINHEX移动0扇区的主引导吧,辅助代码在安装XORLDR时就可以指定,安装XORLDR的辅助代码位置这个选项就是这个功能吧!
作者: 天涯海角1216    时间: 2010-3-9 22:59
标题: 回复 #62 haiou327 的帖子
是的!
但是要找到辅助代码里面的CD13清零,前一个CD13在主引导里。就2个CD13。

[ 本帖最后由 天涯海角1216 于 2010-3-9 23:02 编辑 ]
作者: haiou327    时间: 2010-3-9 23:02
CD13是XORLDR的回写开关
作者: 天涯海角1216    时间: 2010-3-9 23:03
标题: 回复 #64 haiou327 的帖子
第一个是读,第二个是写,版主成功了吗?
作者: haiou327    时间: 2010-3-9 23:05
标题: 回复 #65 天涯海角1216 的帖子
第一个是读,第二个是写  是什么意思

还没测试呢,明天找个虚拟机试试!
作者: 天涯海角1216    时间: 2010-3-9 23:12
标题: 回复 #66 haiou327 的帖子
第一个扇区中的 CD 13 是读取硬盘,写入是将主引导回写0扇区。

如果对拷,就另当别论了!

[ 本帖最后由 天涯海角1216 于 2010-3-9 23:13 编辑 ]
作者: haiou327    时间: 2010-3-9 23:14
安装XORLDR对0扇区进行了两次写入操作
作者: haiou327    时间: 2010-3-10 01:10
刚才测试把主引导代码和辅助代码放在逻辑分区第一分区间距逻辑0扇到后续扇区,再重写MBR为NT5主引导代码,重启引导到分区成功!
把主引导代码和辅助代码放在磁盘剩余扇区从逻辑0扇到后续扇区,重写MBR,建立伪分区,写入80活动标识,启始扇区指向剩余扇区存放主引导代码的扇区号,重启到主引界面选择引导选项回车就失败,提示分区0引导错误,如下图



引导失败,用光盘启动进入系统发现磁盘分区表丢失。
不弄了,下午再来测试。

[ 本帖最后由 haiou327 于 2010-3-10 01:27 编辑 ]
作者: 天涯海角1216    时间: 2010-3-10 07:20
标题: 回复 #69 haiou327 的帖子
我又测试一遍,完全正常呀,你的电脑很奇怪的。
顺序是:0扇区伪分区 →XORLDR主程序→辅助代码




作者: shiyu    时间: 2010-3-10 09:01
老大新想法层出不穷啊,暂时还看不懂,收藏了,以后研究
作者: aikon    时间: 2010-3-10 09:08
正在学习中!谢谢!
作者: 20051234512345    时间: 2010-3-10 12:41
学习啦,LZ辛苦啦。。
作者: haiou327    时间: 2010-3-10 14:08
VM下测试了几次放到剩余扇区不成功
主引导代码就放在剩余扇区的首扇区号

[ 本帖最后由 haiou327 于 2010-3-10 14:24 编辑 ]

disk3.jpg (45.43 KB, 下载次数: 193)

disk3.jpg

disk1.jpg (3.09 KB, 下载次数: 192)

disk1.jpg

作者: 天涯海角1216    时间: 2010-3-10 15:00
标题: 回复 #74 haiou327 的帖子
很奇怪!
我的剩余扇区是2.5M,我把NTLDR,LDRXPE,PLOP.BIN,GRLDR全放在里面,包括XORLDR。

同样版本在分区间距正常吗?
作者: haiou327    时间: 2010-3-10 15:09
在VM下,把主引导代码放在第一逻辑分区间距(EBR)里就成功,放到剩余扇区首扇区和后续扇区都没有引导成功过,主引导代码测试过两个位置剩余扇区首扇区16777152(C0 FF FF 00)和16777154(C2 FF FF 00)都没有成功,进入到XORLDR主界面选择好选项回车屏幕就只出现一个j_光标,其它引导程序没有测试。

看来还是放在EBR更可靠一些

[ 本帖最后由 haiou327 于 2010-3-10 15:11 编辑 ]
作者: 天涯海角1216    时间: 2010-3-10 15:16
标题: 回复 #76 haiou327 的帖子
呵呵,很奇怪的!
我的测试在分区间距和剩余扇区完全正常。
看样子你的XORLDR只能放在第一逻辑分区间距里了。。。
作者: haiou327    时间: 2010-3-10 15:23
我是虚拟机下测试的,用的你二楼提供的XORLDR
作者: 天涯海角1216    时间: 2010-3-10 15:26
标题: 回复 #78 haiou327 的帖子
我是实机测试,也是2楼的XORLDR,我再等待其他人的测试反馈看看。
谢谢版主!!!
作者: haiou327    时间: 2010-3-10 15:44
TNND,刚才又测试了一遍,同一XORLDR的主引导代码和辅助代码放在分区间距扇区就引导成功!
作者: 天涯海角1216    时间: 2010-3-10 15:48
标题: 回复 #80 haiou327 的帖子
我是将主引导代码和辅助代码放在分区间距扇区、剩余扇区都能成功的。
很奇怪的事情
作者: sgw888    时间: 2010-3-10 16:04
有几个问题请楼主解答一下:
1,楼主这样做的好处:  重写主引导不会破坏自己构造的引导程序。  采用逻辑分区的情况下,严格来说是扩展分区表,如果扩展分区表的起始位置被改动,也就是说调整过分区表,并且扩展分区的起始位置被改变,这样,自己构造的引导程序就会失效,对不对???  而且也没有办法轻易的恢复。扩展分区表的结束位置被改动不影响。    采用伪分区的情况下,同样,如果伪分区的起始位置被改动,也会失效,如果不是自己记录下起始位置,也无法轻易恢复对不对????

2, 构造这样的引导有一定的局限性:  蛙哥的F11引导程序不知道是否可以正常运行???? 还有阿文的F10引导程序也不知道是否正常运行???   XORLDR是可以的,这个楼主已经测试过,但XORLDR有它的特殊性,它是根据扇区地址来启动相应的操作系统的。

如果是蛙哥的F11跟阿文的F10都不能用的话,感觉推广意义不大,只适合于个人自己使用,不适合于给朋友,客户构造这样的启动环境。毕竟太烦琐。
作者: 999w    时间: 2010-3-10 16:09
拜师 拜师 。。好羡慕楼主
作者: 天涯海角1216    时间: 2010-3-10 17:31
标题: 回复 #82 sgw888 的帖子
1.你的看法是正确的,试想如果分区表被破坏,安装在扩展分区表的引导不会被破坏,只要用软件恢复主分区表就可以了。
如果认为调整分区,当然引导被破坏,但是如果安装在剩余扇区,则可以安全引导,只需重写伪分区表。
2.如果只占用一个扇区,是可以的, 蛙哥的F11引导程序第二扇区是中文点阵码,如果不需中文显示,则完全可以安装在扩展分区表或剩余扇区。

还有一个引导我没引入,就是之前我介绍的MBLDR,只占用一个扇区,可以实现多引导,且可以随意放在扩展分区表或剩余扇区。http://bbs.wuyou.net/forum.php?m ... 4890&highlight=

至于阿文的F10,我没用过,但是我认为一定可以用MBLDR或蛙哥的F11引导。
谢谢!
作者: Pauly    时间: 2010-3-10 21:27
看了一下天涯海角的思路,很好!

将 XORLDR 安装到剩余扇区的下一扇区,然后把 XORLDR 的 MBR 复制到剩余扇区的第一扇区(包括分区表),再把相应的 CD 13 修改为 90 90(共修改两处,避免 XORLDR 写回 MBR,不同版本在不同的位置),然后在 MBR 安装 NT5.X 或 NT6.X 的引导程序,并创建伪分区指向剩余扇区,这样就可以按 XORLDR 的正常功能启动了

因为一般的分区软件会忽略最后的不足一个柱面的区域,分区调整也不会影响到这里,因此剩余扇区会相对安全,只有在 MBR 改变之后重写一下 MBR 就可以了

[ 本帖最后由 Pauly 于 2010-3-10 21:31 编辑 ]
作者: liujun2000    时间: 2010-3-11 12:25
原帖由 天涯海角1216 于 2010-3-6 04:58 发表
    前言:我们知道,多引导系统和一键恢复等工具均安装在MBR上,占用一个或多个扇区,如果重新安装系统或误操作,都可能会导致MBR损坏使得电脑无法正常启动。
      想法:而分区间距就安全多了,“分区间距” ...

美女每次都搞很复杂 懒得动脑袋了
作者: znfwz    时间: 2010-3-11 13:22
看的迷迷糊糊,不过看起来很不错啊,期待有更详细的方法
作者: haiou327    时间: 2010-3-11 13:49
原帖由 liujun2000 于 2010-3-11 12:25 发表

美女每次都搞很复杂 懒得动脑袋了


如果PAULY的XORLDR主引导代码支持指定安装扇区号位置,用XORLDR实施起来就简单化了。
作者: panman    时间: 2010-3-11 16:24
不错的想法,我回头试试看
作者: 33445566    时间: 2010-3-11 16:44
在虚拟机中测试:分区间距启动成功;建伪分区不能启动
作者: 天涯海角1216    时间: 2010-3-11 18:04
标题: 回复 #90 33445566 的帖子
你用实例1的MBLDR安装试试?
作者: 33445566    时间: 2010-3-11 18:29
标题: 回复 #91 天涯海角1216 的帖子
用实例附件的MBLDR测试。请天涯海角能说说建立伪分区的细节

[ 本帖最后由 33445566 于 2010-3-11 18:32 编辑 ]
作者: 天涯海角1216    时间: 2010-3-11 21:27
标题: 回复 #92 33445566 的帖子
1.把下载的MBLDR的前446字节写入你指定的扇区位置,在MBLDR的6个启动绝对扇区位置写入你各个分区的绝对扇区(16进制)
2.再把0扇区空主分区表写入MBLDR所在绝对扇区号。且激活该位置(写80)
作者: smdky    时间: 2010-3-12 08:40
似乎很高深,有空研究,先支持啦
作者: zqywult    时间: 2010-3-12 11:53
请教LZ:
#01有一句:
“3.复制多扇区MBR代码到分区间距.
用WINHEX分2步将原MBR的复制到你前面对应的分区间距上,
第1步复制MBR的前446字节到你选的分区间距第一扇区偏移00处,
第2步将MBR的后面扇区内容写入到该分区间距的对应位置,注意不要破坏逻辑分区表!!!”

不太明白:为什么要“分2步”?
实际似乎就是:
”用WINHEX将原MBR复制到你选的分区间距第一扇区偏移00处,注意不要破坏逻辑分区表!!!”
即一次把原MBR(一个扇区)复制到你选的分区间距第一扇区,我这样理解对吗??请指教!谢谢!!

[ 本帖最后由 zqywult 于 2010-3-12 11:55 编辑 ]
作者: haiou327    时间: 2010-3-12 12:17
  1. 即一次把原MBR(一个扇区)复制到你选的分区间距第一扇区,我这样理解对吗??请指教!谢谢!!
复制代码
如果把原MBR整一个扇区复制到分区间距第一扇区,这样会覆盖所在扩展分区表的EBR分区表项,这样是绝对不行的,所以分两步来复制,只要复制0扇区的主引导程序代码就可以了,后面的DPT和结束标志55 AA不要复制,因为DPT和结束标志55 AA所在位置正好是分区间距扩展分区表EBR位置,这个不能被破坏。

其实现在PAULY的0.30版XORLDR开始支持这种操作了,主引导代码可以指定安装位置,这样操作就不用这么繁琐了,只要在扩展分区表项第一字节写入80活动标识,取消主分区80标识。

[ 本帖最后由 haiou327 于 2010-3-13 15:03 编辑 ]

xorldr.gif (64.36 KB, 下载次数: 184)

xorldr.gif

作者: zqywult    时间: 2010-3-12 12:50
谢谢楼上haiou327 版主的解释!
但我不明白的是:
LZ还有一句:“第2步将MBR的后面扇区内容写入到该分区间距的对应位置”
二句合起来的意思似乎就是把原MBR(一个扇区)复制到分区间距第一扇区??

啊!可能LZ的第2步“MBR的后面扇区”意思是MBR扇区之后的第2到63个扇区的内容,而不是MBR扇区446字节之后的内容,这样就好理解了!!“分区间距的对应位置”应是扩展分区表之后的位置!!

[ 本帖最后由 zqywult 于 2010-3-12 13:22 编辑 ]
作者: Pauly    时间: 2010-3-12 13:23
标题: 回复 #97 zqywult 的帖子
既然是“将MBR的后面扇区内容写入到该分区间距的对应位置”,那怎么你又说是“二句合起来的意思似乎就是把原MBR(一个扇区)复制到分区间距第一扇区”呢,明明说了不止一个扇区的,呵呵

简单地说就是把 LBA 0-30 扇区复制到分区间距(不妨称之为 EBR)处,但要保留扩展分区表,因此 LZ 将操作分为两步:
第一步复制 0 扇区前446 字节到 EBR;
第二步复制 1-30 扇区到 EBR 下一扇区;

注意,使用 0.30 版的 XORLDR 的话,如果手动指定主代码的安装位置,不要把主代码安装到 EBR 处(因为 XORLDR 会将主分区表复制到扩展分区表的地方从而损坏扩展分区表),可将主代码安装在分区 PBR 上,辅助代码安装在磁盘未分区扇区

[ 本帖最后由 Pauly 于 2010-3-12 13:25 编辑 ]
作者: zqywult    时间: 2010-3-12 14:16
谢谢Pauly大!
我最初理解有误,在#97 我已说了!
作者: gzdiky    时间: 2010-3-15 03:40
标题: 回复 #1 天涯海角1216 的帖子
请指教  这部是怎么操作  将硬盘MBR写入NT5     NT5是什么。我对NT5太陌生请指点




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