WINPE DIY

http://ahtcjxf.blog.163.com/blog/static/468760742009111175742571/


引用

教父 WINPE DIY 简介

以天琴星座(lyra)·Build 20090226 为例,同时借鉴论坛其他高手制作的 PE 及教程简单介绍关于 WINPE DIY 的一些内容,其中比较复杂(其实是我不懂)的部分一笔带过,需要的自己搜索吧

一、内核

1. PECMD 常用指令简介(请参考 PECMD.INI,详细命令说明请在 XP 或 PE 下运行 PECMD.EXE 查看)
   FBWF:设置FBWF缓存,此处用来设置 X 盘大小
   TEAM:执行一组指令
   TEXT:在登录画面中或桌面窗口显示文字,可以设置文字的颜色、位置、字体大小
   WAIT:暂停或等待指定时间后再继续执行命令,单位毫秒
              加前导“-” 表示在指定的等待时间内遇到任何按键即中止等待,否则直至等待时间结束
   FIND:依据条件表达式是否成立来确定执行后面两条指令的一条
   ENVI:设置或清除环境变量
   FILE:根据操作符操作文件或目录,没有操作符则表示删除操作
   LOGS:启用日志以便记录每条命令的执行结果
              配置文件结束之前,必须调用一次不带参数的"LOGS"命令,以关闭日志文件(确保日志写入文件)
   PATH:操作目录,用于设置PECMD.EXE的当前工作目录或建立目录或删除目录
   INIT:执行最基本初始化
   EXEC:执行 EXE 、BAT、CMD 程序
   CALL:调用DLL函数 或 调用子过程
   REGI:读取或设置、删除注册表数据
   HOTK:设置系统热键,并指定该热键执行的命令
   LINK:创建快捷方式,如桌面和程序菜单
   RAMD:设置虚拟磁盘
   LOAD:按顺序逐条运行配置文件中的命令
   SHEL:加载指定的SHELL,并将SHELL锁定
   LOGO:设置或关闭登录画面
   WALL:设置壁纸
   MOUN:将WIM文件中的某个映像挂载到指定的目录中或卸下已经挂载上的映像文件
   NUMK:控制小数字键盘的开关状态
   IFEX:依据条件表达式是否成立来确定执行后面两条指令的一条

2. txtsetup.sif
   TXTSETUP.SI_为 cab 压缩格式,解压即可得 txtsetup.sif,其中包含了 sata、raid 驱动的描述(驱动程序在 SYSTEM32\DRIVERS),修改比较复杂
   其中有一点常见的是 PE 启动时的提示,即 [SetupData] 中的 loaderprompt
   天琴星座 PE 中为:loaderprompt="Starting Lyra SuperMicro Windows PE ..."

3. 注册表修改
   我所知道的注册表文件有 3 个,SYSTEM32 下的 SETUPREG.HIV(由 cab 格式的 SETUPREG.HI_ 解压得到),SYSTEM32\CONFIG 下的 DEFAULT 和 SOFTWARE
   a)打开regedit,选中 HKEY_LOCAL_MACHINE(修改 SETUPREG.HIV 或 SOFTWARE)或 HKEY_USERS(修改 DEFAULT,这个文件也可以加载到 HKEY_LOCAL_MACHINE 修改)

   b)选择“文件->加载配置单元->选择你要修改的注册表文件->打开”,输入项名称时注意不能和当前项下面子项重名

   c)修改加载项中的相关内容,完毕后选中加载的项,选择“文件->卸载配置单元->是”

4. SHELL32.DLL的修改
   用 Resource Hacker 可以修改其中的注册表项(REGINST)、位图、图标、菜单等内容,比较复杂,下面列举一个简单的注册表修改
   修改注册用户(RegisteredOwner)和公司(RegisteredOrganization),这两项在“系统属性”“常规”页面的“注册到”中显示

   用查找功能定位到 RegisteredOwner,将最后一个字符串修改为你需要的名称,选择编译脚本,选择“文件->保存”

   把修改的 SHELL32.DLL 替换到核心的 ISO 中,重新打包为 cab 格式的 WINPE.IS_

   这两项还有一个简单的修改方法就是修改 PECMD.INI(参考 PECMD 的 USER 命令),如在 PECMD.INI 中增加:

 USER 老九*无忧启动论坛

