无忧启动论坛

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

[原创] 一个简单灵活的多分区热键选择启动MBR

[复制链接]
跳转到指定楼层
1#
发表于 2012-5-16 18:56:52 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
对于多分区选择启动的需要来说,修改主引导记录(MBR)似乎总被看做是个危险,其实 windows 原初的MBR 只有一扇区,早已被分析清楚了,若排除别有用心的或者是太复杂的修改,只是能够简单灵活地使用热键选择启动分区,是会派上许多用场的。修改MBR的应用出过很多,我曾经试用过BenQ的F10键、IBM的F11键、还有个忘了名字的F9键等等好几种,都各有特色,可惜没一个能满足我所有的需要,而占用扇区较多的作品又感觉复杂不好把握,所以自己花时间取舍各家特点制作了一个短小精悍(不到300字节)的MBR,用二年了,感觉效果很好,只是一直没空做选项安装,给别人用也是手动操作。最近编控制台程序有部分内容相近,就顺便做了个简单的安装程序,发到这里,也许有人用得到。可以按热键分别从三个主分区启动,叫做第一/第二/第三启动也好,叫做默认/备用/维护启动也好,很容易明白的。可选启动顺序(无关卷标),可选隐藏维护分区,隐藏分区启动可选隐藏扩展分区。通过组合设置安装选项几乎能够满足各种需要了(仅就多分区选择启动而言)。俺的英文有限,又热衷于简单,所以只能做到下面这个样子。附带的几个批处理只是为了帮助理解(没写说明)。



附件:[attach] HMBR.rar (25.44 KB, 下载次数: 381) [/attach]

=====================追加说明

使用HMBR可以引导最多三个主分区启动,我们不妨称之为[默认/备用/维护]启动,也可以不失一般意义地称为[第一/第二/第三]启动。安装HMBR后再启动时显示提示信息并可以接受二个热键,没有按键则为默认启动,第一个热键转向备用启动,第二个热键转向维护启动。
我们都知道分区表最多有四个分区,有能够激活启动的主分区(NTFS或FAT32)和包含逻辑分区的扩展分区,为了方便我们统一按其顺序编号为1/2/3/4,安装HMBR时可以用B=参数指定[默认/备用/维护]各自从哪个分区启动(缺省B=参数则按顺序自动设置)。举例中的参数B=2,1,4使系统默认从2#分区启动,效果就相当于在磁盘管理器中将第二分区设为活动分区并重新启动。如果在B=参数中错误地指定了一个不能激活启动的分区(比如扩展分区或HMBR不能判断的其它类型)则会显示出错信息不予安装。
隐藏分区的功能如果不是非常必要的话尽量不要使用。HMBR可以设置系统在[默认/备用]启动时隐藏维护分区(也就是在前二个启动中将第三个启动的分区隐藏),也可以设置系统在维护启动时隐藏扩展分区。HMBR允许指定隐藏分区标志,如果你不很了解的话,就用举例建议的标志,隐藏维护分区用$DE,隐藏扩展分区用$1C。
(关于隐藏分区的作用我就不罗嗦了)
如果你只用一个热键以选择另一个分区启动,则另一个热键设为零,设置如下:
如果不需要隐藏分区则[K=热键,0 B=默认,备用,备用],
如果需要在默认启动时隐藏另一个分区则[K=0,热键 B=默认,默认,维护]
有二点需要特别注意:
◎ 安装了HMBR也就设定了各个顺序的启动分区,那么在磁盘管理器中再设什么活动分区就没有意义了(也没有作用)。
◎ 最好在原初的NT5MBR下安装HMBR,如果已经安装了其它种类修改过的MBR(特别是还有隐藏分区)请不要使用HMBR。

在此感谢前行者们开发出的各种修改MBR的杰出作品,给我们启迪,使我们受益!

==============勘误

老婆大人闲着没事忽然看起我的帖子,没看10秒就问“什么叫 host keys ?”,俺一看清楚她指的地方,立马内急跑厕所。
实在懒得因此再费事,却又对不住看帖回帖的同好们,顺便另改点什么呢?图形界面俺是不想做了,这么个小程序不够独立成形的,以后也许会附加到别的什么上面去;再加个选择硬盘的参数好像也不值得,反正省不了BIOS的事儿,变了启动硬盘再装也不多麻烦;我就给-R开关附加个文件选项吧,缺省是恢复NT5MBR,也可以指定其它MBR文件(不多于440字节,NT5/6的MBR都是440字节),打包里另加了个NT6MBR.BIN,不用可删。其实有BOOTICE那样大老级的工具在手边,这也多余,姑且算是给自己的笔误找台阶吧,呵呵。以后不改了。


==========不知俺怎么搞的,前后二个打包文件掉个了,应该 HMBR.7Z 是旧的,HMBR.RAR 是新的,不好意思。

[ 本帖最后由 2012ggbb 于 2012-5-29 21:03 编辑 ]

