| 
 | 
 
wind_fsm兄整理的合盘教程,内容丰富,是难得的资料。 
对基于grub4dos的合盘,我提出了一些建议与wind_fsm兄交流,现整理一些资料补充成一帖,便于和大家探讨。 
先声明,本人几乎没有合盘经验。 
 
原帖由 pseudo 于 2009-5-10 22:42 发表   
好像有两种非常简单的合盘方式楼主还未提及。 
1、grub4dos每个菜单项加载一个PE,每个PE一个iso文件,被仿真为光盘来启动。 
菜单项写法参考官方grub4dos-0.4.4.zip的样例菜单menu.lst里对0PE.ISO、MicroPE.ISO、pmagic.iso的合盘调用 
2、grub4dos每个菜单项加载一个外置菜单,每个PE提供一个外置菜单负责对其本身的加载。 
菜单项的写法参考0PE5.1版的grldr内置菜单。 
其中第二种方法合盘最科学。 
现在许多PE都支持grub4dos引导,也就必然有其grub4dos菜单,这个菜单可以随意命名,随意放置,合盘时调用它最省事。 原帖由 wind_fsm 于 2009-5-11 01:38 发表   
你说的第一种方法未成功加载 ISO 中外置程序,不知是否有解决方法 
第二种方法我还没有看明白,MENU.0PE 好复杂, read、write、checkrange命令还是第一次见,可否告知哪儿有这些命令的详细说明? 
另外先问一下这种方法能够直接调用 ISO 文件中外置程序还是需要把内核和外置程序提取出来使用? 原帖由 pseudo 于 2009-5-11 16:11 发表   
http://docs.google.com/Doc?id=dgs4zmw5_19cwmvb8f4 
这里有checkrange RANGE read ADDR等说明,官方grub4dos-0.4.4.zip里是英文的README_GRUB4DOS.txt。 
 
第一种方法加载iso找外置问题,要看具体的PE是否支持这种整体启动iso的方式,是否允许外置程序放在iso内。这方面问题参见http://bbs.wuyou.net/forum.php?mod=viewthread&tid=137686&highlight= 
对于不支持iso整体启动的,一般可以将外置程序移出iso外,这样才有可能找到。 
例如老毛桃911PE,可在合盘根目录建立MINIPE子目录,放入OP.WIM,其它东西在iso内。WINPE.INI文件里 
MOUN %CurDrv%\MINIPE\OP.WIM,B:,1 
句改为 
MOUN \MINIPE\OP.WIM,B:,1 
也可能不用改,我没试过,凭空说的。 
你在grub4dos合盘菜单中只需加载iso即可,那些SETUPLDR.BIN之类眼不见心不烦。 
凡提供可启动光盘映像iso的pe,一般都可以类似处理。 
 
第二种方法是在合盘菜单中调用各pe提供的菜单,后者由各pe提供,例如MENU.0PE,菜单内容不管复杂简单你都不用操心,菜单名字、位置你都可以改它,如果它是内置于grldr的就设法提取,然后删掉它的grldr。 
合盘要做的事是将个pe的文件原样收集在一起(如果有同目录、同名文件冲突得适当处理),然后在合盘菜单中简单写上一行,例如 
configfile /0PE/MENU.0PE 
即可 
凡支持grub4dos引导的pe,一般都可以这样合盘。 原帖由 guoqqqqqq 于 2009-5-11 16:30 发表   
解释得很详细,学习了。尤其是把外置程序移出iso外,的确是经验之谈。  原帖由 wind_fsm 于 2009-5-12 00:19 发表   
谢谢解释,明白了,http://bbs.wuyou.net/forum.php?mod=viewthread&tid=137686&highlight学习中 
刚才用天琴星座 PE090218 测试了第一种方法,只要把 MINIPE 目录移出 ISO 外,不用修改 WINPE.INI,就可以加载外置了,这样对于使用不同外置目录或文件名的PE合盘可是简单多了,存在一个问题是对于两个使用相同外置目录和文件名的 PE 合并需要修改 PECMD.INI 
这也是在第二种方法中存在的问题,也就是你说的“如果有同目录、同名文件冲突得适当处理”其中一种情况 
第二种方法如果 SETUPLDR.BIN 同目录且同名或者调用的 WINNT.XPE 同目录且同名应该也需要修改 SETUPLDR.BIN 
感觉第二种方法多个子菜单的做法比较好,菜单结构很清楚 
#3已增加引用 原帖由 pseudo 发表  
SETUPLDR.BIN、WINNT.XPE 、WINPE.INI同目录同名也没什么大不了的。 
你放一份公用的,各pe的换个地方放(例如一个pe占一个目录的话,就搬到其目录下),选中这个pe时,将其复制一份覆盖公用的,使之变成专用的,然后再继续就行。 
grub4dos菜单中可以用dd命令进行复制。注意目标文件体积应不小于源文件体积,像WINPE.INI,你事先准备一个足够大的空文件做目标文件。 
如果楼主看过0PE的体系结构,这种空文件就是我说的“容器”。 
chenall大师给出过共用一个SETUPLDR.BIN,动态修改部分字节的方法,可以节省体积,但合盘时不很讲究这点体积,整个覆盖就行,源文件由各pe提供,别管它里面是什么内容。这样对多个pe方式很统一。 
 
