无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 4555|回复: 19
打印 上一主题 下一主题

PE合盘中的配置文件合并

[复制链接]
跳转到指定楼层
1#
发表于 2010-9-5 10:39:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
    在PE合盘时,往往在磁盘上会有两个以上的PE,每一个PE在根目录下都会有一个对应的配置文件,如果能够将将配置文件合并成一个配置文件,将会使根目录更加干净。
    在此以比较通用的GRUB4DOS为例进行分析:
    首先将grub引导通过MBR写入主引导,然后将grldrmenu.lst拷贝到D盘(扩展分区),menu.lst内容如下:
timeout 10
default 1
find --set-root /boot/fonts.gz
fontfile /boot/fonts.gz
splashimage /BOOT/BACK.XPM.GZ
foreground ffffff
outline

title >最小化预封装的XP系统
rootnoverify (hd0,0)
makeactive
chainloader +1

title >启动本机 XP 操作系统
rootnoverify (hd0,1)
makeactive
chainloader +1

title >启动 Windows 7系统
rootnoverify (hd0,2)
makeactive
chainloader +1

title >启动 精简优化WinPE
find --set-root /menu.lst
map +1 (hd0)
chainloader /boot/ldjanyi
boot

title >启动 HHH WinPE
find --set-root /menu.lst
map +1 (hd0)
chainloader /boot/ldhhhpe
boot

title >启动 HHH WinPE 2003
find --set-root /menu.lst
map +1 (hd0)
chainloader /boot/ldhhh2k3
boot

title >启动 WinPE 2003
find --set-root /menu.lst
map +1 (hd0)
chainloader /boot/ldpe2k3
boot

title >启动MAXDOS工具箱V7.0
map --mem /boot/maxdos7.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title >DOS 分区工具 DISKGEN
map --mem /boot/diskgen.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title >清除XP/2000/2003密码
map --mem /boot/password.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

title >运行效率源磁盘检测器
map --mem /boot/xly.img (fd0)
map --hook
chainloader (fd0)+1
rootnoverify (fd0)

    我的硬盘分了三个主分区,第一主分区5G,专门用于系统封装,第二主分区作为日常使用的XP,第三主分区作为日常使用的Win 7Grub启动文件放置在扩展分区,独立于任何的系统,即使所有系统都崩溃,电脑也能启动。
    废话少说,还是回到PE,这四项是启动PE的:

title >启动 精简优化WinPE
find --set-root /menu.lst
map +1 (hd0)
chainloader /boot/ldjanyi
boot

title >启动 HHH WinPE
find --set-root /menu.lst
map +1 (hd0)
chainloader /boot/ldhhhpe
boot

title >启动 HHH WinPE 2003
find --set-root /menu.lst
map +1 (hd0)
chainloader /boot/ldhhh2k3
boot

title >启动 WinPE 2003
find --set-root /menu.lst
map +1 (hd0)
chainloader /boot/ldpe2k3
boot


   ldjanyildhhhpeldhhh2k3ldpe2k3这四个都是由setupldr.binmSetupLdr.exe这个小工具修改而来。其实这四个文件用mSetupLdr.exe修改的结果都一样,如上图,也就是说,他们的启动配置文件都是根目录下的AllPE.ini
      AllPE.ini文件内容如下:

[SetupData]
BootDevice = "ramdisk(0)"
BootPath = "\WXPE\SYSTEM32\"

[JianyiSet]
OsLoadOptions = "/minint /fastdetect /rdpath=janyi\WINPE.IM_"

[HHHPEData]
OsLoadOptions = "/minint /fastdetect /rdexportascd /rdpath=h3pe\WINPE.IS_"

[HHH2k3Set]
OsLoadOptions = "/minint /fastdetect /rdexportascd /rdpath=h3pe\WINPE03.IS_"

[PE2003Set]
OsLoadOptions = "/minint /fastdetect /rdexportascd /rdpath=pe2k3\WINPE03.IS_"

    然后用UltraEdit32分别打开ldjanyildhhhpeldhhh2k3ldpe2k3四个文件,查找SetupData替换为JianyiSetHHHPEDataHHH2k3SetPE2003Set
    这里的查找替换是关键,因为文件中SetupData如果不区分大小写,共计22个,区分大小写,共计9个,全部替换会蓝屏。
    本人经过多次测试,区分大小写进行替换,把查找到的第七个SetupData进行替换,目前用于启动IMGIM_类型的镜像文件已经没有任何问题,但对于ISOIS_类型的文件有时会蓝屏,仍旧不稳定。
    由于对22个依次测试,工作量较大,还无法很快测完,把这个问题提出来,是希望有高手能够参与进来,共同测试或者提出更好的建议,保证各种类型的镜像文件都能够稳定地运行。

