无忧启动论坛
标题:
大家来总结bootmgr调用IMG启动软盘镜像最快捷的方式?
[打印本页]
作者:
hhh333
时间:
2010-10-3 18:47
标题:
大家来总结bootmgr调用IMG启动软盘镜像最快捷的方式?
如果有很多IMG文件,每个文件要做成BCD中的一个菜单项,我一直没找到比较好的方法,大家有什么高招?当然bootmgr或ntldr能直接IMG就好了,好象似乎没这个功能。
我看到一些方式,在光盘启动方式下:
bootmgr-->bcd-->easyboot-->为每个IMG单独做菜单再改名,起码要2个文件
bootmgr-->bcd-->easyboot中调用grldr的文件(2k)-->grldr-->为每个IMG单独做一个内置菜单再改名,起码要也要2个文件。
硬盘或USB盘中:
bootmgr-->bcd-->grldr.mbr-->grldr-->为每个IMG单独做一个内置菜单再改名,起码要也要2个文件。
bootmgr-->bcd-->avldr.bin-->avlgo.sys-->为每个IMG单独做成一对的avldr.bin(改内容调用改名的avlgo.sys)和avlgo.sys(改其中内容或重新装配后改名),起码要也要2个文件。
bootmgr-->bcd-->wee-->为每个IMG单独做一个内置菜单再改名,由于可以直接调用wee,因此只要一个文件。
各文件大小
grldr.mbr 9kb-->grldr 2xxkb....................2xxkb(合计,下同)
avldr.bin 8kb-->avlgo.sys 138kb..............146kb
eb-loader 2kb-->ebboot.ebz 22kb..............24kb
eb-loader 2kb-->grldr 2xxkb...................2xxkb
wee 31---->grldr 2xxkb...................2xxkb
>>而且从测试的情况看,如果从硬盘启动avldr也许还能够行(经测试fat32分区有时不行),但USB盘启动时多数是不成功的,wee不支持光盘,因此要能够适应光盘、硬盘和USB盘启动的只有bootmgr-->bcd-->
grldr.mbr
(注意:光启与硬盘启动不是一个文件)-->grldr-->IMG这一个途径!其中grub4dos中自带的grldr.mbr是不支持光盘的,因此要另外制作,这又分如下两种情况:
1.如果调用子目录下如BOOT下的grldr,这个grldr必须改名为xxxxxxxx.xxx的形式,再按上述easyboot中调用grldr的文件(2k)进行修改得到。(这个文件应该来源于以前的XP启动安装光盘,默认调用i386\setupldr.bin,好象只能改字母,但不能改长度,目前我还没有找到如何修改任意长度目录下的任意文件的方法)
2.如果调用根下的可以用mkiso生成用grldr作一启的光盘,然后提取其引导存为grldr.mbr
综上所述,如果从硬盘或U盘启动,应该用wee是最精简的!
我目前是这样处理的:所有DOS工具均由一个grldr菜单来处理,命名为DOS工具集菜单H3_GRDOS.LST,grldr更名为H3_GRDOS.BIN,将wee63更名为H3_GRDOS.MBR,都放到BOOT目录下,其中H3_GRDOS.MBR的内置菜单如下:
timeout 1
default 0
title 1. Grub4dos for DOS Tools
find --set-root /BOOT/H3_GRDOS.BIN /BOOT/H3_GRDOS.BIN
复制代码
H3_GRDOS.BIN的内置菜单如下:
pxe detect
configfile /BOOT/H3_GRDOS.LST || configfile /boot/h3_grdos.lst
default 0
timeout 1
title find /BOOT/H3_GRDOS.LST,/boot/h3_grdos.lst
errorcheck off
find --set-root --ignore-floppies --ignore-cd /BOOT/H3_GRDOS.LST && configfile /BOOT/H3_GRDOS.LST
errorcheck on
commandline
title commandline
commandline
title reboot
reboot
title halt
halt
复制代码
这样方便多种启动方式来调用它。
syslinux/isolinux--->直接调用kernel /BOOT/H3_GRDOS.BIN
ezboot--------------->直接调用run /boot/h3_grdos.bin或通过2kb的启动文件转h3_grdos.bin
bootmgr------------->光启时,在BCD中通过2kb的启动文件转h3_grdos.bin
硬盘或U盘启动时,在BCD中调用\BOOT\H3_GRDOS.MBR
这样要么改BCD文件要么准备两个不同的BCD文件才能完成用bootmgr从不同设备启动。
ntldr------------------>在boot.ini中直接调用C:\BOOT\/H3_GRDOS.BIN="DOS tools"
20111017再次来总结如上。
[
本帖最后由 hhh333 于 2011-10-17 12:52 编辑
]
作者:
sgw888
时间:
2010-10-4 10:13
好像没有比这更好的方式了吧。
作者:
zhaohj
时间:
2010-10-4 15:43
先做一个通用的启动IMG的grldr启动菜单,如RUNIMG.LST,放在/IMG目录下
map --mem /IMG/DOS001.IMG (fd0) ;注,这里所有img最好统一长度
map --hook
chainloader (fd0)+1
rootnoverify (fd0)
------------
map /IMG/RUNIMG.LST (rd)
write --offset=0x0f (rd)+1 DOS002
configfile (rd)+1
也就是直接修改内存法。
--------------
如果启动IMG用内置菜单grldr改名为IMGDR,内置菜单在(md)4+1中(启动IMG肯定在一个扇区)
也可以用上面方法修改之,(rd)+1改成(md)4+1。
PS:仔细看了一下,不合你的要求,你是BOOTMGR启动,BOOTMGR无法把变量传递给GRLDR,晕,不知道BCD菜单选中后返回值在内存中的位置,如果知道就好办了。
[
本帖最后由 zhaohj 于 2010-10-4 15:55 编辑
]
作者:
tuxw
时间:
2010-10-5 20:36
2个文件已经很少了,还想怎么少啊?1个文件?
除了在光盘上用grldr直接引导,还有什么方法只用一个文件的?在硬盘上1个文件是不行的,因为写grldr.mbr实际上也是一个文件,只是不以文件的形式存在而已
作者:
chenall
时间:
2010-10-5 21:01
嘻嘻,可以研究一下bootmgr的启动过程.
不知它会不会像NTLDR一样把参数放在内存的某个位置,如果是的话只要找出来,用一个GRLDR/MENU.LST就可以启动由BCD菜单里面指定的文件了.
作者:
dvd008
时间:
2010-10-5 21:20
+F6模块,菜单里面可以加很多IMG
作者:
94first
时间:
2011-10-1 19:46
这个HDD的文件是哪个生成的呀
EasyBoot 改名后不行
我引导GRUB也没有成功
TM截图未命名.jpg
(13.44 KB, 下载次数: 54)
下载附件
2011-10-1 19:49 上传
像图中这样设置引导GRUB也不成呀
不知道为什么
引导后成这样了
00.jpg
(11.59 KB, 下载次数: 55)
下载附件
2011-10-1 19:49 上传
哪位大大能够给个详细的教程 呀
一个相应的实例也成
[
本帖最后由 94first 于 2011-10-1 19:49 编辑
]
作者:
hhh333
时间:
2011-10-17 11:56
见到有人在讨论这个问题,因此将此帖重新整理。
作者:
2011Sunday
时间:
2011-10-17 14:39
标题:
回复 #8 hhh333 的帖子
很感谢你提供这些方法和思路,我昨天已经解决了这个问题,是用BOOTMBR转到最新版的EZB生成的EZLDR上面,然后有EZLDR自己判断光盘或者U盘,然后分别引导**.EZB.ezb或者**.EZB,其实;两个问价是一样的,只是名字不一样,我们自己生成的是EZB文件,然后复制一份在后面加上.ezb放于统一目录 即可正常引导。
作者:
2011rmm
时间:
2011-10-17 18:53
没有看明白 能出个 具体教程吗
作者:
2011rmm
时间:
2011-10-17 21:45
这个命令这么写行吗 bcdw boot/ghostxp.img
还望 有人给解释下 行吗
我只想 量产U盘后 能按A自动装系统
我的这个GHOSTXP.IMG文件 放在别的 系统盘里改一下 经过U盘量产 可以按A装系统的 不知道这个怎么改
欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/)
Powered by Discuz! X3.3