首先,要DIY,就要掌握一個(gè)大概的原理,這里說的只是大概。那么PE是如何運(yùn)作的?其實(shí)PE的文件從粗略來分, 可以分為核心和外置程序兩個(gè)部分,相信外置是大家所關(guān)心的,但是這里要先講核心,因?yàn)橥庵檬窃谝欢ǔ潭壬弦蕾嚭诵牡摹? PE的核心格式可分為三種ISO格式,NTFS IMG格式,F(xiàn)AT IMG格式,這三種格式有什么不同先不用管,先講一下PE的運(yùn)作 PE其實(shí)就類似一個(gè)未安裝的系統(tǒng)(只是類似,還是有區(qū)別的),PE的系統(tǒng)文件就在PE的核心中,PE啟動時(shí),會先將一部分 內(nèi)存當(dāng)作硬盤來使用,我們暫且可以稱其為Ramdisk盤,當(dāng)Ramdisk盤設(shè)置好了,就會根據(jù)核心中的txtsetup.sif文件的設(shè)置來進(jìn)行“安裝” ,也就是把核心中的文件釋放到Ramdisk盤當(dāng)中,也就是PE啟動后我們所看到的X盤。當(dāng)PE“安裝”好后就可以進(jìn)入PE了。 接下來,在進(jìn)入PE的桌面前,會根據(jù)x:\I386(或WXPE或其他文件夾名)\system32\PECMD.INI文件來進(jìn)行PE的一些設(shè)置,和調(diào) 用外部配置文件。而外部配置文件就是和外置程序有關(guān)的了。 PE的啟動過程基本就這樣(不包括引導(dǎo)過程),接下來要講講X盤大小的設(shè)置問題,X盤正如上面所說的,是PE的系統(tǒng)文件所 在地,那么在調(diào)整X盤的大小前弄明白調(diào)整它的意義,舉一個(gè)簡單的例子,假如一個(gè)PE的系統(tǒng)文件一共有60M,而X盤的大小只有 61M,那么就有1M的空間剩余。假如你想啟動網(wǎng)絡(luò),那當(dāng)然是要先安裝網(wǎng)卡驅(qū)動。而網(wǎng)卡驅(qū)動當(dāng)然不只1M那么小,這樣說來, X盤的剩余空間就不足夠你安裝網(wǎng)卡驅(qū)動。那么網(wǎng)絡(luò)就會無法啟動,假如我把X盤調(diào)整到70M,那么10M的剩余空間就足夠安裝網(wǎng)卡驅(qū)動了。 那么現(xiàn)在,結(jié)果出來了,當(dāng)你的外置程序中含有需要解壓到核心的東西時(shí),例如驅(qū)動,則核心中就必須預(yù)留空間。那么意義明 確了,不同的PE,核心就需要進(jìn)行相應(yīng)的調(diào)整,這樣才可以達(dá)到最大利用率。
ISO核心PE的X盤大小調(diào)整方法(以毛桃0911為例)
找到核心文件WINPE.IS_,用WINRAR打開,把里面的WINPE.ISO提出來.用ULTRAISO打開WINPE.ISO,找到WXPE\SYSTEM32\PECMD.INI文件 ,看到FBWF這行,這條命令就是用來設(shè)置X盤大小的,不需要懂原理,會用就可以了. 命令參數(shù)如下: FBWF [P可用內(nèi)存百分?jǐn)?shù)] [L最小值] [H最大值] FBWF P20 L32 H64 三個(gè)參數(shù)都可單獨(dú)使用,如 FBWF L64 表示強(qiáng)制設(shè)置 64M 的 FBWF;FBWF命令必須在MOUN命令之后。這樣就可以設(shè)置X盤的大小 了,把修改后的ISO保存,再用CAB壓縮就OK.
IMG核心中X盤大小調(diào)整方案 一.FAT IMG X盤調(diào)整方案 1、類似ISO一樣調(diào)整FBWF(不過FBWF+IMG+卡巴=藍(lán)屏,并且FBWF不太穩(wěn)定),方法是先用WINRAR解壓后綴為IM_的文件,把里面的IMG 后綴的文件解壓出來,然后用VDM加載,同樣找到WXPE(這個(gè)文件夾名能會有點(diǎn)變化,不同的PE可能不同)\SYSTEM32\PECMD.INI,調(diào)整好后, 卸載鏡象.再用CAB壓縮. 2、直接建立所需要大小的IMG(即X盤需要70M就建立70M大的IMG,并關(guān)閉FBWF) 假設(shè)我的PE的系統(tǒng)文件為60M,那么我要建立一個(gè)70M的IMG,則先打開VDM,建立一個(gè)70M的IMG,然后加載IMG-----格式化為FAT格式--- 把PE的文件都復(fù)制進(jìn)去---卸載IMG-----在如上圖最右邊的壓縮按鈕。 這里還要再提一下,表面上PE的系統(tǒng)文件為60M,PE核心大小為70M,那么就多了10M空間,但啟動后,X盤的剩余空間會比10M要大 一些,這是因?yàn)閱雍髸h除一些啟動后就沒用的文件,例如SRS驅(qū)動等。
二.NTFS IMG X盤調(diào)整方案 1、用FBWF(方法和FAT IMG一樣,但也會藍(lán)屏) 2.建立所需大小的IMG(和FAT IMG有所不同,請注意),因?yàn)槭荖TFS格式的關(guān)系,所以我們可以起用NTFS壓縮來自動壓縮核心中 的文件,例如,60M的文件,經(jīng)過NTFS壓縮后就變成了48M。那么我們建立核心只要52M就可以放下原來是60M的文件。 過程是這樣的:建立一個(gè)50M的IMG-----格式化為NTFS格式-----啟用NTFS壓縮,接下來到了關(guān)鍵的一步,就是復(fù)制文件,這里和FAT IMG的 復(fù)制不同,F(xiàn)AT IMG是一次全部復(fù)制過去就可以了,但NTFS IMG不可以。 首先把SYSTEM32目錄以外的目錄先復(fù)制過去,SYSTEM32目錄里的文件要幾個(gè)一批慢慢復(fù)制,遇到體積較大的文件如SHELL32.DLL, 一次復(fù)制一個(gè),假如遇到提示磁盤空間不足,則卸載IMG,重新再掛載再繼續(xù)復(fù)制,直到所有文件都復(fù)制完畢。復(fù)制完成后就可以卸載IMG了 ,然后把后綴名改為IM_,這里不要用CAB壓縮,具體原因看下面PE啟動內(nèi)存的計(jì)算。
PE啟動內(nèi)存計(jì)算
PE的啟動內(nèi)存和核心有關(guān),大概為下面這個(gè)公式(只是大概) 1、用CAB壓縮過的核心 X*2+16(單位MB)(X為未壓縮時(shí)的核心大?。? 2、不用CAB壓縮的核心 X+32(單位MB)(X為未壓縮時(shí)的核心大?。? 這里就可以解釋為什么NTFS IMG的核心一般不用CAB壓縮,因?yàn)镹TFSIMG格式的核心用CAB壓縮效果很差,壓縮率低, 例如:50M的NTFS IMG用CAB壓縮后才35M,而70M(里面有60M的文件)的FATIMG用CAB壓縮后,體積變成了26-29M左右。 所以NTFS IMG不用CAB壓縮,體積減小不多,而啟動內(nèi)存要加倍,因小失大 關(guān)于安裝配置文件txtsetup.sif的簡單說明 相信玩過精簡版系統(tǒng)的朋友都知道這個(gè)文件的用途,同樣PE里也有這個(gè)文件,這也是為什么我在文章一開始把PE比喻成類似未安裝的系統(tǒng) ,廢話不多說,我就簡單講講這個(gè)文件。 [WinntDirectories] 這個(gè)字段是用代碼表示文件拷貝的目標(biāo)文件夾,其根目錄為%WinDir%即安裝指定的Windows文件夾。 [SourceDiskFiles] 根據(jù)前面設(shè)定的代碼表示文件拷貝的具體細(xì)節(jié)。 下面三段為集成SATA SCSI等驅(qū)動時(shí)所用 [HardwareIdsDatebase]—硬件標(biāo)識 [SCSI.load]——SCSI驅(qū)動加載 [SCSI]——SCSI設(shè)備說明
添加srs驅(qū)動實(shí)例
在PE中添加sata,raid驅(qū)動的方法:(這里以Intel Matrix Storage Manager driver為例,以便于說明, 以下描述的驅(qū)動文件名只基于本實(shí)例,實(shí)際操作中的具體的文件名稱以需要添加的具體驅(qū)動為準(zhǔn)) 一. 準(zhǔn)備材料: 1、原版驅(qū)動文件 2、從PE中提取的txtsetup.sif文件
二. 從PE中提取txtsetup.sif文件: 先將PE中的winpe.is_重命名為winpe.cab,然后用RAR解壓出winpe.iso 用UltraISO打開它,將txtsetup.sif提取出來,并用記事本打開備用。
三. 修改txtsetup.sif文件 1.、打開驅(qū)動包,里面有一個(gè)擴(kuò)展名為“.inf”或“.oem”的小文件,如“oemsetup.inf”或者 “txtsetup.oem”等(本例中為“txtsetup.oem”),用記事本打開備用; 2.、在txtsetup.sif中查找[SourceDisksFiles]字段,在其下添加iaStor.sys=1,,,,,,4_,4,1,,,1,4 3.、查找[SCSI.Load]字段,在其下添加iaStor=iaStor.sys,4 4、切換到剛才打開的txtsetup.oem,查找HardwareIds關(guān)鍵字,將該字段下的代碼全部拷貝到txtsetup.sif文件 的[HardwareIdsDatabase]字段末尾,但需要更改一下代碼的格式,比如將id ="PCI\VEN_8086&DEV_27C3&CC_0104","iaStor"改 為PCI\VEN_8086&DEV_27C3&CC_0104=iaStor 5、查找[SCSI]字段,在其下添加iaStor="Intel(R) 82801FBM SATA AHCI Controller (Mobile ICH6M)" 至此,修改txtsetup.sif文件部分完成,將修改后的sif文件替換原來的文件。
四. 復(fù)制驅(qū)動文件 將驅(qū)動文件iaStor.sys用makecab.exe壓縮成iaStor.sy_并添加到PE的system32\DRIVERS目錄下,然后將修改后 的winpe.iso用makecab.exe重新壓縮成winpe.is_替換原來的文件。 至此整個(gè)添加驅(qū)動工作完成,重啟動以測試成功與否。 關(guān)于更詳細(xì)的txtsetup.sif的用法,可以到精簡區(qū)搜索,那里有不少教程,我這里就不多說了。 關(guān)于修改PE的注冊表 要DIY核心,修改注冊表是肯定要會的,先找到SYSTEM32目錄下的setupreg.hi_,用WINRAR打開把里面的setupreg.hiv解壓出來 。打開開始菜單---運(yùn)行----輸入regedit,用鼠標(biāo)選中HKEY_LOCAL_MACHINE項(xiàng),然后單擊文件---加載外部配置文件 然后找到剛剛的那個(gè)setupreg.hiv加載,然后提示項(xiàng)名稱,這里隨便填,我填"!"方便區(qū)分。 之后,你就可以修改!項(xiàng)里的注冊表了,!項(xiàng)里的就是PE的注冊表,修改完了后不要忘記卸載配置單元, 選中!項(xiàng),按文件—卸載配置單元。最后用CAB把修改好的setupreg.hiv文件壓縮再替換原文件即可。 這一步主要是指修改WinPE的注冊表,可以直接修改WinPE注冊表,也可以修改配置文件。 1、修改內(nèi)部注冊表的方法: 用前面修改 PECMD.INI 的方法將內(nèi)部注冊表的文件提取出來: \WXPE\SYSTEM32\CONFIG\*.* \WXPE\SYSTEM32\SETUPREG.HI_ (這是CAB壓縮包,將它解開成 SETUPREG.HIV) 運(yùn)行注冊表編輯器 REGEDIT.EXE,鼠標(biāo)點(diǎn)擊 HKEY_LOCAL_MACHINE,然后點(diǎn)“文件”-“加載配置單元”, 打開提取出來的注冊表文件(需要改哪個(gè)就加載哪個(gè)),提示掛載名時(shí)隨便輸入取一個(gè)名字如“WinPE”, 展開 HKEY_LOCAL_MACHINE 后里面就有一項(xiàng) WinPE,然后就跟普通的注冊表操作一樣了,改好后用鼠標(biāo)點(diǎn)一下 “WinPE”項(xiàng)目,然后“文件”-“卸載配置單元”,這個(gè)文件就改好了。用改過的注冊表文件替換原來的。 2、修改配置文件的方法: 對于普通的不依賴于外置程序目錄結(jié)構(gòu)的注冊表項(xiàng)目,可以用常規(guī)方法將修改項(xiàng)寫成 REG 文件(可以直接從 XP 系統(tǒng)中導(dǎo)出,然后在其基礎(chǔ)上修)。在外置程序目錄下有個(gè) RegDoc.cmd,這個(gè)文件是毛桃用來注冊外置程序文檔關(guān)聯(lián)的(就是改注冊表), 可以用記事本打開它,加入一行: REGEDIT /s REG文件名 則 WinPE 加載外部配置時(shí)它會自動導(dǎo)入。 這是最簡單的改注冊表的方法。但是如果要改的項(xiàng)依賴于外置程序的目錄結(jié)構(gòu)(比如要在右鍵菜單中添加用 UltraEdit32 打開), 就不能用上面的方法了,因?yàn)橥庵贸绦虻慕^對路徑是不確定的(不同的機(jī)器中盤符不能確定)。這種情況就需要用原始的 REG 命令來做 了(就跟老毛桃在REGDOC.CMD 中的做法一樣),這個(gè)命令的語法比較艱懂,且注冊表鍵值的表示方法跟 REG 文件不同。在命令提示符 下通過 /? 參數(shù)可以獲得它的用法(中文的哦),提醒一下 /? 參數(shù)是個(gè)以多層使用的,如 REG /? 得到的是基本參數(shù)的說明,如用 REG ADD /? 則 可得到 ADD 這個(gè)參數(shù)的用法……,有了這個(gè)命令的基礎(chǔ)后,我們來看看是怎么解決不定路徑問題的。在 REGDOC.CMD 中有一個(gè)環(huán)境變量 %TP%, 代表的是 REGDOC.CMD 這個(gè)文件所在的路徑。我們可以通過 %TP%\..\ 表示它的上層目錄,%TP%\..\..\ 表示它的上兩層目錄。 用此方法可以索引到外置程序目錄內(nèi)的所有路徑,而不用考慮外置程序目錄本身的絕對路徑。還有個(gè)方法就是在 WinPE.INI 中用 PECMD 的 REGI 命令一行行添加,這個(gè)比系統(tǒng)的 REG 命令好理解些,同樣可以用 %CurDir% 環(huán)境變量來索引外置程序目錄內(nèi)的所有路徑.直接修改的 好處是啟動 WinPE 就是所需要設(shè)置,不依賴外部配置文件,WinPE 的加載速度也比較快,但麻煩。修改配置文件則比較簡單,但要依賴配置 文件加載過程(直到加載到那些語句時(shí)才會生效),啟動時(shí)需要額外的時(shí)間加載,相當(dāng)于給系統(tǒng)打補(bǔ)丁去修改默認(rèn)設(shè)置。 一般情況下不推薦直接修改WinPE注冊表,麻煩,重新打包也比較花時(shí)間。但有些跟系統(tǒng)緊密的鍵必須直接修改才有效,比如屏幕分辨率, 雖然在外面也可以修改有,但在登錄時(shí)加載到它之前是無效的,那么在登錄的過程中屏幕就會因切換分辨率而閃爍。 自己修改注冊表的前提是自己要知道所希望的改變要修注冊表中的哪些鍵值??梢陨暇W(wǎng)搜索,現(xiàn)在網(wǎng)上的這些資源多得是, 實(shí)在找不到的話可以還可以用 RegMon 之類的注冊表監(jiān)視軟件來定位。比如修改記事本的自動換行,又不知道相應(yīng)的鍵值在哪。 可以先開啟 RegMon,然后在記事本中改變換行的選項(xiàng),看 RegMon 的監(jiān)視結(jié)果,來定位是哪個(gè)鍵值。因?yàn)橄到y(tǒng)本身也在不斷的 更改注冊表,RegMon 中的顯示會很多,但是通過不斷的改變記事本中的設(shè)置,最終是可以找到的,這個(gè)過程需要的是耐心和細(xì)心。 ========================================================================== WinPE核心DIY修改教程二 ------------------------------------------------------------------------- 修改WinPE的OEM信息 1、提取文件 從WinPE鏡像光盤中提取WinPE.IS_并解壓,得到WinPE.ISO,提取其中需要的文件 2、修改 修改OEM文字信息請編輯OEMINFO.INI (用記事本編輯即可),修改OEM圖標(biāo)請用作圖工具編輯 3、替換文件&壓包 用UltraISO把修改好的文件替換到WinPE.ISO中對應(yīng)的位置,再把WinPE.ISO用makecab壓為WinPE.IS_文件, 最后用UltraISO把剛壓縮得到的WinPE.IS_替換到原始WinPE光盤(鏡像)中生成新的WinPE光盤(鏡像) 備注:有的修改OEM信息是修改Winpe.ini 文件。
刪除桌面上的“命令提示符” 修改注冊表,刪除以下鍵值 [HKEY_LOCAL_MACHINE\SOFTWARE\Sherpya\XPEinit\Desktop] "@shell32.dll,-22022"=hex(2):25,00,63,00,6f,00,6d,00,73,00,70,00,65,00,63,00,\ 25,00,00,00 或者: REG DELETE HKLM\SOFTWARE\Sherpya\XPEinit\Desktop /v @shell32.dll,-22022 /f>nul
刪除桌面上的“我的文檔” 修改注冊表,刪除以下鍵值 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\ClassicStartMenu] "{450D8FBA-AD25-11D0-98A8-0800361B1103}"=dword:00000001 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\HideDesktopIcons\NewStartPanel] "{450D8FBA-AD25-11D0-98A8-0800361B1103}"=dword:00000001
刪除右鍵菜單中的“管理” [HKEY_LOCAL_MACHINE\soft\Classes\CLSID\{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell\Manage] 紅色部分為注冊表加載項(xiàng)的名稱
修改文件夾視圖方式 [HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Streams] 1、平鋪查看 "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 2、縮略圖查看 "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 3、列表查看 "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 4、詳細(xì)信息查看 "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 5、圖標(biāo)查看 "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
修改虛擬驅(qū)動器X盤的大小 先把WinPE.IS_解壓成WinPE .ISO,然后修改WXPE\SYSTEM32里的PECMD.INI的相關(guān)參數(shù) //配置文件開始 FBWF P40 L32 H96 TEAM ENVI S=%SystemRoot%|ENVI SS=%S%\SYSTEM32|ENVI SSD=%SS%\Drivers TEAM FILE %S%\TXTSETUP.SI*|FILE %SS%\NTOSKRNL.EX*|FILE %SS%\WIN32K.SYS|FILE %SS%\CONFIG|FILE %SS%\*.*_|FILE %SSD%\*.SY_ TEAM LOGS %S%\PECMD.LOG|MDIR %SystemDrive%\TEMP|ENVI|INIT|EXEC @PECMD.EXE CALL $SHELL32.DLL,DllInstall,#1,U ......................... P代表可用內(nèi)存的40% L代表最低設(shè)置為32MB H代表最高設(shè)置為96MB 最高設(shè)置可以不超過256MB 當(dāng)然有P40 這個(gè)參數(shù)在,H 設(shè)置成512也沒事,也不會出現(xiàn)內(nèi)存用光的情況
在WinPE中如何多建立一個(gè)Ramdisk盤 解開winpe.is_,得到winpe.iso,然后提取setupreg.hiv,用注冊表編輯器加載到HKEY_LOCAL_MACHINE下,取名為!system,然后導(dǎo)入下面這個(gè)reg Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\!system] [HKEY_LOCAL_MACHINE\!system\ControlSet001] [HKEY_LOCAL_MACHINE\!system\ControlSet001\Enum] [HKEY_LOCAL_MACHINE\!system\ControlSet001\Enum\Root] [HKEY_LOCAL_MACHINE\!system\ControlSet001\Enum\Root\UNKNOWN] [HKEY_LOCAL_MACHINE\!system\ControlSet001\Enum\Root\UNKNOWN\9999] "ClassGUID"="{FFA1C341-4539-11D3-B88D-00C04FAD5172}" "Class"="RamDisk" "ConfigFlags"=dword:00000004 "Mfg"="Nu2 Productions" "HardwareID"=hex(7):72,00,61,00,6d,00,64,00,72,00,69,00,76,00,00,00,00,00 "Service"="Ramdriv" "DeviceDesc"="Ramdisk" "Capabilities"=dword:00000000 "Driver"="{FFA1C341-4539-11D3-B88D-00C04FAD5172}\\0001" [HKEY_LOCAL_MACHINE\!system\ControlSet001\Enum\Root\UNKNOWN\9999\Control] "DisableCount"=dword:00000000 "ActiveService"="Ramdriv" "FilteredConfigVector"=hex(7):30,00,30,00,00,00,30,00,30,00,00,00,30,00,30,00,\ 00,00,30,00,30,00,00,00,30,00,30,00,00,00,30,00,30,00,00,00,30,00,30,00,00,\ 00,30,00,30,00,00,00,30,00,30,00,00,00,30,00,30,00,00,00,30,00,30,00,00,00,\ 30,00,30,00,00,00,00,00 [HKEY_LOCAL_MACHINE\!system\ControlSet001\Services] [HKEY_LOCAL_MACHINE\!system\ControlSet001\Services\Ramdriv] "Type"=dword:00000001 "Start"=dword:00000003 "ErrorControl"=dword:00000001 "DisplayName"="Ramdisk" "ImagePath"="system32\\drivers\\ramdriv.sys" [HKEY_LOCAL_MACHINE\!system\ControlSet001\Services\Ramdriv\Enum] "0"="Root\\UNKNOWN\\9999" "Count"=dword:00000001 "NextInstance"=dword:00000001 [HKEY_LOCAL_MACHINE\!system\ControlSet001\Services\Ramdriv\Parameters] "BreakOnEntry"=dword:00000000 "DebugLevel"=dword:00000005 "DebugComp"=dword:ffffffff "DiskSize"=dword:00100000 "DriveLetter"="B:" "RootDirEntries"=dword:00000200 "SectorsPerCluster"=dword:00000002 其中DiskSize是內(nèi)存盤的大小,DriveLetter是內(nèi)存盤盤符
DiskSize是內(nèi)存盤的大小 32 m 0x02000000 64 m 0x04000000 96 m 0x06000000 128 m 0x08000000 最后把修改好的setupreg.hiv卸載并放回winpe.iso中,system32\drivers還要加入Ramdriv.sys。 另外可以把Ramdriv.sys 改名,并修改相關(guān)的注冊表就可再建其它Ramdisk盤 ========================================================================== WinPE核心DIY修改教程三 ------------------------------------------------------------------------- WinPE個(gè)性化 用記事本打開“外置程序”——“pe_outerpart”——start_sound.md的文件,在最后加上一句: //刪除WinPE桌面上的啟用聲音支持快捷方式 PECMD.EXE FILE %USERPROFILE%\桌面\啟用聲音支持.lnk //添加WinPE桌面上的音量調(diào)節(jié)快捷方式 PECMD.EXE LINK !%USERPROFILE%\桌面\調(diào)節(jié)音量,%systemroot%\system32\sndvol32.exe //刪除WinPE桌面上的啟動網(wǎng)絡(luò)支持快捷方式 PECMD.EXE FILE %USERPROFILE%\桌面\啟用網(wǎng)絡(luò)支持.lnk
在Grub菜單中空一行 menu.lst菜單文件中紅色部分就是留空的哪一行 timeout 30 default 4
find --set-root /minipe/boot/sanic.ico fontfile /minipe/boot/fonts.gz splashimage /minipe/boot/back.gz title ? 至于這個(gè)?,可以先按下ALT,再用小鍵盤輸入255,即可。
定制WinPE啟動時(shí)顯示中文進(jìn)度條 1、用UE打開Setupldr.bin查找bootfont修改所有bootfont.bak為bootfont.bin (中文支持字體文件,在WinXP系統(tǒng)的根目錄下可以找到?;蛘咧苯诱业絙ootfont.bin文件,修改為bootfont.bak) 2、在偏移45358h處找到00 DB 00修改DB為3E(可以選擇自己喜歡的半角符號的16進(jìn)制碼) 或16進(jìn)制查找00 DB 00修改 3、修改你認(rèn)為有必要修改的英文提示字符串為中文(注意合適的字節(jié)數(shù)),最好也把TXTSETUP.SIF里的那句也改成中文 4、將bootfont.bin放在WinPE 的根目錄下 5、將修改后的Setupldr.bin替換原來的Setupldr.bin
定制WinPE系統(tǒng)中系統(tǒng)屬性 在外置程序目錄下的加載外置程序那個(gè)批處理中添加代碼如下: reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v RegisteredOwner /t reg_sz /d 網(wǎng)絡(luò)種豬 /f >nul reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v RegisteredOrganization /t reg_sz /d 逸天網(wǎng)絡(luò) /f >nul reg delete "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion" /v ProductId /f >nul 2>nul del /a /f /q %systemroot%\system32\oeminfo.ini >nul 2>nul del /a /f /q %systemroot%\system32\oemlogo.bmp >nul 2>nul 以上的“網(wǎng)絡(luò)種豬”是注冊的用戶名,“逸天網(wǎng)絡(luò)”是注冊的單位名,你想修改成什么就是什么。但要注意的是文字中間不能有空格,如果要隔開可以用智能ABC的v1的代替,否則修改不了原來的信息。
修改WinPE啟動畫面 1、首先需要一個(gè)工具軟件ResHacker 2、找到ntoskrnl.exe文件。復(fù)制兩份,一份作為備份,一份用來編輯 3、用ResHacker打開用來編輯的ntoskrnl.exe文件,找到第一項(xiàng):Bitmap\1\2052,然后選擇菜單保存為1.bmp。用同樣方法把第八項(xiàng)(Bitmap\8\2052)也保存為8.bmp 4、用Photoshop打開1.bmp文件,這時(shí)候圖片是全黑的。接著選圖像-->模式-->顏色表,載入16.act文件,OK,現(xiàn)在應(yīng)該可以看到圖像了 5、分別編輯完畢以后,再選圖像-->模式-->顏色表,載入win.pal,這時(shí)候圖片應(yīng)該再次變黑,保存 6、在ResHacker中用編輯好的1.bmp和8.bmp文件分別替換ntoskrnl.exe中的相應(yīng)文件。打開ResHacker“操作”菜單,找到“替換位圖”,在“打開新位圖文件”找到剛才編輯好保存的1.bmp文件,選擇“打開”-->“替換”,最后保存ntoskrnl.exe文件 注意:開機(jī)畫面只支持16色、如果想換圖片找些16色的圖片來做吧、還有替換前要先備份好系統(tǒng)、以免出錯(cuò) 加載隱藏分區(qū)的外圍程序 首先要看外置程序是用什么樣的封裝了 1、如果是WIM格式封裝的外置程序,就可以不用將隱藏分區(qū)SHOW出來也是可以加載的 2、如果是普通文件的外置程序,就必須要將隱藏分區(qū)SHOW出來才能加載的 具體步驟:在內(nèi)核的PECMD.INI中加入一句: show WINPE外置程序修改 本文不涉及任何技術(shù)性的東西,期望目的在于讓剛接觸 PE 的朋友能對 PE 進(jìn)行簡單的修改,以適合自己使用。我只是根據(jù)自己學(xué)習(xí)的過程, 將它們整理到一起而已(有可能我自己認(rèn)識錯(cuò)誤導(dǎo)致后面的內(nèi)容錯(cuò)誤,請高手指正,如果高手們有耐心看的話)。 包含以下幾個(gè)方面的內(nèi)容: 1、增減外置程序 2、定制登錄過程 3、修改外置程序目錄名 4、修改系統(tǒng)設(shè)定(注冊表) 5、添加驅(qū)動 需要會使用的幾個(gè)工具軟件: 1、UltraISO / WinRAR 2、CAB 打包軟件 MakeCAB ========================================================================== WinPE核心DIY修改教程四 ------------------------------------------------------------------------- 一、增減外置程序 外置程序在光盤的“外置程序”目錄中,對應(yīng)的配置文件是該目錄下的 WinPE.INI 刪除程序只須刪除該軟件在外置程序目錄對應(yīng)的子目錄,再刪除 WinPE.INI 中相應(yīng)的 LINK 創(chuàng)建快捷方式的語句行即可。 添加程序正好相反,將綠色軟件放到外置程序目錄中,在 WinPE.INI 中加入相應(yīng)的 LINK 語句行創(chuàng)建快捷方式即可 (參照其它 LINK 語句,復(fù)制一行,只須要改一下快捷方式的位置、名稱/目標(biāo)程序的目錄名、可執(zhí)行文件名)。 這里所說的綠色軟件是指能在 PE 中運(yùn)行綠軟,網(wǎng)上所見的大多綠軟并不是真正的綠色軟件,應(yīng)該叫準(zhǔn)綠色軟件或者免安裝軟件。 實(shí)際上很多并不是為 PE 準(zhǔn)備的軟件也是可以在 PE 中運(yùn)行的,用一個(gè)笨辦法來判斷一個(gè)普通的綠軟是否可以直接在 PE 中運(yùn)行, 啟動 PE 環(huán)境,找到該軟件所在目錄,復(fù)制一份備份,然后將該目錄和目錄下的所有文件屬性改為只讀,直接雙擊目錄內(nèi)的可執(zhí)行文件, 看能否運(yùn)行,運(yùn)行后各項(xiàng)功能都使用一下看是否正常,如無異常,則可按上面的方法簡單加入。 如運(yùn)行異常,有可能缺某些庫文件(這種情況一般有提示),或它在自己的目錄內(nèi)寫東西,或依賴注冊表中的某些鍵值,這就需要?jiǎng)?/font> 點(diǎn)手腳,如準(zhǔn)備缺少的庫文件,看它自己的目錄下有沒有配置文件可以修改,在 XP 中運(yùn)行監(jiān)視它要讀些哪些注冊表項(xiàng)。這種情況對 不同的軟件解決的方法不同,也可能無法解決,不過此種情況超出本文的定位,不再詳述。
二、定制登錄過程 這一項(xiàng)改動需要熟悉 PECMD 各命令的用法,讀懂配置內(nèi)外配置文件,最好對系統(tǒng)登錄的過程有點(diǎn)了解。 只作為興趣,因?yàn)槔厦业牡卿涰樞驇缀跻矝]什么可改動的了,可以留給我們定制的就是改改提示句、外置程序的加載方式、調(diào)整一下細(xì)節(jié)而已。 這一過程會涉及到內(nèi)部配置文件: 1、將光盤映像根目錄中的 WinPE.IS_ 用 UltraISO 或 WinRAR 提取出來 2、將名稱改成 WinPE.CAB(不改也可以,但用 WinRAR 打開會麻煩點(diǎn)) 3、用 WinRAR 將其中的 WinPE.ISO 解壓出來 4、用同樣的方法,將 WinPE.ISO 中的 WXPE\SYSTEM32\PECMD.INI 提取出來 (要修改什么文件就提取什么文件,后面的改注冊表也要用到此方法) 5、按自己的需要修改提取出來的文件 6、將修改后的文件放入 WinPE.ISO 中替換原來的(目錄位置一定要相同) 7、用 CAB 打包工具將 WinPE.ISO 重新打包為 WinPE.IS_ 8、再將 WinPE.IS_ 放到老毛桃的光盤映像中替換原來的 注:用 UltraISO 修改 ISO 映像文件時(shí)最好用另存,以免改錯(cuò)了原來的備份也沒有了。
三、修改外置程序目錄名 要改動的地方有 3 個(gè)文件 + 1 個(gè)目錄名: 1、內(nèi)部配置文件 PECMD.INI(修改方法見前面說明) 2、\外置程序\WinPE.INI (前面的根指光盤映像的根目錄) 3、\WINPE安裝\SETUP.INI (老毛桃的安裝卸載程序要用它) 4、外置程序的目錄名(這個(gè)是當(dāng)然的) 將三個(gè) INI 文件提取出來按下面的步驟修改,假設(shè)新名為 "NEWNAME": 1、用記事本打開 INI 文件,將光標(biāo)定在文件最前面 2、菜單:編輯-替換... 3、在“查找內(nèi)容”編輯框中輸入"\外置程序"(不含引號) 4、在“替換為”編輯框中輸入"\NEWNAME"(不含引號) 5、點(diǎn)全部替換 6、在“查找內(nèi)容”編輯框中輸入"外置程序\"(不含引號) 7、在“替換為”編輯框中輸入"NEWNAME\"(不含引號) 8、點(diǎn)全部替換 9、保存 用修改后的文件替換下載的光盤映像中原來的(外置程序這個(gè)目錄的名字可以直接在 UltraISO 中改) 說得這么麻煩只是為了防止漏改或者將注釋也給改了,實(shí)際上新版本因采用的 %CurDir% 這個(gè)環(huán)境變量后,要改的只有幾個(gè)地方,手工改也是可以的。
四、修改系統(tǒng)設(shè)定 這一步主要是指修改 PE 的注冊表,可以直接修改PE注冊表,也可以修改配置文件。 1、修改內(nèi)部注冊表的方法: 用前面修改 PECMD.INI 的方法將內(nèi)部注冊表的文件提取出來: \WXPE\SYSTEM32\CONFIG\*.* \WXPE\SYSTEM32\SETUPREG.HI_ (這是CAB壓縮包,將它解開成 SETUPREG.HIV) 運(yùn)行注冊表編輯器 REGEDIT.EXE,鼠標(biāo)點(diǎn)擊 HKEY_LOCAL_MACHINE,然后點(diǎn)“文件”-“加載配置單元”, 打到提取出來的注冊表文件(需要改哪個(gè)就加載哪個(gè)),打開,提示掛載名時(shí)隨便輸入取一個(gè)名字如“WinPE”,展開 HKEY_LOCAL_MACHINE 后里面就有一項(xiàng) WinPE,然后就跟普通的注冊表操作一樣了,改好后用鼠標(biāo)點(diǎn)一下 “WinPE”項(xiàng)目,然后“文件”-“卸載配置單元”,這個(gè)文件就改好了。 用改過的注冊表文件替換原來的。 2、修改配置文件的方法: 對于普通的不依賴于外置程序目錄結(jié)構(gòu)的注冊表項(xiàng)目,可以用常規(guī)方法將修改項(xiàng)寫成 REG 文件(可以直接從 XP 系統(tǒng)中導(dǎo)出,然后在其基礎(chǔ)上修)。在外置程序目錄下有個(gè) RegDoc.cmd,這個(gè)文件是毛桃用來注冊外置程序 文檔關(guān)聯(lián)的(就是改注冊表),可以用記事本打開它,加入一行: REGEDIT /s REG文件名 則 PE 加載外部配置時(shí)它會自動導(dǎo)入。 這是最簡單的改注冊表的方法。但是如果要修的項(xiàng)依賴于外置程序的目錄結(jié)構(gòu)(比如要在右鍵菜單中添加用 UltraEdit32 打開),就不能用上面的方法了,因?yàn)橥庵贸绦虻慕^對路徑是不確定的(不同的機(jī)器中盤符不能確定)。 這種情況就需要用原始的 REG 命令來做了(就跟毛桃在REGDOC.CMD 中的做法一樣),這個(gè)命令的語法比較艱澀,
且注冊表鍵值的表示方法跟 REG 文件不同。在命令提示符下通過 /? 參數(shù)可以獲得它的用法(中文的哦),提醒一下 /? 參數(shù)是個(gè)以多層使用的,如 REG /? 得到的是基本參數(shù)的說明,如用 REG ADD /? 則可得到 ADD 這個(gè)參數(shù)的用法…… 有了這個(gè)命令的基礎(chǔ)后,我們來看看是怎么解決不定路徑問題的。 在REGDOC.CMD 中有一個(gè)環(huán)境變量 %TP%,代表的是 REGDOC.CMD 這個(gè)文件所在的路徑。我們可以通過 %TP%\..\ 表 示它的上層目錄,%TP%\..\..\ 表示它的上兩層目錄。用此方法可以索引到外置程序目錄內(nèi)的所有路徑,而不用考慮外置程序目錄本身的絕對路徑。 還有個(gè)方法就是在 WinPE.INI 中用 PECMD 的 REGI 命令一行行添加,這個(gè)比系統(tǒng)的 REG 命令好理解些,同樣可以 用 %CurDir% 環(huán)境變量來索引外置程序目錄內(nèi)的所有路徑。 直接修改的好處是啟動 PE 就是所需要設(shè)置,不依賴外部配置文件,PE 的加載速度也比較快,但麻煩。修改配置文件 則比較簡單,但要依賴配置文件加載過程(直到加載到那些語句時(shí)才會生效),啟動時(shí)需要額外的時(shí)間加載,相當(dāng)于給系統(tǒng)打補(bǔ)丁去修改默認(rèn)設(shè)置。 一般情況下不推薦直接修改PE注冊表,麻煩,重新打包也比較花時(shí)間。但有些跟系統(tǒng)緊密的鍵必須直接修改才有效, 比如屏幕分辨率,雖然在外面也可以修改有,但在登錄時(shí)加載到它之前是無效的,那么在登錄的過程中屏幕就會因切換分辨率而閃爍。 自己修改注冊表的前提是自己要知道所希望的改變要修注冊表中的哪些鍵值??梢陨暇W(wǎng)搜索,現(xiàn)在網(wǎng)上的這些資源多 得是,實(shí)在找不到的話可以還可以用 RegMon 之類的注冊表監(jiān)視軟件來定位。 比如修改記事本的自動換行,又不知道相應(yīng)的鍵值在哪??梢韵乳_啟 RegMon,然后在記事本中改變換行的選項(xiàng), 看 RegMon 的監(jiān)視結(jié)果,來定位是哪個(gè)鍵值。因?yàn)橄到y(tǒng)本身也在不斷的更改注冊表,RegMon 中的顯示會很多,但是 通過不斷的改變記事本中的設(shè)置,最終是可以找到的,這個(gè)過程需要的是耐心和細(xì)心。
五、添加驅(qū)動 在外置程序目錄中有一個(gè)比較重要的目錄“PE_OUTERPART”,核心的外置組件都放在這里。里面有 4 個(gè) CAB 壓縮包 ,分別是網(wǎng)卡/無線網(wǎng)卡/聲卡/顯卡 驅(qū)動包,而且加載的框架都已經(jīng)搭好了,在 cmd 腳本中會自動調(diào)用 INFCACHEBUILD.EXE 處 理驅(qū)動程序。我們要做的工作就是獲取驅(qū)動程序文件,將它們放到相應(yīng)的驅(qū)動包中。 從本機(jī)上獲取驅(qū)動文件有很多驅(qū)動備份工具,我用的是最笨的方法,在設(shè)備管理器中查看驅(qū)動程序詳細(xì)信息, 然后一個(gè)個(gè)復(fù)制文件,建一個(gè)目錄,放到相應(yīng)的驅(qū)動包中。 中間有一個(gè)步驟,就是改一下復(fù)制出來的inf文件的名稱,讓它按文件名排序時(shí)可以排在最前面(我就是在文件名前 面加了個(gè)下劃線)。我不知道這一步是否是必須的,因?yàn)楫?dāng)初不知在哪個(gè)帖子中零星的看了點(diǎn),沒有仔細(xì)研究, 我做的時(shí)候就老老實(shí)實(shí)改名了。 這樣提取出來的驅(qū)動文件可能很大,測試成功后再刪除一些不必要的驅(qū)動文件。有很多文件是可以刪除的, 可以參考原驅(qū)動包中同類驅(qū)動的文件,將類似的文件保留,其它刪除。另一個(gè)笨辦法是一個(gè)個(gè)刪除,每刪除一個(gè) 測試一次,最終找到一個(gè)最小的驅(qū)動文件子集。
|