網頁

2011年7月18日 星期一

Win 7 安裝光碟整合修正程式

Win7 SP1之後所發佈的修正程式,須透過Windows update更新或預先下載修正程式整批更新,修正程式越來越多,更新的時間也跟著增加,Win 7使用者會想到XP有nLite之類的工具程式,將XP修正程式整合至XP安裝光碟裡面,是否也有Win 7的工具程式可把修正程式整合至Win7 安裝光碟裡面,當然有,rt7lite就是其中之一。本文要介紹的方法是純手工,整合過程如下:

請在Win 7 環境製作Win 7 安裝光碟整合修正程式
先建立下列資料夾及檔案:
win7mermsu  資料夾,存放 install.wim   mermus_x86_x64.cmd
win7mermsu\msux64 資料夾, 存放所有Win7 x64 .msu修正程式 
win7mermsu\msux86 資料夾, 存放所有Win7 x86 .msu修正程式
win7mermsu\wim   資料夾,整合時將install.wim掛載至這個資料夾  
從win7安裝光碟或ISO檔擷取 install.wim檔存至win7mermsu 資料夾
準備GimageX 免安裝版

執行GimageX,點[Info],點[Browse]選取要用來整合的install.wim,點[Get Info]查看Win 7 各版本的Image Index 數字,例如Image Count:4,共有4個Image
Image Index :1 Windows 7 專業版 SP1 32位元
Image Index :2 Windows 7 旗艦版 SP1 32位元
Image Index :3 Windows 7 專業版 SP1 64位元
Image Index :4 Windows 7 旗艦版 SP1 64位元
查到要用來整合的install.wim 各版本Image Index 數字,就可以離開GimageX。
如GImageX無法正常執行,請安裝WimFltr

注意:install.wim的每一個版本都要逐一整合。
開啟記事本將以下指令複製後貼上,存檔名稱為mermus_x86_x64.cmd
DISM /Mount-Wim /WimFile:.\install.wim /index:1 /MountDir:.\wim
FOR %%i in (.\msux86\*.msu) do start /wait  /min DISM /Image:.\wim /Add-Package /PackagePath:%%i
DISM /Unmount-Wim /MountDir:.\wim /commit
DISM /Mount-Wim /WimFile:.\install.wim /index:2 /MountDir:.\wim
FOR %%i in (.\msux86\*.msu) do start /wait  /min DISM /Image:.\wim /Add-Package /PackagePath:%%i
DISM /Unmount-Wim /MountDir:.\wim /commit
DISM /Mount-Wim /WimFile:.\install.wim /index:3 /MountDir:.\wim
FOR %%i in (.\msux64\*.msu) do start /wait  /min DISM /Image:.\wim /Add-Package /PackagePath:%%i
DISM /Unmount-Wim /MountDir:.\wim /commit
DISM /Mount-Wim /WimFile:.\install.wim /index:4 /MountDir:.\wim
FOR %%i in (.\msux64\*.msu) do start /wait  /min DISM /Image:.\wim /Add-Package /PackagePath:%%i
DISM /Unmount-Wim /MountDir:.\wim /commit
pause

執行 mermus_x86_x64.cmd
install.wim的第1個映像index:1掛載至wim資料夾,逐一整合msux86資料夾內的.msu修正程式

整合其中一個檔Windows6.1-KB2503665-x86.msu畫面

所有X86修正程式整合完畢

整合完成檔案從wim資料夾回存至install.wim

index:1 儲存完成、卸載完成。接著install.wim的第2個映像index:2掛載至wim資料夾,逐一整合msux86資料夾內的.msu修正程式

index:2 儲存完成、卸載完成。接著install.wim的第3個映像index:3掛載至wim資料夾,逐一整合msux64資料夾內的.msu修正程式(win7 x64版本)。

整合其中一個檔Windows6.1-KB2530548-x64.msu畫面

index:3 儲存完成、卸載完成後。接著install.wim的第4個映像index:4掛載至wim資料夾,逐一整合msux64資料夾內的.msu修正程式(win7 x64版本)。下圖是index:4 儲存完成、卸載完成畫面。

