入門製作: WINPE開機的USB隨身碟
建立 Windows PE (WinPE) 可開機 USB 快閃磁碟機或外接式 USB 硬碟。MSDN原廠的說明: https://msdn.microsoft.com/zh-tw/library/hh825109.aspx
1. 先安裝 Windows ADK
透過從 Windows 評定及部署套件 (Windows ADK) 安裝下列功能:
– 部署工具:包含 [部署與映像工具環境]。
– Windows 預先安裝環境 :包含用來安裝 Windows PE 的檔案。
2. 開始安裝 Windows PE
進去Start[開始] –> All apps[所有程式] –> Windows Driver Kits ->
以 [系統管理員] 身分開啟 [部署與映像工具環境]。(Deployment and Imaging Tools Environment as an administrator)
step1:建立 Windows PE 檔案的工作複本。可指定 x86、amd64 或 arm:
- //64位元版本:可將64位元UEFI、64位元BIOS電腦開機
- copype amd64 C:\WinPE_amd64
- //32位元版本:可將 32 位元 UEFI、32位元和64位元BIOS電腦開機
- copype x86 C:\WinPE_x86
step2:將 Windows PE 安裝到 USB 快閃磁碟機,指定磁碟機代號:(根據USB碟的字母代號調整)
MakeWinPEMedia /UFD C:\WinPE_amd64 E:
3. 將此WINPE隨身碟插入另一電腦, 開機到 Windows PE
將 USB 裝置連接到您要使用的電腦。
啟動電腦,然後按下開啟韌體開機功能表的按鍵。選取 USB 磁碟機。Windows PE 會自動啟動。
出現命令視窗後,會執行 wpeinit 命令,此命令會設定系統。這可能需要數分鐘。
4. 常見的疑難排解
如果沒有出現 Windows PE,請嘗試下列解決方法,並在每次嘗試之後重新啟動電腦:
- 如果不能辨識 copype 命令,請確定您是從 [部署與映像工具環境] (它是 Windows ADK 的一部分) 執行命令。
- 若要啟動支援 UEFI 模式的電腦,在韌體開機功能表中,試著手動選取開機檔案:\EFI\BOOT\BOOTX64.EFI。
- 嘗試不同的 USB 連結埠。避免使用集線器或纜線。
- 如果韌體不包含對 USB 3.0 的原生支援,請避免使用 USB 3.0 連接埠。
- 清理 USB 快閃磁碟機,然後重新安裝 Windows PE。這有助於移除額外的開機磁碟分割或其他開機軟體。
透過以下指令清理 USB 快閃磁碟機,然後重新安裝 Windows PE。
12345678910diskpartlist diskselect diskcleancreate partition primaryformat quick fs=fat32 label="Windows PE"assign letter="F"exitMakeWinPEMedia /UFD C:\winpe_amd64 F: - 嘗試改從 DVD 啟動 Windows PE。建立可以燒錄至 DVD 的 ISO 檔案:
透過以下指令產生WINPE 的 ISO 檔案
MakeWinPEMedia /ISO C:\winpe_amd64 c:\winpe_amd64\winpe.iso在檔案總管中,瀏覽至 C:\winpe_amd64,在 winpe.iso 上按一下滑鼠右鍵,然後選取 [燒錄至光碟]。
遵循提示建立 DVD。
進階製作:手動調整的WinPE內容
以上如果都完成了, 就可以接著試試進階內容, 參考自MSDN說明:(WinPE 掛接和自訂)
1. 掛接 Windows PE 開機映像
Dism /Mount-Image /ImageFile:”C:\WinPE_amd64\media\sources\boot.wim” /index:1 /MountDir:”C:\WinPE_amd64\mount”
執行後就會把boot.wim的內容掛載(mount)到C:\WinPE_amd64\mount
如下:
2. 新增修改自訂內容
- 新增裝置驅動程式 (.inf 檔案) 。
- 您可以自訂裝置驅動程式,像是支援網路介面卡或存放裝置的驅動程式。如需詳細資訊,請參閱 WinPE:新增驅動程式。
-
1) 將裝置驅動程式新增至 Windows PE 映像。
Dism /Add-Driver /Image:”C:\WinPE_amd64\mount” /Driver:”C:\SampleDriver\driver.inf”
2) 確認驅動程式套件是映像的一部分:
Dism /Get-Drivers /Image:”C:\WinPE_amd64\mount”
檢查產生的驅動程式清單,確認清單包含您新增的驅動程式套件。
- 新增選用元件 (套件或 .cab 檔案) 。
- 您可以新增功能到 Windows PE,例如,語言、Hotfix、以及對 PowerShell 和 HTML 應用程式語言 (HTA) 等功能的支援。在 Windows PE 中,功能套件又稱為選用元件。如需詳細資訊,請參閱 WinPE:新增套件 (選用元件參考)。
-
#語言#:安裝每個選用元件時,您必須先安裝非語言相關選用元件,然後再安裝特定語言選用元件。必要語言資源的版本必須與非語言相關資源的版本相同。語言資源位於資料夾中,該資料夾與安裝在選用元件目錄中的語言名稱相同。
#重要#:有些選用元件具有必須按順序安裝的先決條件。
1) 將選用元件新增到 Windows PE。
如果要新增選用元件,您需要同時新增選用元件及其相關的語言套件。(路徑需根據自己電腦作調整)
Dism /Add-Package /Image:”C:\WinPE_amd64\mount” /PackagePath:”C:\Program Files\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\WinPE-HTA.cab”Dism /Add-Package /Image:”C:\WinPE_amd64\mount” /PackagePath:”C:\Program Files\Windows Kits\8.1\Assessment and Deployment Kit\Windows Preinstallation Environment\amd64\WinPE_OCs\en-us\WinPE-HTA_en-us.cab”
2) 確認選用元件是映像的一部分:
Dism /Get-Packages /Image:”C:\WinPE_amd64\mount”
檢查產生的套件清單,確認清單包含選用元件及其關聯的語言套件。
- 新增語言 。
- 若要以多個語言執行 Windows PE,請新增這些語言的套件 (選用元件)。如需詳細資訊,請參閱 WinPE:新增套件 (選用元件參考)。
- (同上:新增套件)
- 新增啟動指令碼 。
- 範例包含設定網路連線,或者新增自訂應用程式,例如診斷軟體。
- 修改 Startnet.cmd 指令碼以包含您的自訂命令。此檔案位於 C:\WinPE_amd64\mount\Windows\System32\Startnet.cmd。
您也可以從此檔案呼叫其他批次檔或命令列指令碼。
針對隨插即用或網路功能支援,請確定您在自訂 Startnet.cmd 指令碼中包含對 wpeinit 的呼叫 - ### 補充引用文章: iInfo 資訊交流 – Winpe啟動過程 ###
Windows PE 的啟動過程如下。
1) 載入特定媒體上的開機磁區。將控制傳遞給 Bootmgr。
– Bootmgr 從啟動配置資料 (BCD) 中提取基本的啟動資訊,並將控制權傳遞給 Boot.wim 中包含的 Winload.exe 文件。
– 然後 Winload.exe 載入相應的硬體抽象層 (HAL),並載入系統登錄配置單元和必需的啟動驅動程式。
– 完成載入後,將會準備執行內核 Ntoskrnl.exe 的環境。
– 備註: 如果從唯讀媒體(例如 CD)啟動 Windows PE,則 Windows PE 將在記憶體中存儲註冊表配置單元,這樣應用程式就可以寫入註冊表。應用程式對註冊表所做的任何更改在不同的 Windows PE 會話間不會保持不變。2) 執行 Ntoskrnl.exe,完成環境設置。將控制權傳遞給會話管理器 (SMSS)。
3) SMSS 載入註冊表的剩餘部分,配置運行 Win32 子系統 (Win32k.sys) 的環境及其各種進程。SMSS 載入用於創建使用者會話的 Winlogon 進程,然後啟動服務和剩餘的非必要設備驅動程式及安全子系統 (LSASS)。
4) Winlogon.exe 根據註冊表值 HKLM\SYSTEM\Setup\CmdLine 來運行設置。
– 如果存在 %SYSTEMDRIVE%\sources\setup.exe,則 Winpeshl.exe 將啟動它,否則 Winpeshl.exe 將查找在 %SYSTEMROOT%\system32\winpeshl.ini 中指定的應用程式。
– 如果未指定任何應用程式,則 Winpeshl.exe 將執行 cmd /k %SYSTEMROOT%\system32\startnet.cmd。預設情況下,Windows PE 包含一個將啟動 Wpeinit.exe 的 Startnet.cmd 文件。Wpeinit.exe 載入網路資源,並與網路元件(如 DHCP)進行協調。5) Wpeinit.exe 完成後,將顯示命令提示視窗。此時,Windows PE 的啟動過程已完成。
Winpeshl.ini 可控制是將自訂外殼程式載入到 Windows(R) PE,還是載入到默認的“命令提示符”視窗。若要載入自訂外殼程式,請創建一個名為 Winpeshl.ini 的文件,然後將它放在自訂 Windows PE 映射的 %SYSTEMROOT%\System32 中。#MSDN說明:Winpeshl.ini 參考#
使用 Windows 預先安裝環境 (Windows PE) 中的 Winpeshl.ini 檔案,以殼層應用程式或其他應用程式取代預設命令提示字元。#該 Winpeshl.ini 檔必須包含以下部分:#
1234[LaunchApp]AppPath = %SYSTEMDRIVE%\myshell.exe[LaunchApps]%SYSTEMDRIVE%\mydir\application1.exe, {option}– 將 AppPath 項設置為外殼應用程式的路徑。可以使用完全限定路徑,也可以使用環境變數(例如%SYSTEMROOT%\System32\Myshell.exe)。AppPath 項不支援命令列選項。
– 使用 [LaunchApps] 部分運行帶命令列選項的應用程式。應用程式按照列出的順序運行。應用程式的名稱與其選項之間以逗號分隔。#重要事項#
– 當退出“命令提示符”視窗或自訂外殼應用程式時,Windows PE 將重新開機。
– 不要編輯 Setupreg.hiv 的 HKEY_LOCAL_MACHINE\SYSTEM\Setup 註冊表項中的 CmdLine 值來啟動外殼應用程式。CmdLine 的值可調用 Winpeshl.exe,Winpeshl.exe 會執行很多函數,包括調用 Windows PE 中的預設“命令提示符”視窗或您的自訂外殼應用程式。
- 新增應用程式 。
- 請注意,Windows PE 只支援舊版應用程式。
1) 在掛接的 Windows PE 映像內建立應用程式目錄。
md “C:\WinPE_amd64\mount\windows\”
2) 將必要的應用程式檔案複製到本機 Windows PE 目錄。
Xcopy C:\ “C:\WinPE_amd64\mount\windows\”
3) 啟動 Windows PE 並從 X: 目錄執行應用程式,之後測試應用程式。
X:\Windows\System32> X:\Windows\如果應用程式需要暫時存放區,或 Windows PE 在執行應用程式時變得沒有回應,您可能需要增加配置給 Windows PE 的暫時存放區 (臨時空間) 的數量。
- 請注意,Windows PE 只支援舊版應用程式。
- 新增暫時存放區 (臨時空間) 。
- 如果您的應用程式需要暫存檔存放區,可以在 RAM 中保留額外的記憶體空間。
- 1) Windows PE 會在 X: 磁碟機上保留記憶體,用來解壓縮 Windows PE 檔案,加上額外的暫存檔存放區 (稱為臨時空間),可供您的應用程式使用。
根據預設,超過 1 GB RAM 的電腦的臨時空間為 512 MB,其他則為 32 MB。有效值為 32、64、128、256 或 512:
Dism /Set-ScratchSpace:128 /Image:”C:\WinPE_amd64\mount”
- 取代背景影像
- 如果您有多個版本的 Windows PE,可以設定背景影像,以便立即辨別正在執行的 Windows PE 版本。
變更 Windows PE 背景影像檔 (\windows\system32\winpe.jpg) 的安全性權限。這可讓您修改或刪除檔案。
1) 在 Windows 檔案總管中,瀏覽到 C:\WinPE_amd64\mount\windows\system32。
2) 在 C:\WinPE_amd64\mount\windows\system32\winpe.jpg 檔案按一下滑鼠右鍵,依序選取 [內容] > [安全性] 索引標籤 > [進階]。3) 在 [擁有者] 旁邊選取 [變更]。將擁有者變更為 [系統管理員]。
套用變更,然後結束 [內容] 視窗以儲存變更。4) 在 C:\WinPE_amd64\mount\windows\system32\winpe.jpg 檔案按一下滑鼠右鍵,依序選取 [內容] > [安全性] 索引標籤 > [進階]。
5) 修改 [系統管理員] 的權限,允許完整存取權。套用變更,然後結束 [內容] 視窗以儲存變更。
使用您自己的影像檔取代 winpe.jpg 檔案。
- 如果您有多個版本的 Windows PE,可以設定背景影像,以便立即辨別正在執行的 Windows PE 版本。
- 新增回應檔案設定
- 有些 Windows PE 設定可以使用回應檔案加以管理,如防火牆、網路及顯示設定。
– 建立回應檔案,將它命名為 unattend.xml,然後新增到 Windows PE 媒體的根目錄,以便處理這些設定。
– 第一次執行 Windows PE (WinPE) 時,使用 Wpeinit 和 Startnet.cmd 執行啟動指令碼。Wpeinit 會將記錄檔訊息輸出至 c:\Windows\system32\wpeinit.log。Wpeinit 命令列選項範例:
Wpeinit –unattend:”C:\Unattend-PE.xml”
- 有些 Windows PE 設定可以使用回應檔案加以管理,如防火牆、網路及顯示設定。
3. 卸載 Windows PE 映像和建立媒體
3.1 卸載 Windows PE 映像。
Dism /Unmount-Image /MountDir:”C:\WinPE_amd64\mount” /commit3.2 建立可開機媒體,例如 USB 快閃磁碟機。
MakeWinPEMedia /UFD C:\WinPE_amd64 F:3.3 啟動媒體。
Windows PE 會自動啟動。Windows PE 視窗出現之後,會自動執行 wpeinit 命令。這可能需要數分鐘。驗證您的自訂。
列在後面:
Windows PE 如何運作
整理得很好非常容易懂, 幫助很大, 謝謝你
補充一下,
新版的ADK不包含WINPE , 所以要裝Windows 評定及部署套件 (ADK) 部署工具和ADK WinPE 新增元件
https://docs.microsoft.com/zh-tw/windows-hardware/manufacture/desktop/winpe-create-usb-bootable-drive
另外, 如果要建立超過32Gb的winpe隨身碟
官方建議是建立2GB的winpe槽(FAT32) + 大容量的image槽(NTFS)
https://docs.microsoft.com/zh-tw/windows-hardware/manufacture/desktop/winpe–use-a-single-usb-key-for-winpe-and-a-wim-file—wim
但我建立過程發生一些問題, 所以我自己索性用windows內建的disk manage的應用程式手動切割
不然, 隨身碟太大超過FAT32支援的32GB
format時會出現錯誤 DiskPart errorlevel -2147212243
如果你是要製作 windows os 安裝碟
有兩種方法:
1. 微軟的方法: 用官方的Windows 安裝程式去製作 USB 安裝隨身碟
2. 使用第三方免費軟體: Rufus製作工具 去製作 USB 安裝隨身碟
詳細可看:
https://officeguide.cc/rufus-create-windows-10-installation-usb-flash-drive-tutorial/