製作Win7PE精簡版的經驗總結筆記

寫這篇文章的主要目的是做筆記和總結一些經驗。

首先是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會一直卡在啓動界面。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章