HMBR.7Z

24.33 KB, 下载次数: 329, 下载积分: 无忧币 -2

2#
发表于 2012-5-16 19:04:45 | 只看该作者
好东西,感谢楼主分享。
回复

使用道具 举报

3#
发表于 2012-5-16 19:39:38 | 只看该作者
路过,表示支持一下.exe
回复

使用道具 举报

4#
发表于 2012-5-16 21:59:19 | 只看该作者
这个好!支持!

感谢分享!
回复

使用道具 举报

5#
发表于 2012-5-16 23:38:49 | 只看该作者
留名学习。。。。。。
回复

使用道具 举报

6#
发表于 2012-5-17 00:09:50 | 只看该作者
高手啊   下载收藏
回复

使用道具 举报

7#
发表于 2012-5-17 00:17:01 | 只看该作者
无忧有您更精彩...
回复

使用道具 举报

8#
发表于 2012-5-17 07:34:45 | 只看该作者
楼主,您好!
B=order1,order2,order3
h=$DE,$1c
K=0,$3002
请详细解释一下是什么意思
另外,能否发一份中文帮助?
回复

使用道具 举报

9#
 楼主| 发表于 2012-5-17 08:05:28 | 只看该作者
感谢各位支持!

◎ 没写说明:有这种多分区热键选择启动需要的人,应该是已经具备了分区启动知识,很容易理解相关含义的。(更主要是俺的文笔太差)
◎ boot order:共有四个分区,order1/2/3是指定默认/备用/维护各自是从哪个分区启动(当然必须是主分区)。
◎ H=隐藏分区标志,默认的是不隐藏。各家隐藏分区标志不尽相同,这里允许自己指定。建议隐藏启动分区用$DE(显示EISA配置),隐藏扩展分区用$1C。
◎ K=二个热键,可以是F1/F2.../F12,或者是其它按键的键盘扫描码(可以自己去搜查),如果只用一个则另一个设定为零。

再次感谢!
回复

使用道具 举报

10#
发表于 2012-5-17 15:18:17 | 只看该作者
谢谢楼主提供了一个简单、实用的主引导程序。
偶稀饭。
回复

使用道具 举报

11#
发表于 2012-5-17 18:06:27 | 只看该作者
好东西,感谢楼主分享。
回复

使用道具 举报

12#
发表于 2012-5-17 21:58:52 | 只看该作者

关于参数还是没有弄得很明白。

b=2,1,4,到底什么意思?如何定义隐藏分区的标识?
回复

使用道具 举报

13#
发表于 2012-5-17 22:23:49 | 只看该作者
好东西啊,谢谢分享。。楼主应该抽空写一下说明。谢谢。。
回复

使用道具 举报

14#
 楼主| 发表于 2012-5-18 09:31:57 | 只看该作者
在前面追加了简要说明,感谢支持,欢迎批评。
回复

使用道具 举报

15#
发表于 2012-5-18 09:42:09 | 只看该作者
主要是来学习下,西谢谢,楼主的分享
回复

使用道具 举报

16#
发表于 2012-5-18 21:36:26 | 只看该作者
谢谢楼主分享作品,支持原创!
回复

使用道具 举报

17#
发表于 2012-5-18 21:36:46 | 只看该作者
谢谢楼主分享作品,支持原创!
回复

使用道具 举报

18#
发表于 2012-5-19 09:17:40 | 只看该作者
启动能加入对硬盘的选择。比如2个硬盘的,可以有个参数选择是安装热键到那个硬盘
回复

使用道具 举报

19#
 楼主| 发表于 2012-5-19 11:29:31 | 只看该作者

回复楼上

说的好。以前给朋友们用一直都是手动操作,这次写安装时也考虑到了你说的这点,读写指定的硬盘虽然容易,可一想到要加个参数俺就犹豫了,一方面用得不多(其实是我很少用),而需要的时候也不很麻烦。我热衷简单都快成偏执狂了,呵呵。
现在想想这个参数还是有必要的,既然要发出来就不能只是从自己的习惯出发,抽空再加上吧。多谢指点。
回复

使用道具 举报

20#
发表于 2012-5-19 16:19:18 | 只看该作者
想研究学习MBR,能不能提供汇编代码?
回复

使用道具 举报

21#
发表于 2012-5-27 12:58:27 | 只看该作者
要是提供一个图形化的安装界面就方便多了
回复

使用道具 举报

22#
发表于 2012-5-28 14:41:48 | 只看该作者
这个好!支持!

感谢分享!
回复

使用道具 举报

23#
 楼主| 发表于 2012-5-28 14:44:27 | 只看该作者
