admin 管理员组

文章数量: 887021

写这篇文章的主要目的是做笔记和总结一些经验。

首先是WinPE的文件目录:


Program Files

这个目录是程序目录,里面的文件可以全部删除,只保留一个文件就行了:

/Program Files/Internet Explorer/ieproxy.dll

没有这个文件会导致总是在新窗口打开文件夹!


ProgramData

这个目录是程序数据目录,里面与PE有关的就是有几个默认的开始菜单项目。

如果没有什么要求, 是可以全部删除的,我这里保留了一个文件:

ProgramData\Microsoft\Network\Connections\Pbk\rasphone.pbk

因为添加网络功能时,顺便把PPPOE宽带连接功能也保留了,需要用到这个文件。


Users

这个目录是用户配置目录,在PE系统只有一个Default用户。

里面有一些桌面图标,开始菜单,发送到桌面快捷方式,用户图标等。

我不需要这些,所以全部删除。


sources

这个目录是原版安装程序包含的资源,PE系统不需要,直接删除。


Windows

这个目录是核心系统目录了,子目录太多,不能全部介绍了。

我保留了以下目录,这差不多是PE系统最精简的目录结构了:

 Branding
 Fonts
 Globalization
 inf
 resources
 system32
 winsxs
 zh-CN
 explorer.exe
 regedit.exe
 WindowsShell.Manifest

关于字体

Fonts目录是字体目录,原版有好几百M的字库,PE里用不到那么多字体,只需要保留少量几个就行了:

marlett.ttf
simsun.ttc
tahoma.ttf
vga936.fon
vgafix.fon
vgaoem.fon
vgasys.fon

简体中文系统最主要的字体是宋体(simsun.ttc)。

simsun.ttc原版有15MB,可以使用精简版,只需要2.5MB


关于主题

resources目录包含主题文件,保留了经典主题文件classic.theme,否则界面风格有点怪异,

还要保留themeui.dll才能正常使用经典主题,在这个问题上卡了很久时间。

没有这个DLL鼠标指针会变成默认风格很模糊。

我想要的是Windows经典主题,并关闭所有显示动画效果,还需要配合注册表修改才能实现。


关于winsxs:

win7的winsxs非常大,它几乎保留了完整的系统文件,主要是用于系统更新,PE系统并不需要更新系统。

里面99%的文件都可以删除,但以下文件是必须的:

winsxs/
├─manifests
│      x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_5.82.7600.16385_zh-cn_6189e316803d96d4.manifest
│      x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_6.0.7600.16385_zh-cn_b7a33d2d3f47b7fb.manifest
│      x86_microsoft.windowsmon-controls_6595b64144ccf1df_5.82.7600.16385_none_ebf82fc36c758ad5.manifest
│      x86_microsoft.windowsmon-controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc.manifest
│      x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7600.16385_none_72fc7cbf861225ca.manifest
│      x86_microsoft.windows.i..utomation.proxystub_6595b64144ccf1df_1.0.7600.16385_none_9d148a8db8d32238.manifest
│      x86_microsoft.windows.isolationautomation_6595b64144ccf1df_1.0.0.0_none_35d357a66c38ade4.manifest
│      x86_microsoft.windows.systemcompatible_6595b64144ccf1df_6.0.7600.16385_none_49adccbde8169a03.manifest
├─x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_5.82.7600.16385_zh-cn_6189e316803d96d4
├─x86_microsoft.windows.c..-controls.resources_6595b64144ccf1df_6.0.7600.16385_zh-cn_b7a33d2d3f47b7fb
├─x86_microsoft.windowsmon-controls_6595b64144ccf1df_5.82.7600.16385_none_ebf82fc36c758ad5
├─x86_microsoft.windowsmon-controls_6595b64144ccf1df_6.0.7600.16385_none_421189da2b7fabfc
└─x86_microsoft.windows.gdiplus_6595b64144ccf1df_1.1.7600.16385_none_72fc7cbf861225ca

其中manifest下面的以下3个文件比较神秘,没有它们开机会蓝屏:

x86_microsoft.windows.i..utomation.proxystub_6595b64144ccf1df_1.0.7600.16385_none_9d148a8db8d32238.manifest
x86_microsoft.windows.isolationautomation_6595b64144ccf1df_1.0.0.0_none_35d357a66c38ade4.manifest
x86_microsoft.windows.systemcompatible_6595b64144ccf1df_6.0.7600.16385_none_49adccbde8169a03.manifest

另外列表中的:

x86_microsoft.windowsmon-controls_6595b64144ccf1df_5.82.7600.16385_none_ebf82fc36c758ad5

应该是可以删除的,实际上大多数软件使用的是6.0版本的comctl32.dll,这个5.82版本的好像没有什么用。


关于驱动:

inf和system32/drivers目录是系统已安装的驱动,开机时会选择性地加载这些驱动,

其中有很多驱动是可以精简的,比如网卡,打印机等等。

system32/driverstore目录是系统自带的可选驱动,在系统启动后可以选择安装,可以精简的文件也很多。

但是以下文件不能删除,否则有一些奇怪的问题:

drvindex.dat
INFCACHE.1
infpub.dat
infstor.dat
infstrng.dat

关于PECMD

PECMD.exe是PE系统里唯一的第三方软件,没有它其实也可以启动PE,

可以用winpeshl.exe来启动PE系统,不过不太方便。

这里使用的是V4.0.2011.0501,这是个很经典的版本。

需要注意的是PECMD.EXE必须放在system32目录,但PECMD.INI可以放在任意目录。

PECMD的DEVI命令可以很方便地自动安装第三方驱动程序,集成Virtio驱动就是用它加载的。

以下是PECMD.INI的参考设置:

LOGO #0x000000
TEXT #0xFFFFFF L4 T560 R800 B600 $19
INIT IU
EXEC %SystemRoot%\System32\winpeshl.exe
TEXT 正在安装设备驱动……
DEVI %ProgramFiles%\设备驱动\*.inf
EXEC @!=netcfg.exe -e -c p -i MS_NDISWAN
EXEC @!=netcfg.exe -e -c s -i MS_RASMAN
EXEC @!=netcfg.exe -e -c p -i MS_PPPOE
LINK %Desktop%\网络连接,%SystemRoot%\System32\ncpa.cpl,,SHELL32.DLL#17
TEXT 正在加载桌面……
SHEL %SystemRoot%\explorer.EXE
LOGO

这里调用了winpeshl.exe,它可以读取winpeshl.ini,调用wpeinit.exe,从而初始化网络。

如果在PECMD.INI里面直接运行wpeinit.exe会一直卡在启动界面。

 

 

本文标签: 精简版 经验 笔记 Win7PE