[ 本帖最后由 猎手 于 2010-9-5 10:46 编辑 ]
2#
发表于 2010-9-5 11:00:36 | 只看该作者
修改路径,把配置文件放到某目录下,根目录没有一个配置文件,岂不更好?
一个PE,所有文件都放到某一个目录下,更清爽。
回复

使用道具 举报

3#
 楼主| 发表于 2010-9-5 11:10:28 | 只看该作者
原帖由 dgxhls 于 2010-9-5 11:00 发表
修改路径,把配置文件放到某目录下,根目录没有一个配置文件,岂不更好?
一个PE,所有文件都放到某一个目录下,更清爽。

现在的PE版本层出不穷,升级不断,你的方法一劳永逸,但缺乏了升级的乐趣和测试新版本的便利性,我的方法是,随便一个PE出来,只要有他的镜像文件,拷贝到一个新目录中,替换一下ldwxpe文件的setupdata,然后在AllPE.ini中加一行就可以启动了。
回复

使用道具 举报

4#
发表于 2010-9-5 11:16:21 | 只看该作者

回复 #3 猎手 的帖子

说句实话,你这个方法与所谓追求升级的乐趣和测试新版本的便利性没有半点关系。
不过,也不失为一种新的尝试,也有一定的意义。
回复

使用道具 举报

5#
 楼主| 发表于 2010-9-5 11:24:55 | 只看该作者
原帖由 dgxhls 于 2010-9-5 11:16 发表
说句实话,你这个方法与所谓追求升级的乐趣和测试新版本的便利性没有半点关系。
不过,也不失为一种新的尝试,也有一定的意义。

请别妄下结论,其实目前,我只要通过msetupldr.exe把ALLPE.ini换个名字,分别生成四个ini文件,按我上面回帖所叙述的方法,就可以随意启动。就是再加十个八个PE,也只是几分钟的事情。只是觉得配置文件太多,有无可进一步尝试的可能。
回复

使用道具 举报

6#
发表于 2010-9-5 11:33:32 | 只看该作者
如果你能够做到不作任何修改,就可以随意启动任何PE,就是我妄下结论。
同样是修改,只是方法不同而已,一味标榜你这个方法所谓的便利性恐怕
有点过了。
回复

使用道具 举报

7#
 楼主| 发表于 2010-9-5 11:58:07 | 只看该作者
原帖由 dgxhls 于 2010-9-5 11:33 发表
如果你能够做到不作任何修改,就可以随意启动任何PE,就是我妄下结论。
同样是修改,只是方法不同而已,一味标榜你这个方法所谓的便利性恐怕
有点过了。

在此不停打口水战,似乎不是解决问题的办法,本人只是希望能够请教高手解决自己所提的问题,你的方法,本人几年前就已经采用过。不过,对于你能够积极回帖,不至于本贴下沉,本人还是深表谢意!
回复

使用道具 举报

8#
发表于 2010-9-5 12:08:14 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

9#
发表于 2010-9-5 12:11:30 | 只看该作者
谢意就免了,只要LZ不认为我打击你的积极性就满足了。
回复

使用道具 举报

10#
 楼主| 发表于 2010-9-5 12:18:01 | 只看该作者
楼上别客气!:handshake
回复

使用道具 举报

11#
发表于 2010-9-5 12:39:55 | 只看该作者
LZ看看grub大师的方法:http://bbs.wuyou.net/forum.php?m ... ghlight=&page=1

一个使用的例子
所有的启动文件都在CSPE\KERNEL\目录下
一个SETUPLDR.BIN(论坛上下的合并NTDETECT.COM的版本)
一个CSPE.IMG
一个Loader.cfg
一个menu.cfg

其中Loader.cfg内容
[SetupData]
BootDevice="ramdisk(0)"
BootPath="\WXPE\SYSTEM32\"
Loader.CFG="/minint /fastdetect /rdpath=CSPE\KERNEL\CSPE.IMG"

menu.cfg内容
title cspe
#先加载SETUPLDR.BIN到内存。
map --mem=0xB000 ()/CSPE/KERNEL/SETUPLDR.BIN (rd)
#修改winnt.sif路径
write --offset=0x2a432 (rd)+1 CSPE\\KERNEL\\LOADER.CFG\0
chainloader (rd)+1
root ()