--------------- 
哦,忘了,覆盖WINPE.INI的办法不是可写介质的话有点麻烦。 
SETUPLDR.BIN可在内存中修改。 原帖由 haiuyan 于 2009-5-11 09:03 发表   
确是, 如你的0PE, 内容全在0PE下, 合盘方便, 目录清爽! 
但其他PE就不好办, 都是miniPE目录, 合盘需要改好多地方. 
chenall的PE, 还有wxpe目录, 根目录下还有文件, 如果也能改成全在micrope目录下就好了.  原帖由 haiuyan 于 2009-5-11 09:09 发表   
楼主的PE已经定型, 不知道是否可以这样修改一下: 
如0PE一样, 所有的内容全在一个目录下, 如microPE(或CPE), 这样合盘方便, 目录清爽! 
和0PE一样即可以iso启动, 也可以调用一个二级菜单启动. 
当然micrope现在也可以这样两种方式启动, 可现在除了miniPE目录, 还有wxpe目录, 根目录下还有文件, 合盘的话就显的太乱了, 如果能改成上面提议的就好了. 
[ 本帖最后由 haiuyan 于 2009-5-11 09:13 编辑 ] 原帖由 chenall 于 2009-5-11 12:57 发表   
使用合盘的话,使用ISO不是更清爽? 
因为考虑到外置共同,也不想再改了/ 
如果想合盘又要清爽可以考虑使用以下方法. 
因为光盘上的文件一定是连续存放的所以直接启动ISO就可以了. 
只需要WXPE/MINIPE这两个目录和根目录下的文件打包成MICROPE.ISO放在光盘的BOOT目录下. 
外置程序可以放在光盘根目录下或一并打包进去(不推荐) 
启动也简单,只需调用这个ISO启动就可以了. 
title MicroPE 
map /BOOT/MICROPE.ISO (0xff) 
map --hook 
chainloader (0xff)   
0PE与MicroPE、MaxDos合盘菜单,包括了对整个iso、对子菜单等调用方式。 
其中一些语句是为pxe启动用的,仅本地启动时可简化。 
 
 
;Grub4Dos menu.lst  by Pseudo 2009.5.1 
;为加速pxe启动直接调用/0PE/MENU.0PE。想显示gfxmenu菜单,可使用NotExist 
;checkrange 0x21 read 0x8280 && pxe detect NotExist 
checkrange 0x21 read 0x8280 && pxe detect /0PE/MENU.0PE 
checkrange 0x21 read 0x8280 && rootnoverify (pd) 
find --set-root --ignore-floppies /MESSAGE.GZ 
timeout 8 
default 1 
gfxmenu /MESSAGE.GZ 
color blue/green yellow/red white/magenta white/magenta 
title 
fallback 5 
find --set-root /0PE/0PE.ISO || rootnoverify (pd) 
map /0PE/0PE.ISO (0xff) || map --mem /0PE/0PE.ISO (0xff) 
map --hook && chainloader (0xff) 
title         [1]    0PE by Pseudo 
fallback 0 
find --set-root /0PE/MENU.0PE || rootnoverify (pd) 
configfile /0PE/MENU.0PE 
title         [2]    MicroPE by Chenall 
fallback 5 
find --set-root /BOOT/MICROPE.ISO 
map /BOOT/MICROPE.ISO (0xff) || map --mem /BOOT/MICROPE.ISO (0xff) 
map --hook 
chainloader (0xff) 
title         [3]    Windows NT/2K/XP 
fallback 4 
find --set-root --ignore-floppies --ignore-cd /ntldr 
map () (hd0) 
map (hd0) () 
map --rehook 
find --set-root --ignore-floppies --ignore-cd /ntldr 
chainloader /ntldr 
title         [4]    Windows VISTA 
fallback 5 
find --set-root --ignore-floppies --ignore-cd /bootmgr 
map () (hd0) 
map (hd0) () 
map --rehook 
find --set-root --ignore-floppies --ignore-cd /bootmgr 
chainloader /bootmgr 
title         [5]    MAXDOS.IMG 
find --set-root --ignore-floppies /BOOT/MAXDOS.IMG 
map --mem /BOOT/MAXDOS.IMG (fd0) 
map --hook 
chainloader (fd0)+1 
rootnoverify (fd0)  
[ 本帖最后由 pseudo 于 2009-5-12 02:52 编辑 ] |   
 
 
 
 |