您的当前位置:首页正文

多系统启动

2020-03-01 来源:帮我找美食网


将微软启动折腾到底,构建DOS-XP-2003-Win7多启动菜单

谨以此帖献给“折腾党”们。

部分人因为工作需要,或纯属为了折腾,安装了Windows XP 、Windows 2003 Server 、Windows 7多系统,甚至还有DOS、linux等。这个帖子是介绍如何折腾微软系统启动菜单的。

电脑安装了Win7、2003、XP系统后,就会出现二级菜单。第一级是“Win7/早期版本的Windows”,当选择菜单项“早期版本的Windows”后,弹出第二级菜单“Win2003/XP/DOS”,如图:

于是就会有人想是否可以把两级菜单合二为一,变成一级菜单。答案是肯定的。本帖附件已经提供修改好的程序和批处理

一、关于微软启动菜单的基本知识

我们知道,Win7、2003、XP多菜单加载程序是这样的:MBR→bootmgr→BCD一级菜单→ntldr→boot.ini二级菜单。当二级菜单boot.ini只有一个系统启动条目的话,就不会显示二级菜单,直接引导boot.ini里指示的系统。我们可以用这个特性合并菜单。即BCD一级菜单里有并列Win7、ntldr1、ntldr2、ntldr3...等启动条目,ntldr1对应boot1.ini,ntldr2对应boot2.ini...

因为ntldr程序里默认启动boot.ini,如果将boot.ini改名了,ntldr就会找不着,不

能正确引导系统。因此如果boot.ini改了名,ntldr里面的路径参数也得跟着改。

二、修改合并二级菜单

1、修改ntldr

ntldr怎么改呢?用WinHex或UltraEdit之类的二进制编辑软件,把ntldr复制几份分别修改并重命名。

值得注意的是,由于字节长度限制,boot.ini改名后不能超过8个字符。如改成2003.ini、1234.ini、12345.in、123456.x、12345678等都可以,但不能改成boot1.ini,字符数超了。

2、做单项菜单。将boot.ini复制几份,如何分别修改,将多菜单条目改为单条目,如何按ntldr里的名称命名。如图:

附件提供了3个修改过的ntldr,分别是ntl03、ntlxp和ntlhy,分别对应2003.ini、xpxp.ini和yjhy.ini,其实ntl03、ntlxp和ntlhy可以随意命名,名字的长度没有限制(理论上),而2003.ini、xpxp.ini和yjhy.ini不能再改名称,要改就得修改ntldr,当然,2003.ini等里面的菜单条目的内容可以改的,只要参数得当,就能引导相应的系统。

三、修改一级菜单

将修改好的“ntldr和boot.ini”复制到硬盘的启动分区,在Win7系统下用管理员身

份运行CMD命令行。

1、先删除BCD菜单中“早期版本Windows”条目,运行下面的命令:

bcdedit /delete {ntldr} /f /cleanup

2、加入Win2003启动项。依次运行命令:

bcdedit /create /d \"Win2003 Server\" /application bootsector

bcdedit /set {id} device \"boot\"

bcdedit /set {id} path \"\\ntl03\"

bcdedit /displayorder {id} /addlast

3、加入2003、XP系统的启动条目。方法参考上面的命令。

注意:{id}的代码要按实际值输入,当运行

bcdedit /create /d \"Win2003 Server\" /application bootsector命令后就会给出一个ID数值的。

不过大家不要为此命令行烦恼,附件提供了删除“早期版本的Windows”的批处理del-ntldr.cmd 和加入启动项的批处理bcd-2003.cmd、bcd-xp.cmd等,在Win7系统下用管理员身份运行即可。批处理还提供了一个“卸载”启动项条目的功能。

修改完成重启后,多启动菜单可出来了。

附件:

http://u.115.com/file/f3148651cc#

BCD多启动菜单构建.rar

因篇幅问题不能全部显示,请点此查看更多更全内容