|
7#
楼主 |
发表于 2008-4-14 16:19:33
|
只看该作者
比较了一下chenall与nn2nn的外置加载文件,内容大致相同,主要是加wimnt.exe与加载PETOOLS目录里的文件到程序文件夹,如下:
//PE开放式架构设置 nn2nn制作
//EXEC [email==@%CurDrv%\minipe\wimnt.exe]=@%CurDrv%\minipe\wimnt.exe[/email] /REG /mp B:\WimTools /tp %temp%
//REGI HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\WimNT.exe\=%CurDrv%\minipe\wimnt.exe
EXEC @WimReg_ADD.CMD
//PE开放式架构设置 nn2nn制作
ENVI VD=PETOOLS
_SUB MAKELINK
ENVI V0=%USERPROFILE%\「开始」菜单\%VP%盘工具
LINK %V0%\target,%VP%:\%VD%
TEAM FILE Desktop.ini=>%V0%|SITE %V0%\*.*,+A+H+S|SITE %V0%,+R+S
IFEX %VP%:\%VD%\公共模块\公共模块.wim,LINK %USERPROFILE%\桌面\工作模式设置%VP%盘,%VP%:\%VD%\公共模块\公共模块.wim,,SHELL32.dll,17
_END
ENVI VP=B
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=C
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=D
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=E
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=F
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=G
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=H
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=I
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=J
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=K
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=L
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=M
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=N
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=O
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=P
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=Q
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=R
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=S
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=T
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=U
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=V
IFEX %VP%:\%VD%,CALL MAKELINK
//ENVI VP=W
//IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=X
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=Y
IFEX %VP%:\%VD%,CALL MAKELINK
ENVI VP=Z
IFEX %VP%:\%VD%,CALL MAKELINK
/////////////////
//从B到Z,如何优化?
下面是我提取chenall内核里三个文件,只是看不懂,大概有几条是加载Autoruns和Drivers的,哪位能不能把它提出来,放到外置里(如winpe.ini里)。
pecmd.ini
//配置文件开始
//LOGS %WinDir%\pecmd.log
NUMK 0
FBWF P40 L32 H128
TEAM ENVI W=%WinDir%|ENVI WS=%W%\SYSTEM32|ENVI WSD=%WS%\Drivers
TEAM FILE %WS%\WIN32K.SYS|PATH #%WS%\CONFIG
TEAM INIT I|EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
TEAM ENVI V0=HKLM\System\CurrentControlSet\Services|ENVI V1=System32\Drivers `修正 USB 驱动程序文件路径
REGI %V0%\USBHUB\ImagePath=%V1%\USBHUB.SYS
REGI %V0%\USBCCGP\ImagePath=%V1%\USBCCGP.SYS
REGI %V0%\USBEHCI\ImagePath=%V1%\USBEHCI.SYS
REGI %V0%\USBOHCI\ImagePath=%V1%\USBOHCI.SYS
REGI %V0%\USBSTOR\ImagePath=%V1%\USBSTOR.SYS
REGI %V0%\USBUHCI\ImagePath=%V1%\USBUHCI.SYS
REGI %V0%\HIDUSB\ImagePath=%V1%\HIDUSB.SYS
REGI %V0%\MOUCLASS\ImagePath=%V1%\MOUCLASS.SYS
REGI %V0%\MOUHID\ImagePath=%V1%\MOUHID.SYS
REGI %V0%\KBDCLASS\ImagePath=%V1%\KBDCLASS.SYS
REGI %V0%\KBDHID\ImagePath=%V1%\KBDHID.SYS
LINK %Programs%\附件\记事本,NOTEPAD.EXE
LINK %Programs%\附件\命令提示符,%WS%\CMD.EXE
LINK %Programs%\附件\注册表编辑器,REGEDIT.EXE
LINK %Programs%\附件\资源管理器,EXPLORER.EXE,,EXPLORER.EXE,1
//加载XP资源利用组件,不需要的就删除以下三行
ENVI V0=%USERPROFILE%\「开始」菜单\程序\XP资源
LINK %V0%\target,%WinDir%\XP_TOOLS\XP资源
TEAM FILE Desktop.ini=>%V0%|SITE %V0%\*.*,+A+H+S|SITE %V0%,+R+S|ENVI V0=
//加载外置扩展的配置文件(Mount_Ext.ini由自动挂载.cmd自动生成)
EXEC =!CMD /C "ECHO.FILE %WinDir%\Mount_Ext.ini>>%WinDir%\Mount_Ext.ini"
EXEC !PECMD LOAD %WinDir%\Mount_Ext.ini
//兼容之前的PE版本(像老毛桃),这里为了防止冲突,配置文件改名为PECMD.INI
LOAD \MiniPE\PECMD.INI
FIND Explorer.EXE,!SHEL EXPLORER.EXE|LOGO|TEXT
`修改注册表和相关文件名以支持 Vista 安装
REGI HKLM\SYSTEM\CurrentControlSet\Control\MiniNT\!
EXEC !CMD.EXE /C "REN %WinDir%\SYSTEM32\HALACPI.DLL HAL.DLL"
`如果不能给 USB 移动存储设备迅速分配盘符或者关机缓慢,请尝试重启 AudioSrv 服务(对于部分 HD 声卡)
TEAM EXEC =PECMD SERV !AudioSrv|SERV AudioSrv
`杀掉无用进程并删掉 X: 盘可删除文件以节省空间
TEAM WAIT 5000|KILL SMSS.EXE|KILL WINLOGON.EXE|FILE %WS%\SMSS.EXE|FILE %WS%\WINLOGON.EXE
EXEC !CMDX /C "KILL %CMD_PID%"
TEAM ENVI W=|ENVI WS=|ENVI WSD=|ENVI V0=|ENVI V1=|ENVI CMD_PID=|ENVI
FIND Explorer.EXE,!EXEC %comspec% /K "echo.Shell Explorer.EXE启动失败,自动转入CMD命令行."
//FIND Explorer.EXE,FILE %WinDir%\System32\xp_shell.*|FILE %WinDir%\System32\Autoruns_.cmd!EXEC %comspec% /K "echo.Shell Explorer.EXE启动失败,自动转入CMD命令行."
//LOGS
//配置文件结束
_______________________________________________________________________________
_______________________________________________________________________________
Autorun_.cmd
@echo off
cd /d "%~dp0"
title . MicroPE系统 chenall@bbs.wuyou.net 2008.02.02
echo.MicroPE系统初始化.....
PATH %windir%;%windir%\system32;%windir%\system;%windir%\net;%windir%\system32\Tools;&&if;%~z0;NEQ;4463;exit
call SHOWDRIVE.EXE ALL
SETLOCAL
if exist %~d0\debug set debug=1
if defined debug (set "logfile=%WinDir%\autoruns.log") else (set logfile=con)
>>%logfile% echo.%time% 正在执行初始化设置并查找外置程序......
::以下语句用于提取当前CMD进程的PID,方便启动后KILL这个进程
cmdX.exe /c ps|find /i "cmd.exe">%WinDir%\~cmdx.log
for /f %%i in (%WinDir%\~cmdx.log) do set cmd_pid=%%i
del /f /q %WinDir%\~cmdx.log
set iso=
::检测是否使用非ramdisk方式启动的
::可以人为设定一个NORAMDISK.FLG文件在磁盘根目录就认为是非RAMDISK启动,否则根据磁盘可用空间来确定.
::如果可用空间大于50MB就认为是非RAMDISK启动.
if EXIST %~d0\NORAMDISK.FLG GOTO :CHECK_RAM_END
set x_free=00000000
for /f "tokens=3" %%i in ('dir /-c %~d0\^|find "可用字节"') do set x_free=%%i
if not "%x_free:~0,-8%"=="" (
md %~d0\NORAMDISK.FLG 2>nul
goto :CHECK_RAM_END
) else (
if %x_free:~0,-7%2 GEQ 52 (
md %~d0\NORAMDISK.FLG 2>nul
goto :CHECK_RAM_END
)
)
set x_free=
IF NOT EXIST %~d0\NORAMDISK.FLG (
ECHO.%time% 删除无用文件>>%logfile%
>>%windir%\Delfiles.log del /f /q %Windir%\Txtsetup*.*
>>%windir%\Delfiles.log del /f /q %~d0\
>>%windir%\Delfiles.log DEL /f /S /Q %WINDIR%\*.??_
) else (
echo.%time% 检测到非RAMDISK启动标志文件:%~d0\NORAMDISK.FLG,将不进行文件删除操作....
)
:CHECK_RAM_END
setx path %path% -m
md %SystemDrive%\TEMP
>>%logfile% echo.%time% 查找外置SYSTEM.WIM并挂载XP资源利用组件
::挂载XP资源利用组件
Wimx %WinDir%\XP_Tools %WinDir%\XP_Tools\XP_Tools.WIM >NUL
::查找外置SYSTEM.WIM
::优先查找CDROM驱动器中是否存在
for /l %%i in (0,1,2,3,4,5) do (
if exist \\?\cdrom%%i\Minipe\system.wim (set drv=\\?\cdrom%%i&&goto :挂载WIM)
)
::如果上面的没有找到,就在所有可能存在的盘符中查找.
for %%i in (D: X: F: G: C: E: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: Y: Z:) DO (
if exist %%i\Minipe\system.wim (SET Drv=%%i&&set iso=&goto :挂载WIM) else (
if exist %%i\boot\MicroPE.ISO set iso=%%i\boot\MicroPE.ISO
)
)
::如果上面都没有找到,则尝试挂载Micrope.iso文件(查找的时候已经顺便检测这个ISO文件了)
if defined iso (isocmd -i >nul 2>nul&&for /f "usebackq tokens=2 delims=[]" %%i in (`isocmd -mount 0 %iso%`) do set drv=%%i)
if defined drv if exist %drv%\Minipe\system.wim (goto :挂载WIM)
GOTO :ERROR
:挂载WIM
>>%logfile% echo.%time% 外置所在磁盘: %drv%
if defined iso >>%logfile% echo. ISO文件: %iso%
MD %Windir%\system
Wimx %Windir%\system %drv%\Minipe\system.wim|find /i "FALSE">NUL||goto :挂载成功
pause>nul|echo.%Time% 挂载SYSTEM.WIM到%WinDir%\system失败!
goto :ERROR
:挂载成功
>>%logfile% ECHO.%time% SYSTEM.WIM挂载成功......
IF /i "%drv%"=="%~d0" GOTO :下一步
SET CP=N
START /W PECMD IFEX MEM^>128,PATH X:\128MB
IF EXIST X:\128MB (SET CP=Y&&RD X:\128MB)
CALL :复制SYSTEM
:下一步
if not exist b:\* imdisk -a -s 1M -m b: -p "/fs:fat /v:RamDisk /y /q" >nul
echo.
if exist %drv%\Minipe\Autoruns\* (
>>%logfile% echo.%time% 发现自动执行挂载目录: %drv%\Minipe\Autoruns
call 自动挂载.cmd %drv%\Minipe\Autoruns
)
ENDLOCAL&&set cmd_pid=%cmd_pid%&&set "ext_drv=%drv%"
echo.%time% 启动外置程序
IF not defined debug del /f /q %windir%\Delfiles.log >nul 2>nul
CALL SYSTEM_.CMD
goto :eof
:复制SYSTEM
if /i "%drv%"=="%~d0" goto :eof
if defined b goto :eof
echo.
echo.如果用光盘启动需更换光盘请按Y.
echo.
ECHO.如果可用内存^>128MB,默认复制,否则默认不复制.
echo.
set/p=是否要复制SYSTEM.WIM到内存盘中[Y,N]?(默认:%CP%,3秒等待)<nul
CMDX /c choice /T:%cp%,3|find "?N">NUL&&goto :下一步
echo.
>>%logfile% echo.%Time% 正在创建10MB的内存盘B:....
imdisk -a -s 10M -m b: -p "/fs:fat /v:RamDisk /y /q" >nul
>>%logfile% echo.%Time% 正在复制SYSTEM.WIM到内存盘B:....
START /w PECMD TEAM PATH B:\SYSTEM^|FILE %drv%\Minipe\system.wim=^>B:\SYSTEM^|MOUN ,%WinDir%\System
Wimx %Windir%\system B:\SYSTEM\SYSTEM.WIM|find /i "FALSE" >nul||goto :下一步
>>%logfile% echo.%time% 复制SYSTEM.WIM到内存盘中挂载失败....
SET B=1&&GOTO :挂载WIM
GOTO :EOF
:ERROR
cls.
title .==无忧启动论坛==bbs.Wuyou.com==MicroPE CMD模式[email===chenall@366840202***Exit]==chenall@366840202***Exit[/email]=重启**
ECHO.找不到\MINIPE\SYSTEM.WIM,只能启动到CMD模式.
ECHO.输入^<Exit^>可重新启动;^<xp_shell^>可通过硬盘的XP系统来启动到桌面
prompt $Q$Q无忧启动论坛$Q$Qbbs.Wuyou.com$Q$QMicroPE$sCMD模式[email=$Q$Qchenall@366840202***Exit$Q]$Q$Qchenall@366840202***Exit$Q[/email]重启**$_$P$G
_______________________________________________________________________________
_______________________________________________________________________________
自动挂载.cmd
@echo off
SETLOCAL
if "%1"=="" goto :eof
IF /I "%~x1"==".wim" goto :mount
IF NOT EXIST %WinDir%\Mount_Ext.ini ECHO.//自动挂载>%WinDir%\Mount_Ext.ini
for %%i in (%1\*.wim) do call :Mount "%%i"
::ECHO.FILE %WinDir%\Mount_Ext.ini>>%WinDir%\Mount_Ext.ini
goto :eof
:Mount
SETLOCAL
if "%~1"=="" goto :eof
set "Mount_dir=%~n1"
SET "WIMFILE=%~1"
::call,set "Mount_dir=%Mount_dir%"
if "%Mount_dir:~0,1%"=="@" call :路径转换
if not "%Mount_dir:~1,1%"==":" set "Mount_dir=X:\PETOOLS\%Mount_Dir%"
set "Mount_dir=%Mount_dir:#=\%"
IF "%Mount_dir:~-1%"=="_" call :_copy %1
md "%Mount_dir%" 2>nul
Wimx "%Mount_dir%" "%WIMFILE%"|find /i "FALSE"||if exist "%Mount_dir%\PECMD.INI" ECHO.LOAD %Mount_dir%\PECMD.INI>>%WinDir%\Mount_Ext.ini
GOTO :Eof
:路径转换
call,set "Mount_dir=%%Mount_dir:@0=%windir%%%"
call,set "Mount_dir=%%Mount_dir:@1=%ProgramFiles%%%"
set "Mount_dir=%Mount_dir:@2=B:\WimTools%"
call,set "Mount_dir=%%Mount_dir:@=%SystemDrive%%%"
goto :eof
:_copy
set "Mount_dir=%Mount_dir:~0,-1%"
md "%Mount_dir%" 2>nul
if /I NOT "%WIMFILE:~0,2%"=="%~d0" (
copy /y "%WIMFILE%" "%Mount_dir%" >nul&&set "WIMFILE=%Mount_dir%\%~nx1"
)
goto :eof
另附yyq572 2008 ByeBye修正版的内核里的
PECMD.INI
//配置文件开始
FBWF P40 L32 H96
TEAM ENVI W=%WinDir%|ENVI WS=%W%\SYSTEM32|ENVI WSD=%WS%\Drivers
TEAM FILE %W%\TXTSETUP.SI*|FILE %WS%\NTOSKRNL.EX*|FILE %WS%\WIN32K.SYS|PATH #%WS%\CONFIG|FILE %WS%\*.*_|FILE %WSD%\*.SY_
TEAM LOGS %W%\PECMD.LOG|PATH %SystemDrive%\TEMP|INIT I|EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U
TEAM ENVI V0=HKLM\System\CurrentControlSet\Services|ENVI V1=System32\Drivers `修正 USB 驱动程序文件路径
REGI %V0%\USBHUB\ImagePath=%V1%\USBHUB.SYS
REGI %V0%\USBCCGP\ImagePath=%V1%\USBCCGP.SYS
REGI %V0%\USBEHCI\ImagePath=%V1%\USBEHCI.SYS
REGI %V0%\USBOHCI\ImagePath=%V1%\USBOHCI.SYS
REGI %V0%\USBSTOR\ImagePath=%V1%\USBSTOR.SYS
REGI %V0%\USBUHCI\ImagePath=%V1%\USBUHCI.SYS
REGI %V0%\HIDUSB\ImagePath=%V1%\HIDUSB.SYS
REGI %V0%\MOUCLASS\ImagePath=%V1%\MOUCLASS.SYS
REGI %V0%\MOUHID\ImagePath=%V1%\MOUHID.SYS
REGI %V0%\KBDCLASS\ImagePath=%V1%\KBDCLASS.SYS
REGI %V0%\KBDHID\ImagePath=%V1%\KBDHID.SYS
LINK %Programs%\附件\记事本,%WS%\NOTEPAD.EXE
LINK %Programs%\附件\命令提示符,%WS%\CMD.EXE
LINK %Programs%\附件\注册表编辑器,%W%\REGEDIT.EXE
LINK %Programs%\附件\资源管理器,%W%\EXPLORER.EXE,,EXPLORER.EXE,1
LOAD \MiniPE\WinPE.INI
FIND Explorer.EXE,!SHEL %WinDir%\EXPLORER.EXE|LOGO|TEXT
`修改注册表和相关文件名以支持 Vista 安装
REGI HKLM\SYSTEM\CurrentControlSet\Control\MiniNT\!
EXEC !CMD.EXE /C "REN %WinDir%\SYSTEM32\HALACPI.DLL HAL.DLL"
`如果不能给 USB 移动存储设备迅速分配盘符或者关机缓慢,请尝试重启 AudioSrv 服务(对于部分 HD 声卡)
TEAM EXEC =PECMD SERV !AudioSrv|SERV AudioSrv
`杀掉无用进程并删掉 X: 盘可删除文件以节省空间
TEAM WAIT 5000|KILL SMSS.EXE|KILL WINLOGON.EXE|FILE %WS%\SMSS.EXE|FILE %WS%\WINLOGON.EXE
TEAM ENVI W=|ENVI WS=|ENVI WSD=|ENVI V0=|ENVI V1=
LOGS
//配置文件结束
哪位高手能帮忙看一下,怎样把自动加载Autoruns目录里的wim及exe文件,以及调用Drivers目录里的网卡驱动(为cab压缩文件)
猜了一下蓝色字部份应该就是相关设置,谁能帮一下让yyq572 2008 ByeBye修正版的内核里的PECMD.INI能调用这部份批处理。放在内核里也无所谓。
[ 本帖最后由 xiao75918 于 2008-4-14 05:37 PM 编辑 ] |
|