5. 加入 ImDisk 支持并将外置程序 Ramdisk 的 Y盘替换为 ImDisk
   ImDisk 可以加载 img、iso等格式的文件,使用控制面板中的功能可以修改文件大小,也可以生成不关联文件的虚拟内存盘

    a)修改注册表
     下载新版 PECMD,其中的 ImDisk_for_PE.REG 需要导入到 SETUPREG.HIV
     注意 ImDisk_for_PE.REG 中的路径为 HKEY_LOCAL_MACHINE\_PE_,因此 需要将 SETUPREG.HIV 加载到 HKEY_LOCAL_MACHINE,项目名称为 _PE_
     双击 ImDisk_for_PE.REG 导入到注册表,查看 HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Services\,如果下面有 ImDisk 子项则导入成功
     顺便删除注册表中两条 Ramdisk Y盘的信息,分别为
HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Services\Ramdriv
HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Enum\Root\UNKNOWN

    在左侧选中项目,右键->删除
    卸载 _PE_,将修改后的 SETUPREG.HIV 压缩为 cab 格式的 SETUPREG.HI_,替换到内核中

    b)加入相关文件
     将 PECMD 包中的 IMDISK.SYS 加入到内核 SYSTEM32\DRIVERS 下
     将 IMDISK.CPL、IMDISK.EXE、IMDSKSVC.EXE 加入到 SYSTEM32 下,附件中有,也可以从其他已加入 ImDisk 的 PE 中提取

    c)修改 PECMD.INI,加入 ImDisk 虚拟盘
 EXEC !PECMD.EXE RAMD ImDisk,L1,FAT,Y:,ImDisk
    其中 L1 表示最小 1M,FAT 表示格式化为 FAT 格式(虚拟盘太小,不能格式化为 NTFS 格式),Y 表示盘符,详细信息请参考 PECMD

      注意:ImDisk 格式化需要 FMIFS.DLL 支持,天琴星座的内核中没有 FMIFS.DLL,而是放在了外置程序的 PE_OUTERPART 下面的 COMMON.7Z 中
              所以若想将 Y 盘修改为 ImDisk,请将 FMIFS.DLL 加入到内核

   d)在 PECMD.INI 增加如下内容,以加入 ImDisk 右键支持
 `注册IMDISK右键
CALL RegImdRk
`注册IMDISK右键
_SUB RegImdRk
  REGI HKCR\Drive\shell\ImDiskSaveImage\=保存ImDisk虚拟磁盘
  REGI HKCR\Drive\shell\ImDiskSaveImage\command\=rundll32.exe imdisk.cpl,RunDLL_SaveImageFile %L
  REGI HKCR\Drive\shell\ImDiskUnmount\=卸载ImDisk虚拟磁盘
  REGI HKCR\Drive\shell\ImDiskUnmount\command\=rundll32.exe imdisk.cpl,RunDLL_RemoveDevice %L
  REGI HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile\=加载为ImDisk虚拟磁盘
  REGI HKLM\SOFTWARE\Classes\Ultraiso\shell\ImDiskMountFile\command\=rundll32.exe imdisk.cpl,RunDLL_MountFile %L
  REGI HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile\=加载为ImDisk虚拟磁盘
  REGI HKLM\SOFTWARE\Classes\Winimage\shell\ImDiskMountFile\command\=rundll32.exe imdisk.cpl,RunDLL_MountFile %L
_END

    把修改后的 PECMD.INI 替换到内核中

    e)保存修改后的内核 WINPE.ISO,压缩为 WINPE.IS_,修改完毕

6. 修改默认的文件夹视图方式
  a)将 SYSTEM32\CONFIG 下的 DEFAULT,加载到 HKEY_USERS,比如项目名称为 PE

   b)将 HKEY_USERS\PE\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams 导出

   c)将导出文件中关于文件夹视图部分的内容为

 "Settings"=hex:08,00,00,00,04,00,00,00,01,00,00,00,00,77,7e,13,73,35,cf,11,ae,\
   69,08,00,2b,2e,12,62,04,00,00,00,01,00,00,00,43,00,00,00

   d)替换为你想要的格式,不同格式对应内容如下
 

平铺查看
"Settings"=hex:08,00,00,00,06,00,00,00,01,00,00,00,e5,25,f1,65,e1,7b,10,48,ba,\
   9d,d2,71,c8,43,2c,e3,04,00,00,00,1a,00,00,00,43,00,00,00
