分享

总结一下bootmgr的引导模式(引导dos,nt5,nt6,grub4dos等)

 用勿龍潛 2011-09-17
总结一下bootmgr的引导模式(引导dos,nt5,nt6,grub4dos等)
2011-09-12 02:20

 

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)

这个很常见了,我以前也写过为了完整性这里再重复写一下。其实很简单,创建{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)

直接的引导可以参见第二部分。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盘启动的时候也有问题。相关文章在这里照着设置就可以了。如果加入grub4dos后,光盘又有新问题,比如,允许小写字母,禁用Joliet,文件名格式Max(221)等。感谢crow网友的讨论, 在这里可以看到详细的讨论。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 全屏 打印 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多