我在前面的追加说明中提到“隐藏分区的功能如果不是非常必要的话尽量不要使用”,这一句可以展开来说一说。首先请使用者放心,HMBR在隐藏分区处理上没有bug,我这样说的原因是个人始终认为改变分区属性本来就不应该是MBR干的活儿。MBR是最先运行的主引导程序,内容其实很少,确定有且仅有一个活动分区→装入活动分区引导程序(PBR)→检查签名(55AA)是则交权否则死循环。对于PBR以及后续更多程序来说,从MBR(或前驱者)继承的生态环境应该是逐步进化演变的,而且从原理上说必须是谁改变谁负责。如果把分区表看作是一份订单,那么MBR只是订单的执行者,而不应该对订单有改动。我们修改MBR使其能够根据热键改变活动分区,这勉强还算是没过分超出MBR份内可做的事,如果再让MBR根据不同的启动选择而改变分区属性(隐藏)则很可能对系统的一致性造成隐患。举例来说:如果你安装了一个设置隐藏分区的MBR,万一哪天忘了这个茬儿(或者换了一个爱折腾的主),没有恢复就用了另一个改变分区属性的什么程序,再启动时,MBR没有多少容错纠错能力,肯定傻眼,说不定给你撂下一个什么样的烂摊子,我就这么试过IBM的R&R。所以,如果一定要让MBR设置隐藏分区,那么或者安装好了之后就规规矩矩地用下去,不需要也不会折腾;或者是自己对相关问题知识都很清楚,能够有把握不出毛病。
20楼问能否提供汇编代码,让我很惭愧,俺不过是研究参考了前人开发的程序做点取舍而已。我用过的这类程序中,仅就个人认识和需要而言都有些不满足,比如有的需要检查指定卷标,有的必须固定顺序,有的不允许没有扩展分区;也有的我认为存在原则问题,比如连检查签名都省掉了,原初MBR中有些诸如检查对比CHS和LBA模式、磁盘读取错误重试等部分可以省掉,因为我们肯定是要在系统安装之后才会修改MBR,可以不必完全考虑原初MBR需要面对的各种可能的环境(这也许是为什么安装操作系统会重建MBR的原因之一),不支持扩展INT#13的也可以不考虑(仅对要如此修改MBR的正常应用来说),而且若真有硬盘读取错误恐怕该做的是修换而不是多试几次,如果省掉这些,那么检查签名这最后一关更是不可推卸的责任了;另外也有在细节上不很周到的,比如有的提示不换行,后面再遇到什么信息就跟着显示,等等。总之,我写的HMBR如果说有什么特点,也只是体现个人的喜好,土八路游击队罢了。而且说实在的,简单灵活即是优点,也是隐患滋生地,除了前面说的隐藏分区问题之外,无关卷标和任意顺序等虽然方便,但行家肯定会找到批评的理由,我发到这里的本意也不过是给同好提供一个选择,我还用过无扩展分区的,编了个三热键四启动不隐藏的MBR,大同小异,只是自己顺手,用途十分有限,个别有要的我也不给选择,只是按分区顺序并且固定F9/F10/F11键用批处理debug写一下完事。要“学习研究MBR”莫过于找一篇原初MBR分析文章(网上有),而MBR大多都很短小,反汇编就可以了,HMBR区区几十条指令,有兴趣很快就分析透,俺没有任何个人信息或保留权利。21楼朋友说到图形安装界面,说得对,可俺没编,真是真是不好意思,:)。
回复

使用道具 举报

24#
发表于 2012-5-29 09:40:09 | 只看该作者
支持一下楼主,作品非常不错,建议弄一个图形安装界面,毕竟99%是新手
回复

使用道具 举报

25#
 楼主| 发表于 2012-5-29 20:54:36 | 只看该作者
前面勘正一处笔误,顺便附加个从文件恢复MBR的选项。
回复

使用道具 举报

26#
发表于 2012-11-7 14:16:52 | 只看该作者
用几个月了,确实不错,感觉这个兼容性最好。并且只是写入了mbr引导程序,硬盘上不需要添加任何非系统的引导文件就可引导系统启动。nt5.x引导用 bootsect /nt52 x:  nt6.x引导用 bootsect /nt60 x:  x代表要引导的分区盘符。不知道Linux类和Mac类的操作系统能不能引导?
回复

使用道具 举报

27#
发表于 2012-11-7 22:08:20 | 只看该作者
谢谢楼主的新努与用心!
想请教一下!
1.如果是现在新的UEFI(GPT)分区.不知是否将来会考虑其功能(因为新式的笔记本都是GPT分区)
2.热键启动分区时.是否会显示隐藏的分区(ex:$1c -> 按热键后 -> $0c)
3.是否可以在x64下执行

谢谢!
回复

使用道具 举报

28#
发表于 2012-11-8 15:33:55 | 只看该作者
学习。。。。。。。。。。。。。。。。。。。。
回复

使用道具 举报

29#
发表于 2012-11-9 11:47:43 | 只看该作者
好东西,留名,待研究。
回复

使用道具 举报

30#
发表于 2012-11-9 11:57:57 | 只看该作者
实用的主引导程序。
感谢!感谢!
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 07:50

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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