在PE合盘时,往往在磁盘上会有两个以上的PE,每一个PE在根目录下都会有一个对应的配置文件,如果能够将将配置文件合并成一个配置文件,将会使根目录更加干净。
在此以比较通用的GRUB4DOS为例进行分析:
首先将grub引导通过MBR写入主引导,然后将grldr和menu.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 7。Grub启动文件放置在扩展分区,独立于任何的系统,即使所有系统都崩溃,电脑也能启动。
废话少说,还是回到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
ldjanyi、ldhhhpe、ldhhh2k3、ldpe2k3这四个都是由setupldr.bin经mSetupLdr.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分别打开ldjanyi、ldhhhpe、ldhhh2k3、ldpe2k3四个文件,查找SetupData替换为JianyiSet、HHHPEData、HHH2k3Set、PE2003Set。
这里的查找替换是关键,因为文件中SetupData如果不区分大小写,共计22个,区分大小写,共计9个,全部替换会蓝屏。
本人经过多次测试,区分大小写进行替换,把查找到的第七个SetupData进行替换,目前用于启动IMG、IM_类型的镜像文件已经没有任何问题,但对于ISO、IS_类型的文件有时会蓝屏,仍旧不稳定。
由于对22个依次测试,工作量较大,还无法很快测完,把这个问题提出来,是希望有高手能够参与进来,共同测试或者提出更好的建议,保证各种类型的镜像文件都能够稳定地运行。
[ 本帖最后由 猎手 于 2010-9-5 10:46 编辑 ] |