|
问题已经解决,这个帖子:http://os.deepin.org/read-htm-fid-7-tid-310010.html
那天看到本论坛上这个帖子http://bbs.wuyou.net/forum.php?mod=viewthread&tid=130195
就按它说的方法制作了一个U盘PE,也引导成功了。
这两天下载了一个老毛桃PE在虚拟机里用,感觉非常好,老毛桃PE里的外置程序很多很到位,比无忧那个帖子的PE好的多(没有贬低无忧那位高手的意思),于是我就想把老毛桃PE的一些外置程序转接到我现在的U盘PE里(我也不是不想直接在U盘上装老毛桃的PE,只是用老毛桃PE自己带的安装到U盘的程序怎么也装不上,可能是我的U盘比较大的缘故,4G)
————————————————————————————————————
现在先说说我的U盘PE的结构:
U盘上有这些文件:
我是把这些文件复制到U盘之后用UltraISO9.3给U盘写了个win9x的引导扇区(具体可以看上面那个链接里无忧上的帖子),实际上是系统先从U盘启动DOS,然后DOS通过autoexec.bat文件启动 grub.exe.进而引导PE。
然后找了找网上,说自己添加外置程序可以看winpe.ini
于是我就打开了这个文件,老毛桃PE里这个文件我还是模模糊糊明白点,能自己添加外置程序,我现在U盘里的这个文件我就看不懂了,不知道怎么写才能自己添加一些外置程序,现在我把那个文件贴出来,大家给看看:
//配置文件开始
FIND MEM>125,LOGO %CurDrv%\外置程序\桌面背景\PELOGO.JPG|WAIT 1250
TEAM TEXT 正在执行基本设置……#0xEE,$20|WAIT 500
//由最小模式启动后加载外置时才调用的过程。定义一些变量。
_SUB Outer_Reload
ENVI Programs=%USERPROFILE%\「开始」菜单\程序
ENVI Desktop=%USERPROFILE%\桌面
ENVI QuickLaunch=%USERPROFILE%\Application Data\Microsoft\Internet Explorer\Quick Launch
_END
//由最小模式启动后加载外置时,需要调用 Outer_Reload 中定义的一些命令
FIND Explorer.EXE,CALL Outer_Reload
ENVI CurDir=%CurDrv%\外置程序
USER WinPE (老九,老毛桃,zjqcomputer,ryvius贡献)
WALL %CurDir%\桌面背景\PEWallPaper.BMP
//对于笔记本键盘,可以去掉下面命令的注释,以避免打开数字键
//NUMK 0
//在桌面显示网上邻居
REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu\{208D2C60-3AEA-1069-A2D7-08002B30309D}=#0
//清理掉上次启动 PE 或 Windows 时留下的虚拟内存页面文件
ENVI PF=Pagefile.sys
TEAM FILE C:\%PF%|FILE D:\%PF%|FILE E:\%PF%|FILE F:\%PF%|FILE G:\%PF%|FILE H:\%PF%|FILE I:\%PF%|FILE J:\%PF%|FILE K:\%PF%|FILE L:\%PF%|FILE M:\%PF%|FILE N:\%PF%|FILE O:\%PF%|FILE P:\%PF%|FILE Q:\%PF%|FILE R:\%PF%|FILE S:\%PF%|FILE T:\%PF%
//询问是否设定虚拟内存。
_SUB IFSetPageFile
TEAM TEXT 是否设置虚拟内存?|ENVI YESNO=YES
MESS 您的计算机物理内存较少,某些外置程序的运行可能需要用到\n虚拟内存。设置了虚拟内存,有助于提高系统的速度和稳定性;\n如果您需要保护并恢复硬盘分区数据,可跳过虚拟内存的设置。\n \n您确定要设置虚拟内存吗?(建议设置,30 秒后默认选择否)@设置虚拟内存 #YN *30000
IFEX $YESNO=YES,Call SetPageDrv!TEXT 没有建立虚拟内存……
WAIT 500
_END
//设置虚拟内存。
_SUB SetPageDrv
TEAM TEXT 正在设定虚拟内存……|ENVI $TARGET_ROOT=
BROW * $请选择虚拟内存文件存放的分区,取消则从D盘开始自动选择分区。
IFEX $TARGET_ROOT=,TEXT 正在设定虚拟内存(自动选择存放分区)……|PAGE D:\%PF% 192 256!TEXT 正在设定虚拟内存(虚拟内存存放在 %TARGET_DRIVE% 盘)……|PAGE %TARGET_DRIVE%\%PF% 192 256
_END
//物理内存低于 256MB 时询问是否取消设定虚拟内存
FIND MEM<256,CALL IFSetPageFile
//挂接硬盘上 Windows 系统的字体,如果因字体过多造成启动极其缓慢或无法启动,请关闭下面的命令
//FONT C:\WINDOWS\Fonts
TEXT 正在加载外置程序……
//建立外置程序加载的可行性报告,如果设置了虚拟内存或者可用内存大于一定数值,则加载有关的外置组件
//此行有两条语句,“|”号前面的语言句是在Temp文件夹中建立一个RPT_OK.CMD文件,文件内容为一条命令行语句:
//FOR %%I IN (C D E F G H I J K L M N O P Q R S T) DO IF EXIST %%I:\PAGEFILE.SYS PECMD LINK %Temp%\RPT_OK,%SystemRoot%
//该语句的作用为在C D E F G H I J K L M N O P Q R S T几个盘中寻找页面文件,如果找到,将在Temp文件夹中建立一个RPT_OK.LNK文件以标志已建立虚拟内存。
//不用担心硬盘中可能会存在其它的页面文件而影响结果,因为前面已有一条语句清理掉硬盘中已存在的虚拟内存页面文件了。
//“|”号后面的语言句是执行刚生成的RPT_OK.CMD文件,以真实执行判断并生成标志。
TEAM EXEC !=CMD.EXE /C ECHO FOR %%I IN (C D E F G H I J K L M N O P Q R S T) DO IF EXIST %%I:\PAGEFILE.SYS PECMD LINK %Temp%\RPT_OK,%SystemRoot%>%TEMP%\RPT_OK.CMD|EXEC !=%TEMP%\RPT_OK.CMD
//设置自解压包的运行条件,如设置了虚拟内存,则建立运行条件,否则根据可用内存大小设置不同的运行条件
//具体点是:如果已经设置虚拟内存或可用内存大于60M,将在Temp文件夹中建立一个RPT_OK60.LNK文件以标志可运行自解压包。
IFEX %Temp%\RPT_OK.LNK,LINK %Temp%\RPT_OK60,%SystemRoot%!IFEX MEM>60,LINK %Temp%\RPT_OK60,%SystemRoot%
//如果设置了虚拟内存或可用内存大于 120MB,则设置IFWait变量为空以使下面的部分命令为无阻塞运行,否则设置IFWait变量为=使其排队执行。
ENVI IFWait==
IFEX %Temp%\RPT_OK.LNK,ENVI IFWait=!IFEX MEM>120,ENVI IFWait=
//安装基本的运行库文件。
EXEC =%CurDir%\PE_OuterPart\Outer_Base.EXE
//如果X:盘有足够剩余空间和自解压包的运行条件成立,就按照一定条件执行下面的外置程序。是否为无阻塞运行则由前面的语句判定。
//安装WINRAR。
IFEX %SystemDrive%\>10,IFEX %Temp%\RPT_OK60.LNK,EXEC =%CurDir%\WinRAR\WinRAR.EXE
//安装输入法FREEWB。
IFEX %SystemDrive%\>10,IFEX %Temp%\RPT_OK60.LNK,EXEC =%CurDir%\FREEWB\FREEWB.EXE
//安装管理工具。
IFEX %SystemDrive%\>20,IFEX %Temp%\RPT_OK60.LNK,EXEC %IFWait%%CurDir%\PE_OuterPart\MMC.EXE
//安装一些额外附件,例如:画图等。
IFEX %SystemDrive%\>10,IFEX %Temp%\RPT_OK60.LNK,EXEC %IFWait%%CurDir%\PE_OuterPart\Outer_Common.exe
//检查上面的安装语句是否执行成功,如果执行失败就在桌面建立相应的快捷方式以便手动运行。
//如果Outer_Base.EXE解压失败就在桌面建立一个快捷方式以便手动运行。
IFEX %SystemRoot%\System32\DESKADP.DLL,!LINK %Desktop%\安装基本库文件,%CurDir%\PE_OuterPart\Outer_Base.EXE
//如果WinRAR.EXE解压失败就在桌面建立一个快捷方式以便手动运行。
IFEX %ProgramFiles%\WinRAR\WINRAR.EXE,!LINK %Desktop%\安装WINRAR,%CurDir%\WINRAR\WINRAR.EXE
//如果FREEWB.EXE解压失败就在桌面建立一个快捷方式以便手动运行。
IFEX %ProgramFiles%\FreeWB\REGISTRY.EXE,!LINK %Desktop%\安装FreeWB输入法,%CurDir%\FREEWB\FREEWB.EXE
_SUB CheckLink
//如果MMC.EXE解压失败就在桌面建立一个快捷方式以便手动运行。
IFEX %SystemRoot%\System32\MMC.EXE,!LINK %Desktop%\安装管理工具,%CurDir%\PE_OuterPart\MMC.EXE
//如果Outer_Common.exe解压失败就在桌面建立一个快捷方式以便手动运行。
IFEX %SystemRoot%\System32\MSPAINT.EXE,!LINK %Desktop%\安装额外的附件,%CurDir%\PE_OuterPart\Outer_Common.exe
_END
//只有IFWait变量为=时才有可能解压失败,并执行相关检查。
IFEX $IFWait==,CALL CheckLink
//不自动启用显卡,加快进入桌面的速度。
//如果你要恢复此功能请将下面几行的注释符“//”去掉即可。
//_SUB IfSetDisplay
// TEAM TEXT 3 秒钟内按住 Ctrl 键忽略显卡驱动安装……|WAIT 3000
// FIND KEY=17,!Call SetDisplay
//_END
//_SUB SetDisplay
// TEAM EXEC !%CurDir%\PE_OuterPart\Start_VGA.CMD DISP W800 H600 B16|FILE %Desktop%\启用显卡支持.*
//_END
//物理内存达到 128MB 或者设置了虚拟内存,则自动加载显卡驱动,否则仅在桌面生成一个“启用显卡支持”的快捷方式
//LINK !%Desktop%\启用显卡支持,%CurDir%\PE_OUTERPART\Start_VGA.CMD,,%CurDir%\PE_OUTERPART\Outer_Base.EXE
//FIND MEM>127,Call IfSetDisplay!IFEX %Temp%\RPT_OK.LNK,Call IfSetDisplay
//创建自启动快捷方式,这些快捷方式将在加载桌面后被运行。
//该快捷方式将常用文档与对应外置程序建立关联。主要是进行注册表操作。
LINK !%Programs%\启动\注册程序,%SystemRoot%\SYSTEM32\PECMD.EXE,EXEC @%CurDir%\REGDOC.CMD,%SystemRoot%\SYSTEM32\SHELL32.DLL,43
//这部分代码,要由最后一行开始看起才容易理解。它们负责处理外置程序的连接和注册。
_SUB RunMinMode2
//最小模式的相关启动并加载IE。
FILE %Desktop%\加载外部配置.LNK
FILE %Programs%\启动\注册程序.LNK
EXEC @%CurDir%\LOADKJ.CMD IE
EXEC @%CurDir%\REGDOC.CMD
_END
_SUB RunMinMode1
//最小模式的相关启动但不加载IE。
FILE %Desktop%\加载外部配置.LNK
FILE %Programs%\启动\注册程序.LNK
EXEC @%CurDir%\LOADKJ.CMD
EXEC @%CurDir%\REGDOC.CMD
_END
_SUB InstallIE3
//不安装IE并继续启动。
//在桌面建立安装IE的快捷方式,以便手动安装。
LINK %Desktop%\安装IE,%CurDir%\IE6.0\IE6_Setup.EXE
//如果是最小模式,就执行最小模式的相关启动但不加载IE。否则在启动项建立一个不加载IE的启动快捷方式,这个快捷方式将在加载桌面后被运行。
IFEX %Desktop%\加载外部配置.LNK,CALL RunMinMode1!LINK !%Programs%\启动\创建快捷方式,%SystemRoot%\SYSTEM32\PECMD.EXE,EXEC @%CurDir%\LOADKJ.CMD,%SystemRoot%\SYSTEM32\SHELL32.DLL,21
_END
_SUB InstallIE2
//安装IE并继续启动。
//如果是最小模式,就执行最小模式的相关启动并加载IE。否则在启动项建立一个加载IE的启动快捷方式,这个快捷方式将在加载桌面后被运行。
IFEX %Desktop%\加载外部配置.LNK,CALL RunMinMode2!LINK !%Programs%\启动\创建快捷方式,%SystemRoot%\SYSTEM32\PECMD.EXE,EXEC @%CurDir%\LOADKJ.CMD IE,%SystemRoot%\SYSTEM32\SHELL32.DLL,21
_END
_SUB InstallIE1
//如果自解压包的运行条件成立就执行安装IE并继续启动。否则就执行不安装IE并继续启动。
IFEX %Temp%\RPT_OK60.LNK,CALL InstallIE2!CALL InstallIE3
_END
//如果系统盘剩余空间大于20M就进一步判断,否则执行不安装IE并继续启动。
IFEX %SystemDrive%\>20,CALL InstallIE1!CALL InstallIE3
//清除无用的环境变量和标志文件。
TEAM ENVI PF=|ENVI IFWait=|ENVI $TARGET_ROOT=|FILE %Temp%\RPT_*.*
//加载EXPLORER.EXE并对屏幕显示的内容进行清理;
//在PECMD.INI中也有一条相同的语句,表面上这条语句会先执行并导致PECMD.INI中的那条语句跳过不执行。但在实际测试中发现并没有跳过,并导致重复执行了。因此取消此句。
//事实上,此句好象没什么用。因为在正常启动时,即使没有此句也会通过PECMD.INI中的那条语句加载EXPLORER.EXE。而在最小模式时,由于已经加载EXPLORER.EXE,此句理论上会跳过不执行的。那么还要此句有何用?
//FIND Explorer.EXE,!TEXT 正在载入桌面……|SHEL %SystemRoot%\EXPLORER.EXE|LOGO|TEXT
TEAM ENVI PF=|ENVI IFWait=|ENVI $TARGET_ROOT=|FILE %Temp%\RPT_*.*
FIND Explorer.EXE,!TEXT 正在载入桌面……|SHEL %SystemRoot%\EXPLORER.EXE|LOGO|TEXT
//配置文件结束
现在我就是想知道两个问题:
1.怎样在给我这个PE增加外置程序
2.或者能不能用DOS引导的方法引导老毛桃PE
[ 本帖最后由 302536811 于 2009-1-22 12:11 编辑 ] |
|