bootmgr和grub4dos都是很好启动管理器,两者都能相互调用,功能互相补充。grub4dos很强大,讲怎么用它引导的文章已经很多了,这里就不讨论了。下面讲一下通过bcdedit编辑bcd文件来实现bootmgr引导dos,nt5(xp/xpe包括winpe1.X版本),nt6(vista/2008/win7包括winpe2.0及以后的版本,wim和vhd文件),和grub4dos(以及linux和iso文件)等。google了一下,网上似乎没有较全面的应用文章,这里总结一下常用的几种,方便初学的网友,都是很基础的东西。
以用bootmgr为主引导程序的启动光盘为例,假设在C:\Downloads\pe\dvd目录,此目录下必须有bootmgr程序和boot文件夹及font文件,要想显示中文,需要还需要mui文件,设置bcd文件路径
set bcd_path= C:\Downloads\pe\dvd\BOOT\bcd
1 bootmgr引导dos启动盘
bootmgr不能直接引导dos启动盘,必须借助于bootsector模式通过其他的途径来解决。比如,要引导\boot\dos.img 文件,我们可以借助easyboot,新建一个菜单,命令为run dos.img。这样在easyboot的ezboot文件夹下会生成2个文件,一个2048字节大小loader.bin文件,一个cdmenu.ezb的文件。将此两文件分别改名为dos.bin和dos.ezb,连同启动盘dos.img一同放入\boot文件夹。运行
bcdedit /store %bcd_path% /create /d "启动 DOS" /application bootsector
//返回:项 {41ac9c34-1fd8-11e0-8355-a4badbfc7822} 成功创建。请自行更改GUID。
bcdedit /store %bcd_path% /set {41ac9c34-1fd8-11e0-8355-a4badbfc7822} device boot
bcdedit /store %bcd_path% /set {41ac9c34-1fd8-11e0-8355-a4badbfc7822} path \boot\dos.bin
bcdedit /store %bcd_path% /displayorder {41ac9c34-1fd8-11e0-8355-a4badbfc7822} /addlast
这样便可以即由bootmgr引导dos启动盘了,easyboot设置的时候可以全用黑色,默认停留时间1秒,这样启动的时候就不会跳出来easyboot的菜单,看起来就像bootmgr直接进入dos一样。当然ezboot可以用grub代替,后面会讲。
2 bootmgr引导xp/xpe包括winpe1.X版本(nt5)
这个很常见了,我以前也写过 https://www.wingwy.com/archives/2010_07_613.html 为了完整性这里再重复写一下。其实很简单,创建{ntldr}项,配置device和path一下就可以了。
bcdedit /store %bcd_path% /create {ntldr} /d “安装 Windows XP”
bcdedit /store %bcd_path% /set {ntldr} device boot
bcdedit /store %bcd_path% /set {ntldr} path \i386\SETUPLDR.BIN
以上是安装xp的例子启动xp和xpe的引导类似。
3 bootmgr引导vista/2008/win7包括winpe2.0及以后的版本,wim和vhd文件(nt6)
直接的引导可以参见 https://www.wingwy.com/archives/2008_08_140.html 第二部分。bootmgr本来就是nt6时代的产物,各种引导都是大同小异,比如引导wim文件(pe2.0及以后版本)
bcdedit /store %bcd_path% /create {ramdiskoptions} /d "启动 Windows 7 PE"
bcdedit /store %bcd_path% /set {ramdiskoptions} ramdisksdidevice boot
bcdedit /store %bcd_path% /set {ramdiskoptions} ramdisksdipath \boot\boot.sdi
bcdedit /store %bcd_path% /create /d "启动 Windows 7 PE" /application osloader
//返回:项 {cb942a73-1fe1-11e0-8355-a4badbfc7822} 成功创建。请自行更改GUID。
bcdedit /store %bcd_path% /set {cb942a73-1fe1-11e0-8355-a4badbfc7822} device ramdisk=[boot]\boot\winpe.wim,{ramdiskoptions}
bcdedit /store %bcd_path% /set {cb942a73-1fe1-11e0-8355-a4badbfc7822} path \windows\system32\boot\winload.exe
bcdedit /store %bcd_path% /set {cb942a73-1fe1-11e0-8355-a4badbfc7822} osdevice ramdisk=[boot]\boot\winpe.wim,{ramdiskoptions}
bcdedit /store %bcd_path% /set {cb942a73-1fe1-11e0-8355-a4badbfc7822} systemroot \windows
bcdedit /store %bcd_path% /set {cb942a73-1fe1-11e0-8355-a4badbfc7822} winpe yes
bcdedit /store %bcd_path% /set {cb942a73-1fe1-11e0-8355-a4badbfc7822} detecthal yes
bcdedit /store %bcd_path% /displayorder {cb942a73-1fe1-11e0-8355-a4badbfc7822} /addlast
bootmrg引导vhd文件也是类似,将device ramdisk改为device vhd 就行了,比如
device vhd=[boot]\winpe\pe.vhd
当然,别忘了其他的配置项。
4 bootmgr引导grub4dos以及linux和iso文件
这个也可以通过bootsector模式来实现,bootmgr-〉grldr.mbr-〉GRLDR
bcdedit /store %bcd_path% /create /d "GRUB4DOS" /application bootsector
//返回:项 {366d296e-1fdf-11e0-8355-a4badbfc7822} 成功创建。请自行更改GUID。
bcdedit /store %bcd_path% /set {366d296e-1fdf-11e0-8355-a4badbfc7822} device boot
bcdedit /store %bcd_path% /set {366d296e-1fdf-11e0-8355-a4badbfc7822} path \grldr.mbr
bcdedit /store %bcd_path% /displayorder {366d296e-1fdf-11e0-8355-a4badbfc7822} /addlast
这一步实现后,一切都好办了,bootmgr可以引导linux以及iso文件了,当然也可以这样引导dos启动盘。
这里的例子是光盘,其实硬盘和u盘启动也是类似的,只需要注意device选项,将 device boot 改成对应的盘符就可以了,比如 device partition=C: 。 相应的路径[boot]\boot要改为[C:]\boot 。光盘的引导文件可以直接用win7安装盘提取的bif文件,硬盘和u盘可以用bootsect强制写入引导信息
bootsect /nt60 c: /force /mbr
另外,很多网友在多启动光盘的合盘设置以及u盘启动上遇到了麻烦,这些问题自己多试几次倒也可以解决。不过我想在这里写一下,免得大家在同一个问题上无谓的浪费时间。呵呵,如果有要想折腾的网友也可以自己试一下,非常欢迎你能反馈一下情况,很多问题没有经历过确实不懂。
最后,光盘有xp安装的时候ISO的不能用UDF格式,ultraiso写入u盘启动的时候也有问题。相关文章在这里 https://www.wingwy.com/archives/2011_01_801.html 照着设置就可以了。如果加入grub4dos后,光盘又有新问题,比如,允许小写字母,禁用Joliet,文件名格式Max(221)等。感谢crow网友的讨论, 在这里 https://www.wingwy.com/archives/2010_07_672.html/comment-page-4#comment-4667 可以看到详细的讨论。
我做了一个多启动入口的光盘模板,里面的入口如下图
不过这只是一个模板,考虑到大小,里面只有dos入口是可用的,大家直接添加就可以了。
下载地址:http://u.115.com/file/f2ebfedce0
若有问题,或是地址失效后请留言。
2011/1/17 另附上crow网友的作品,非常强大的启动盘,有问题大家可以看他的readme.txt
http://u.115.com/file/f091b11b42
2011/10/29更新crow网友的启动盘地址:http://bayfiles.com/file/19tD/BiOisL/CrowSPE-NiO.iso.rar
你好,不知道你现在还有这个多启动入口的光盘模板,有的话,发我邮箱吧~
不好意思,这个很老了,没保留。现在都u盘了。
pe3.0和win7启动菜单怎么合在U盘?
不太明白你的意思,pe3.0和win7启动菜单是合在bcd文件里面的,然后这个bcd可以通过bootmgr调用,而bootmgr可以放到u盘来启动。
打上面的命令WIN7不用下载BOOTSECT.EXE工具了吗?
BOOTSECT.EXE是win自带的,win7应该也有。
您好!我按您说的方法编辑了bcd文件,ZH-CN文件夹内有mui文件,放置在boot文件夹内了,在虚拟机测试的时候汉字显示不出来,显示的是问号,这是怎么回事,求教。
你好,以前好像有个网友专门研究过这个,现在翻不到了,给你google了一下你看看
http://wenku.baidu.com/view/d989267a02768e9951e73888.html
谢谢,汉字不显示问题解决了,但又出现了新的问题。
我用上面引导dos启动盘的方法引导了深山红叶dos工具箱的img镜像,弹出了提示:
Start booting from CD…
Error loading image: DOS.EZB
这又是怎么回事?
你好,你看看是不是这个问题
https://www.wingwy.com/archives/2011_01_801.html
试了,不是这个问题。这个提示是在选择了启动菜单里的dos工具箱后出现的,感觉应该是easyboot制作菜单的时候出问题了。
想重新制作一个菜单,又提示“引导映像文件E:\EasyBoot\disk1\ezboot\DOS.img是压缩格式”。。。
把img映像替换成您制作的多启动入口里的img镜像的话,可以正常启动了,难道深山红叶的dos工具箱不能用这种方式引导?
知道问题在哪了,我下载的那个dos工具箱PBR有问题,用bootice也没办法导入PBR,重新下载了一个其他版本的dos工具箱,现在没问题了,谢谢您的耐心指导!
不客气,解决问题就好~
我只想搞个能启动wingwy-pe3.1-v2-fix2和win7 x64安装盘的的iso,比较莱,看半天看不懂
你好,你直接下载这个iso,覆盖win7安装盘的文件,加入wingwy-pe3.1-v2-fix2中\winpe目录就可以了。