赞
踩
写这篇文章的主要目的是做笔记和总结一些经验。
首先是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.windows.common-controls_6595b64144ccf1df_5.82.7600.16385_none_ebf82fc36c758ad5.manifest
- │ x86_microsoft.windows.common-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.windows.common-controls_6595b64144ccf1df_5.82.7600.16385_none_ebf82fc36c758ad5
- ├─x86_microsoft.windows.common-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.windows.common-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会一直卡在启动界面。
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。