缩略图查看
"Settings"=hex:08,00,00,00,05,00,00,00,01,00,00,00,90,b2,eb,8b,d0,52,d0,11,b7,\
   f4,00,c0,4f,d7,06,ec,04,00,00,00,07,00,00,00,43,00,00,00
列表查看
"Settings"=hex:09,00,00,00,03,00,00,00,00,00,00,00,e0,a5,1f,0e,73,35,cf,11,ae,\
   69,08,00,2b,2e,12,62,04,00,00,00,01,00,00,00,43,00,00,00
详细信息查看
"Settings"=hex:08,00,00,00,04,00,00,00,01,00,00,00,00,77,7e,13,73,35,cf,11,ae,\
   69,08,00,2b,2e,12,62,04,00,00,00,01,00,00,00,43,00,00,00
图标查看
"Settings"=hex:08,00,00,00,01,00,00,00,01,00,00,00,e0,d0,57,00,73,35,cf,11,ae,\
   69,08,00,2b,2e,12,62,04,00,00,00,20,00,00,00,43,00,00,00

 

   e)保存文件->导入到注册表->卸载单元->替换到内核

   还有一个简单方法就是在 PECMD.INI 中通过设置注册表数据修改

   如设置为图标查看,在 PECMD.INI 中增加:

REGI HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams\Settings=@08,00,00,00,01,00,00,00,01,00,00,00,e0,d0,57,00,73,35,cf,11,ae,69,08,00,2b,2e,12,62,04,00,00,00,20,00,00,00,43,00,00,00

   其中 @ 后面的内容即为上面列举的 "Settings"=hex: 后面的内容,把续行符 \ 去掉即可

7. 系统盘 X、外置程序盘 Y
    a)PE 启动后系统所用盘符 X,查找相关资料后结论基本是不可修改

   b)外置程序所在虚拟盘由 SETUPREG.HIV 中两个子项定义

 HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Services\Ramdriv
HKEY_LOCAL_MACHINE\_PE_\ControlSet001\Enum\Root\UNKNOWN

   其中 HKEY_LOCAL_MACHINE\pe\ControlSet001\Services\Ramdriv\Parameters 下面的
     "DriveLetter"="Y:"  为虚拟盘符,修改后还需要修改 WINPE.INI 中相关内容
     "DiskSize"=dword:00100000 为虚拟盘大小,单位字节,十六进制数 100000
     即为十进制 1048576 = 1024*1024 = 1M


8. PECMD 托盘菜单(没有测试)
   用 Resource Hacker 打开 PECMD.EXE,选择菜单
 



   托盘菜单默认没有宽屏的分辨率,自己增加或修改后编译脚本->保存

   下图中字符串 10025 为 PE 的超级登录口令的 MD5(需要者自己搜索“字符串 MD5”,网上有生成字符串 MD5 值的网页)
   即使 INI 文件中的 SHEL 命令设置了口令,用这个超级口令依然可以登录 PE
   字符串 10026 定义了一个热键,默认对应设置 800*600 的分辨率
 

9. 主配置文件(PECMD.INI)的指定
   加载注册表文件 SETUPREG.HIV,下图的 CmdLine 中指定了主配置文件的路径和文件名

10. 登录画面、壁纸、系统信息及 OEM 信息(没有测试)
   a)WINPE.INI(也有可能在PECMD.INI)中 LOGO 指令后面的图片为“登录画面”

   b)WINPE.INI(也有可能在PECMD.INI)中 WALL 指令后面的图片为“壁纸”

   c)注册号,加载注册表文件 SYSTEM32\CONFIG\SOFTWARE,如下图的 ProductId

 

      这儿应该也可以设置注册用户(RegisteredOwner)和公司(RegisteredOrganization)没有测试和 SHELL32.DLL 中信息的加载顺序如何
   
   d)系统属性常规页的左上角图片和右上角的一些信息可以用  Resource Hacker 打开 SYSTEM32\SYSDM.CPL
      可以看一下位图1,字符串12、13,更多信息请搜索“SYSDM.CPL 修改”

   e)左下角为 OEM 图片的显示位置,做一张170X120左右的BMP文件,文件名指定为 OEMLOGO.BMP,放到 SYSTEM32 目录即可

   f)右下角可以显示 OEM 文字信息按钮,用固定格式写一个文本文件,文件名指定为 OEMINFO.INI,放到 SYSTEM32 目录,格式如下

