Stage 3:處理預先安裝環境
當我們透過 Windows 安裝映像啟用電腦時,實際上是透過安裝映像內的一套簡易版 Windows 環境 (稱為 Windows 預先安裝環境,Pre-installation Environment) 開機,並不是載入整套完整的 Windows 系統,而這套預先安裝環境則是壓縮封裝在安裝映像內的 boot.wim 檔案之中。
Step 11:將開機介面用字型檔整合到開機管理程式
由於繁體中文、簡體中文、日文所使用的字型檔體積較大,因此預設並沒有包含在 Windows 預先安裝環境中,因此在製作上述三個語系的預先安裝環境時需要先將字型檔整合到 boot.wim 內,開機時才不會發生亂碼與無法載入的情形,請使用下面這個指令將預先安裝環境的第一部分 (開機管理程式) 掛載起來。
1 |
dism /mount-wim /wimfile:<安裝映像目錄>\sources\boot.wim /index:1 /mountdir:<掛載目錄> |
掛載映像可能會需要一點時間,請耐心等候。
接下來要將字型檔整併入預先安裝環境中,字型檔的部分可以在前置準備時安裝的 ADK (AIK) 中取得,一般來說會放在 C:\Program Files (x86)\Windows Kits\<版本>\Assessment and Deployment Kit\Windows Preinstallation Environment\<架構>\WinPE_OCs\ 目錄內,以 WinPE-FontSupport-<語系名稱>.cab 命名。
以製作繁體中文的 Windows Server 2016 安裝映像為例,我們需要的字型檔路徑為 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-FontSupport-ZH-TW.cab,請執行下面這個指令:
1 |
dism /image:<掛載目錄> /add-package /packagepath:<字型檔所在路徑> |
由於目錄內有空格,請務必使用引號將路徑前後包起來。
接下來進行卸載並將修改寫入檔案,請執行下面這行指令:
1 |
dism /unmount-image /mountdir:<掛載目錄> /commit |
Step 11:將字型檔也整合到預先安裝環境本體內
除了開機管理程式需要整合字型檔之外,預先安裝環境本身也需要,因此請重複上個步驟中除了卸載與寫入變更步驟之外的內容 (將一開始的 index:1 改為 index:2)。
Step 12:將預先安裝環境語言包整合到預先安裝環境內
接下來的步驟理所當然就是要把預先安裝環境的完整語言包整合進去囉,由於預先安裝環境的語言包拆成很多個檔案,因此在這邊與前面不同,要直接將整個目錄下的所有 cab 包整合到預先安裝環境內,基本上預先安裝環境的語言套件是放置於 C:\Program Files (x86)\Windows Kits\<版本>\Assessment and Deployment Kit\Windows Preinstallation Environment\<架構>\WinPE_OCs\<語系> 目錄內。
以製作繁體中文版 Windows Server 2016 為例,語系檔應該放在 C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\zh-tw 目錄中,請輸入下面的指令:
1 |
dism /image:<掛載目錄> /add-package /packagepath:<語系檔所在路徑> |
由於目錄內有空格,請務必使用引號將路徑前後包起來,請留意此處運用了一個技巧,語系檔路徑使用的是目錄而不是檔案,因為 Windows PE 語系檔實際上分成二十幾個部分,一個一個裝實在太費時費力了,請注意目錄路徑最後請不要加上”/”,否則可能會出現錯誤。
這步驟最後出現錯誤是正常的,因為這 22 個語系檔當中有一些並不適用於當前製作中的安裝映像,因此不會被裝入預先安裝環境中。
Step 13:將語系資訊檔 (lang.ini) 放入 boot.wim
接下來的步驟是將 Step 9 產生的語系資訊檔 (lang.ini) 放入 boot.wim 中,以讓安裝程式得以運用這個檔案判斷安裝映像內包含的語言版本,請輸入下面的指令:
1 |
xcopy <安裝映像目錄>\sources\lang.ini <掛載目錄>\sources\lang.ini |
Step 14:將變更寫入檔案
由於前面的變更到目前為止都只寫入到掛載目錄內,並沒有實際修改到 boot.wim 的內容,因此接下來我們要進行卸載並將修改寫入檔案的程序,請執行下面這行指令:
1 |
dism /unmount-image /mountdir:<掛載目錄> /commit |