整合修正程式的過程,會在Windows\winsxs\Backup資料夾留下備份檔,如要刪除備份檔以減少.wim檔大小,請用GimageX  mount .wim檔,勾選 Read/Write及Commit Changes 之後,切換至Windows\winsxs\Backup資料夾,先執行[管理員取的所有權],才可以刪除Backup資料夾內的檔案。操作過程如下:
執行GImageX->Mount->按Mount Point右邊 [Browse],選要掛載的資料夾(須是沒有檔案的資料夾,例如d:\mermsu\wim),按Source右邊 [Browse],按[Select]選擇要掛載的Windows 7版本,勾選 Read/Write及Commit Changes->按[Mount]。

開啟[檔案總管]-選剛才掛載資料夾之下Windows\winsxs資料夾,在Backup資料夾按滑鼠右鍵,顯示功能表時選[管理員取得所有權]。(注意:須先導入管理員取得所有權的註冊檔才有管理員取得所有權的選項)。

管理員取得backup資料夾所有權的畫面。

切換至backup資料夾->[編輯]->全選。

選[檔案]->[刪除]

backup資料夾內的檔案刪除完成後,回到GImageX畫面,點選已掛載的wim檔,按[Unmount] 

整合完成的install.wim檔比原來的大很多,以本文整合4個版本為例約增加700MB,所以,還要
將install.wim壓縮,重複檔案只存一份。操作過程如下:
建立win7mermsu\finwim 資料夾
執行GimageX
點[Export]->選Source右邊的 Browse,選取win7mermsu資料夾的install.wim->點[Select]->點選 Image 1,Windows 7 專業版 SP1 32位元->選[Select]

選Destination右邊的[Browse],選取win7mermsu\finwim資料夾,檔案名稱欄輸入install->選[存檔]

Compression 選[Maximum]->點[Export] 開始輸出

index:1 映像輸出中,因是第1個版本,輸出時間較長

index:1 映像Windows 7 專業版 SP1 32位元輸出完成,點[Close]

接者選Image:2,Compression 保持[Maximum],Destination保持win7mermsu\finwim\install.wim,點[Export]開始輸出

 因Image:2 是32位元版,輸出時間很短。

接者選Image:3,Compression 保持[Maximum],Destination保持win7mermsu\finwim\install.wim,點[Export]開始輸出

因是64位元版第1次輸出,時間會較長。

接者選Image:4,Compression 保持[Maximum],Destination保持win7mermsu\finwim\install.wim,點[Export]開始輸出

因是64位元版第2次輸出,輸出時間很短。

剛整合完成時install.wim是4435MB,重新輸出壓縮之後是 4009MB,明顯小很多,點X離開GimageX

如Win 7 安裝檔是ISO檔,請用UltraISO開啟ISO檔,切換至sources資料夾->選[執行]->以[加入檔案]方式,選win7mermsu\finwim資料夾內install.wim取代原有install.wim->「存檔]

若是用EasyBoot製作Win7 ISO檔,請把win7mermsu\finwim資料夾內install.wim檔複製到disk1\sources資料夾取代原有install.wim。

注意:整合4個版本的Win 7 ISO檔可能超過4.7GB,須改用單面雙層8.5GB DVD燒錄。有少數無法整合進去的檔案,及安裝時要一併自動安裝的程式或設定檔,可以加入在sources\$OEM$\$$\SETUP\SCRIPTS資料夾內的SetupComplete.cmd檔來自動安裝,把指令直接加在SetupComplete.cmd內或單獨寫成.CMD .BAT .REG再從SetupComplete.cmd呼叫執行都可以。

有人可能會問,有現成的整合工具可用,為什麼還要用純手工方式來整合?這是一個很好的提問,整合工具方便好用,卻隱含很多使用者不知道的事情,也可能有Bug。純手工方式整合,雖難度較高,使用者可以非常清楚整合內容及結果。

已知無法整合進去的檔案(2011.09.25):
Windows6.1-KB982018-v3 (x86/x64)
Windows6.1-KB2529073 (x86/x64)
Windows6.1-KB2532531 (x86/x64)
Windows6.1-KB2533552 (x86/x64)


因mount及Unmount install.wim檔一次所花的時間很久,為節省整合及Win7減肥時間,請改用下列方式:
改用GImageX 來mount install.wim檔
整合IE9
整合Win7 Hotfix
精簡範例圖檔.影片.mp3,刪除Windows\winsxs\Backup\資料及內檔案
改用GImageX 來unmount install.wim檔


win7merhotfix