[General]
Manufacturer=天琴星座
Model=Windows XP SP3 PE
[Support Information]
Line1=版本:090226
Line2=PE DIY

   “=”号后面的内容随意修改,Line可以继续增加,更多信息请搜索“XP OEM 信息”

11. 加入 WIM 文件关联
   论坛中两位高手的工具(lxl1638 的 WimTool 和 nn2nn 的 WiMNT)都非常强大且简单易用,下面以 WiMNT 为例说明加入的方法

   a)将 WIMNT.EXE 加入到内核的 SYSTEM32 目录下

   b)在 PECMD.INI 中增加如下内容

`注册WIM文件关联
EXEC !%WS%\WIMNT.EXE /REG /M /MP Y:\WIM  `注册WIM文件与WIMNT关联

   c)注意 PE 中外置程序加载在 Y 的根下
     代码为 WINPE.INI 中的

MOUN %CurDrv%\MINIPE\OP.WIM,Y:,1
ENVI OPDir=Y:\外置程序
 


   由于 WIM 文件的默认挂载目录设置为 Y:\WIM,所以应将外置也挂载到 Y 下的一个目录,如修改为 

PATH Y:\PROGRAM  `在 Y 盘根下建立目录 PROGRAM
MOUN %CurDir%\OP.WIM,Y:\PROGRAM,1
ENVI OPDir=Y:\PROGRAM\外置程序
 

12. 增加搜索各分区根下 PETOOLS 目录文件功能,并在桌面建立快捷方式
     a)在 SYSTEM32 下增加文本文件 PETOOLS.INI
,内容为

`生成目标文件的快捷方式
_SUB MAKELINK
  LSTR Drive=%TOOLS%,1
  ENVI V0=%StartMenu%\%Drive%盘PETools
  LINK %V0%\target,%TOOLS%
  EXEC =!CMD /C "COPY "%WINDIR%\SYSTEM32\Desktop.in1" "%V0%\Desktop.ini""
  TEAM SITE %V0%\*.*,+A+H+S|SITE %V0%,+R+S|ENVI V0=
  TEAM FORX %TOOLS%\*.INI,TOOLSINI,0,LOAD %TOOLSINI%|ENVI TOOLSINI=
  `TEAM TEXT %TOOLS%已经被装载到了开始菜单。#0xEE,$20|WAIT 1000|TEXT
  MESS %TOOLS%已经被装载到了开始菜单。@挂载PETOOLS工具 #OK *2000
_END
`搜索PETOOLS目录下文件
FORX @\PETOOLS,TOOLS,0,CALL MAKELINK
 

   b)在 SYSTEM32 下增加文本文件 DESKTOP.IN1,内容为

[.ShellClassInfo]
CLSID2={0AFACED1-E828-11D1-9187-B532F1E9575D}
Flags=2
 

   c)在 PECMD.INI 增加建立桌面快捷方式的指令

LINK %Desktop%\搜索装载PETOOLS到开始菜单,PECMD.EXE,LOAD %WS%\PETOOLS.INI,Shell32.dll#45 

   纯内核启动时可用


二、外置

1. 显卡、声卡、网卡驱动

   大概可以如下修改:
   使用提取工具,提取要加入的驱动,加入到外置程序相应的 cab 包中,如显卡 DRIVERS_VGA.CAB,对应的加载文件为 START_VGA.CMD(这个可能不需要修改)

2. 外置程序
   如增加 WINPM9
    a)使用 WIM 工具可写加载 OP.WIM若为 img 格式的外置程序,先用 ImDisk 可写加载 img 文件,Windows 下可用的 ImDisk 下载地址为 http://www.ltr-data.se/opencode.html

    b)在“外置程序”目录建立新目录“WINPM”,将 WINPM9 的所有文件放到 WINPM 目录

   c)卸载 OP.WIM 并确认更新

   d)在 WINPE.INI 中增加

LINK %Programs%\磁盘光盘工具\Paragon Partition Manager 9.0,%OPDir%\WINPM\Program\launcher.exe,,%OPDir%\WINPM\Program\launcher.ico 
   需要添加注册表信息的程序可将相关内容添加到“外置程序”下的 REGDOC.CMD 中
   不同版本程序的更新可能只需要用新程序覆盖原来的即可