这样就可以启动了,还可以把MENU.CFG和LOADER.CFG合并成一个文件(但这需要一些技巧,否则会出错的)
合并的方法,先把MENU.CFG的回车换成MAC的(也就是只有CR)并在前面加一个";"
然后
copy /y loader.cfg+menu.cfg

说明一下
write --offset=0x2a432 (rd)+1 CSPE\\KERNEL\\LOADER.CFG\0
从这个路径的第十三个字符也就是从"L”开始是属于以前OsLoadOptions的位置,
所以WINNT.SIF里面的OsLoadOptions要相应的改变,后面\0结束。(最长不得超过28个字符,否则就不好改了)

顺便再提供其它的修改
修改默认I386目录名

#修改默认目录名
write --offset=0x2A4FB (rd)+1 WXPE

修改默认的TXTSETUP.SIF文件名
write --offset=0x2A502 (rd)+1 TXTSETUP.CFG

嘿嘿,这样子处理后这个菜单就是启动这个PE专用的了,并而和SETUPLDR.BIN没有多大关系(只要是同一版本的就行了),以后要修改路径也方便。不用再对SETUPLDR.BIN开刀了。

注意如果写入的字符超长,第13个字符不可以为\0。一般情况下最好不要超过原来的WINNT.SIF+2 即11个字符。

[ 本帖最后由 chenall 于 2009-11-14 17:34 编辑 ]
回复

使用道具 举报

12#
 楼主| 发表于 2010-9-5 12:49:21 | 只看该作者
楼上所述不失为一种方法,但对快速合盘的菜鸟级仍然比较麻烦,本人希望搞清问题根源及解决办法之后,设计一个菜鸟级的合盘工具。
回复

使用道具 举报

13#
发表于 2010-9-5 13:41:43 | 只看该作者

用PE启动器算了

原帖由 dgxhls 于 2010-9-5 11:33 发表
如果你能够做到不作任何修改,就可以随意启动任何PE,就是我妄下结论。
同样是修改,只是方法不同而已,一味标榜你这个方法所谓的便利性恐怕
有点过了。

可输入式PE启动器、通用F6模块-取自0PEv1.2(2010-07-24)
回复

使用道具 举报

14#
 楼主| 发表于 2010-9-6 10:32:15 | 只看该作者
看来无忧启动没有高手了,碰到问题只会推荐别人用现成的方法。
回复

使用道具 举报

15#
发表于 2010-9-6 11:19:13 | 只看该作者
LS的眼高手低,恐怕连现成的方法也不明所以。
回复

使用道具 举报

16#
发表于 2010-9-6 15:21:51 | 只看该作者
楼主的想法很少见。在无忧经常看到的是光盘合盘的,把n个PE及DOS弄到一个光盘中,并且还加入grub/isolinux/EZB启动方式互换。
而楼主则是将n个PE及DOS弄到硬盘中,希望能快点成功,甚至也加入多种启动方式互换。
技术上偶帮不上忙,纯灌水支持!
回复

使用道具 举报

17#
发表于 2010-9-6 17:19:33 | 只看该作者
楼主想法非常好!亮点在于winnt.sif文件的多合一
这对11楼的方法是一个改进,可以真正的做到二个文件启动多PE。11楼只是解决了 setupldr.bin 多合一时 winnt.sif 的路径问题,如果要合盘启动多个PE,还是得有多个winnt.sif文件,而且同样每个winnt.sif文件中的OSLoadOption字符号串都得去修改,楼主的方法正好解决了这个问题。

这样就可以用一个setupldr.bin,一个winnt.sif,用grubrdos修改winnt.sif路径、修改SetupData串,启动多个PE

[ 本帖最后由 tuxw 于 2010-9-6 17:21 编辑 ]
回复

使用道具 举报

18#
发表于 2010-9-7 00:52:39 | 只看该作者
改 SetupData 时不要一个个修改再测试,先用 WinHex 找出22个地址
然后11楼的方法,在 Grub4Dos菜单中写22个修改语句,启动前去删除,只留一行修改。这样不用修改任何文件就可以测试。

但这样还是太麻烦,我换了个方法,直接修改 OsLoadOptions 已经成功了
http://bbs.wuyou.net/forum.php?mod=viewthread&tid=175583&page=1&extra=

[ 本帖最后由 tuxw 于 2010-9-7 09:01 编辑 ]
回复

使用道具 举报

19#
发表于 2010-9-7 15:57:59 | 只看该作者
学习了,说的不错。支持lz
回复

使用道具 举报

20#
发表于 2010-9-10 16:37:55 | 只看该作者
思路很好,过程却不简单。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-10-4 02:23

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表