三、DOS 工具
   一般为 img 格式文件,可以用 WinImage 修改或用 ImDisk 加载修改
    DOS 工具的启动顺序为:
   CONFIG.SYS -> AUTOEXEC.BAT(批处理)

   AUTOEXEC.BAT 中可能会再加载其他的批处理文件,用文本编辑工具即可修改这些文件
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: WinPEWindows Preinstallation Environment)是微软开发的一款轻量级操作系统环境,用于在计算机上进行安装、部署和恢复Windows操作系统。它以精简的方式提供了一些基本的工具和驱动程序,用于进行系统维护、故障排除和系统部署。虚拟化技术在当前计算机环境中发挥着越来越重要的作用,而virtio是一种用于虚拟化环境的一组驱动程序。 在WinPE中使用virtio驱动程序可以提供更好的虚拟化性能和功能。virtio驱动程序在虚拟化环境中可以与主机系统进行更高效的通信,提供更好的网络和磁盘性能,减少对CPU和内存的使用。通过使用virtio驱动程序,WinPE可以充分利用虚拟机的优势,提高操作效率和性能。 使用virtio驱动程序可以带来多个好处。首先,它可以提供更快的网络连接,更高的数据传输速度和更低的延迟,这对于在WinPE中进行网络安装和配置非常重要。其次,virtio驱动程序还可以提供更好的磁盘性能,包括更高的传输速率和更低的读写延迟。这对于进行文件复制、备份和恢复操作非常有用。 总之,使用WinPE virtio可以显著提高虚拟化环境中的操作效率和性能。它可以带来更快的网络连接和更好的磁盘性能,从而提高系统部署、维护和恢复的效率。对于后续的Windows操作系统安装和配置工作,virtio驱动程序也是一个非常有价值的选择。 ### 回答2: WinPEWindows预安装环境(Windows Preinstallation Environment)的简称,它是一个独立的操作系统环境,用于进行Windows操作系统的安装、部署和维护等任务。而VirtIO是一种基于虚拟化技术的IO设备驱动模型,它旨在提供高性能和高效率的虚拟化IO体验。 当我们在WinPE环境中运行虚拟机时,通常需要安装虚拟机的IO设备驱动才能正常使用。而VirtIO提供的驱动则是专门为虚拟机设计的,可以提供与物理机相当的IO性能。 在WinPE环境下使用VirtIO驱动可以带来一些好处。首先,由于VirtIO驱动是专为虚拟机设计的,它与虚拟化平台紧密集成,可以充分发挥虚拟机的性能优势。其次,使用VirtIO驱动可以减少在WinPE环境中运行虚拟机的I/O延迟,提高虚拟机的响应速度和性能。此外,VirtIO驱动还可以提供更好的设备兼容性和可靠性,保证虚拟机在WinPE环境中的正常运行。 总之,WinPE VirtIO是指在WinPE环境中使用VirtIO驱动以提供高性能、高效率和可靠性的虚拟化IO体验。这是一种优化虚拟机运行的方式,可以提升虚拟机在WinPE环境下的性能和稳定性。 ### 回答3: WinPE是微软开发的一种轻量级的预安装环境,它通常用于在系统启动之前进行诊断、部署和恢复操作。而Virtio是一种虚拟化设备驱动技术,它提供了一套通用的接口,用于在虚拟机与物理主机之间进行高效的数据传输。 在WinPE中使用Virtio技术可以带来一些好处。首先,Virtio驱动可以提供更好的性能和稳定性,因为它们专门为虚拟化环境进行了优化。其次,使用Virtio驱动可以使WinPE能够与虚拟化平台更好地进行通信,实现更高效的数据传输和访问。 使用WinPE和Virtio可以实现许多任务,比如部署操作系统、备份和恢复数据、进行病毒检测和修复、分区管理等。在这些任务中,Virtio驱动可以提供更快的磁盘和网络访问速度,从而加快操作的完成时间。 总之,WinPE和Virtio的结合可以提升预安装环境的功能和性能,使其更适用于虚拟化环境。无论是在企业的系统部署还是个人的系统维护中,使用WinPE virtio都可以带来更好的用户体验和效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值