在Windows Embedded開發中使用Windows PE
在Windows XP Embedded 開發中使用 Windows PE ,通過 Windows PE,可以啟動沒有操作系統、硬盤驅動器和設備列表的設備。以下列表顯示了可以通過Windows PE 完成的一些工作:
• 啟動任何具有 CD-ROM 驅動器的設備,而不管啟動媒體(例如,硬盤驅動器)狀態如何或是否存在。
• 用目標分析器檢測硬件設備。
• 用 DiskPart 格式化硬盤驅動器以及對其進行分區。
• 連接到網絡文件夾以安裝驅動程序或映像。
在創建映像之后,可以使用 Windows PE 來微調設備上的映像。以下列表顯示了在已經創建映像之后可以用 Windows PE 完成的一些工作:
• 使用 Windows PE 作為緊急啟動磁盤。
• 修復損壞的 boot.ini 文件。
• 訪問目標設備上的文件系統。
• 在運行目標設備上的映像前后,查看和編輯該映像的注冊表配置單元。
該技術文章是為開發和部署 Windows XP Embedded 映像的 Microsoft 合作伙伴編寫的,并且假定讀者充分了解和熟悉 Microsoft Windows Embedded Studio 組件設計器、組件數據庫管理器和目標設計器。
本頁內容
◆Windows PE 簡介
◆用 Windows PE 啟動
◆用目標分析器檢測硬件設備
◆使用 DiskPart 對硬盤驅動器進行分區
◆連接到網絡文件夾以安裝驅動程序或映像
◆使用 Windows PE 作為緊急啟動磁盤
◆訪問目標設備上的文件系統
◆查看和編輯目標設備上的映像的注冊表配置單元
◆限制
◆Windows PE 上不受支持的Windows API
那我們一個一個介紹。
◆Windows PE 簡介
Microsoft Windows Preinstallation Environment (Windows PE) 是具有有限服務的最小 Win32® 子系統,它基于在保護模式下運行的 Windows XP Professional。Windows PE 提供了執行下列操作所需的最低功能:
• 運行 Windows 安裝程序。
• 從網絡共享中安裝操作系統.
• 自動執行基本過程。
• 執行硬件驗證。
Windows XP Embedded Studio 隨附的 Windows PE CD-ROM 提供了下列功能:
• 在可啟動媒體和內存中都具有小內存足跡的硬件無關 Windows 環境。
• Win32 應用程序編程接口 (API) 子集、一個能夠運行批處理文件的命令行接口 (Cmd.exe) 以及對用于創建自定義工具或腳本的 Windows Script Host (WSH)、HTML Applications (HTA) 和 ActiveX Data Objects (ADO) 的支持。
• 網絡訪問并支持標準現成的網絡驅動程序,這些驅動程序是從使用 TCP/IP 的網絡復制映像和測試套件時可能需要的。
• 對所有使用 Windows 2000 或 Windows XP 驅動程序的海量存儲設備的支持。
• 對創建、刪除、格式化和管理 NTFS 文件系統分區的天然支持。
• 用于加載和測試特定硬件驅動程序的硬件診斷。
◆用 Windows PE 啟動
因為 Windows PE 在 CD-ROM 上是完備的,所以無須使用硬盤驅動器就可以啟動設備。在從 Windows PE 啟動之后,就可以運行目標分析器、訪問設備上的文件以及連接到網絡文件夾。
通過使用 Windows PE 啟動
1.將一個 CD-ROM 驅動器連接到設備。
2.將 Windows XP Embedded CD-ROM 盤 1 插入到該驅動器中。
3.將設備的 BIOS 設置配置為從 CD-ROM 驅動器啟動,并且啟動 CD。
Windows PE 即會啟動。在 Windows PE 啟動過程中,將啟用聯網服務并通過 DHCP 配置網絡接口。
◆用目標分析器檢測硬件設備
Windows PE 使用即插即用機制來枚舉目標設備上的硬件。然后,目標分析器可以使用該信息來創建 devices.pmq 文件。
在 Windows PE 環境中運行 TAP.exe 通常會產生相當小的目標系統 PMQ 或硬件配置文件。這會產生最小配置運行庫映像。
下表顯示了 TAP.exe 能夠在各種環境中找到的設備的數量方面的差異:
設備 完整桌面環境 Windows PE 環境
典型的 Windows XP Pro 或 Windows 2000 桌面環境
65 到 75 個設備
35 到 45 個設備
典型的 Windows XP Pro 或 Windows 2000 膝上型環境
90 到 100 個設備
45 到 55 個設備
在 Windows PE 環境中,TAP.exe 將為 devices.pmq 找到下列基本項:
• 所有核心父設備,例如,外圍組件互連 (PCI) 和圖形加速端口 (AGP) 設備。
• 正確的系統硬件抽象層 (HAL)。
• 磁盤驅動器。
• CD-ROM 驅動器。
• 系統芯片組。
• 啟動系統所需的關鍵啟動設備。
• 基本通用串行總線 (USB) 設備支持。
使用 Windows PE 運行目標分析器
1.用您打算讓設備在其最終配置中具有的所有外圍設備來設置該設備。
2.將一個 CD-ROM 驅動器連接到設備。
3.用 Windows XP Embedded CD-ROM 盤 1 啟動設備。
當您從 Windows PE 中運行目標分析器時,可以將輸出 (devices.pmq) 保存到網絡文件夾或軟盤驅動器。
將目標分析器輸出保存到網絡位置
1.從 Windows PE 命令行,使用 net use 命令將一個共享驅動器映射到該設備。
下面的代碼示例顯示了常規語法。
net use * \\﹤computername﹥\﹤sharename﹥
下面的代碼示例顯示了如何將名為“development_computer”的計算機的共享 C 驅動器映射到目標設備上的“z”驅動器。
net use Z \\﹤developmentcomputer﹥\﹤C$﹥
2.將目錄更改到剛才映射的驅動器號。
例如,鍵入:
z:
3.會將目錄更改到包含 Tap.exe 的目錄。
例如,鍵入:
cd Program Files\Windows Embedded\utilities
4.運行 Tap.exe。
輸出文件的默認位置和文件名是與 tap.exe 相同的目錄,并且該文件名為 devices.pmq。
注可以用開關 o/ 指定不同的路徑和輸出文件名。例如,要用輸出文件名 devices2.pmq 將輸出發送到計算機 //OtherDevelopmentComputerName 上的目錄 c:\Device1,則請鍵入:
tap.exe /o //﹤OtherDevelopmentComputerName﹥/c$/Device1/devices2.pmq
將目標分析器輸出保存到軟盤驅動器
1.導航到 \XPE 目錄并且從命令行運行 TAP.exe。
下面的代碼示例顯示了適當的參數:
tap /O a:\Kiosk-HW.PMQ
然后,TAP.exe 將產生目標設備的硬件配置文件(一個 .pmq 文件),并且將結果保存到驅動器 A 上的 a:\Kiosk-HW.PMQ。
2.將 Kiosk-HW.PMQ 文件復制到已經安裝了 Windows XP Embedded 工具和數據庫的開發計算機。
◆使用 DiskPart 對硬盤驅動器進行分區
DiskPart 隨附在 Windows PE 中,并且可以用來配置不具有操作系統 (OS) 的設備。在啟動 Windows PE 之后,可以配置系統上的硬盤。
有關使用 Diskpart 的其他信息,請參見該 Microsoft Web 站點。
通過使用 DiskPart 配置硬盤驅動器
1.啟動設備上的 Windows PE。
2.在命令提示處,鍵入 DiskPart。顯示 DiskPart 命令提示。
3.要顯示 DiskPart 幫助,請鍵入 ?。
4.使用 DiskPart 命令列出當前配置,選擇磁盤,或者編輯分區。
例如,要在系統中的輔助磁盤上創建 400 MB 主分區,請使用下列 Diskpart 命令:
list disk
select disk 1
list partition
create partition primary size=400
5.在配置硬盤之后,通過鍵入 exit 停止該實用工具。
6.重新啟動設備。
7.用 format 命令格式化任何剛剛創建的分區。
有關使用 format 的詳細信息,請參見該Microsoft Web 站點。注 DiskPart 實用工具包含一個重寫選項。該選項可用來刪除 Microsoft Reserved (MSR) 分區或其他保護分區。在使用該重寫選項時要極為小心。
還可以通過使用部署海量系統所需的命令為 DiskPart 創建腳本。如果啟動 Windows PE 并且在網絡上呈現該設備,則可以通過使用以下命令來運行 DiskPart 腳本:
diskpart /s ﹤script name﹥
◆連接到網絡文件夾以安裝驅動程序或映像
可以使用 Windows PE 將沒有操作系統 (OS) 的設備連接到網絡。 Windows PE 支持很多標準網絡設備。當您用 Windows PE 啟動時,它會啟用網絡并啟動動態主機配置協議 (DHCP)。當設備在網絡中處于活動狀態時,可以映射共享驅動器,或者將運行庫映像和應用程序復制到該設備。
映射共享驅動器
1.啟動設備上的 Windows PE。
2.從 Windows PE 命令行,使用 net use 命令將一個共享驅動器映射到該設備。
例如,net use * \\﹤computername﹥\﹤sharename﹥。
在將共享驅動器裝入設備之后,可以將運行庫映像從共享復制到設備中,或者運行遠程腳本。
◆使用 Windows PE 作為緊急啟動磁盤
如果您對設備進行了更改,結果使該設備變得無法啟動,則可以使用 Windows PE 作為緊急啟動磁盤。
例如,如果您將映像部署到雙啟動測試設備,并且用映像的 boot.ini 文件意外改寫了測試計算機的 boot.ini 文件,則您可能會這樣做。如果您無法啟動計算機,則可以從 Windows PE CD-ROM 啟動并修復 boot.ini 文件。
修復 boot.ini 文件
1.用 Windows XP Embedded CD-ROM 盤 1 啟動設備。
2.在 Windows PE 啟動之后,在命令提示處鍵入:
C:\boot.ini
3.根據需要編輯 boot.ini 文件。
有關編輯啟動文件的詳細信息,請參見該Microsoft Web 站點。
◆訪問目標設備上的文件系統
當您用 Windows PE 啟動設備時,您將對目標設備上的 NTFS 文件系統具有完整的訪問權限,而無論文件系統中放置的管理員特權、訪問控制列表或 NTFS 權限怎樣。
注可以用加密文件系統 (EFS) 加密映像中的文件和文件夾,以便幫助防止數據遭到未經授權的訪問。加密文件被針對 NTFS 訪問進行了保護。有關 EFS 的詳細信息,請參見該Microsoft Web 站點。
訪問目標設備上的文件
1.用 Windows XP Embedded CD-ROM 盤 1 啟動設備。
Windows PE 即會啟動。
2.在命令提示處,根據需要映射網絡驅動器,然后導航到本地或網絡文件夾。
◆查看和編輯目標設備上的映像的注冊表配置單元
在 FBA 前后,可以查看和編輯設備上的映像的注冊表配置單元。注冊表文件位于目標設備的 \WINDOWS\system32\config 文件夾中。
例如,C:\WINDOWS\system32\config。
在運行 FBA 之前,注冊表文件具有 .SAV 擴展名。下面的列表顯示了帶擴展名的注冊表配置單元:
• SAM.SAV
• SECURITY.SAV
• SOFTWARE.SAV
• SYSTEM.SAV
當 FBA 完成后,注冊表文件被保存且不帶 .SAV 擴展名。下面的列表顯示了不帶擴展名的注冊表配置單元:
• SAM
• SECURITY
• SOFTWARE
• SYSTEM
有關注冊表配置單元的詳細信息,請參見該Microsoft Web 站點。
編輯目標設備的注冊表
1.啟動設備上的 Windows PE。
2.在命令提示處,鍵入 regedit。
3.單擊 HKEY_LOCAL_MACHINE。
4.在 File 菜單上,選擇 Load Hive。
可能會出現一系列消息框,表明該文件夾無法找到并且該位置不可用。請忽略這些消息,并且在它們出現時單擊 OK。
出現 Load Hive 對話框。
5.在 Files of type 框中,選擇 All Files。
6.導航到目標設備上的注冊表位置。
例如,如果映像位于驅動器 C 上,請導航到 C:\WINDOWS\system32\config。
7.在 config 文件夾中,選擇要編輯的配置單元,然后選擇 OK。
8.在 Load Hive 對話框中,鍵入項名稱。例如,TEST_DEVICE。
根據需要重復前面的步驟,以加載更多的配置單元。
9.選擇 HKEY_LOCAL_MACHINE,然后選擇所創建的新注冊表項。
10.編輯或查看這些注冊表項。
11.在完成注冊表項更改之后,選擇 HKEY_LOCAL_MACHINE,選擇 File 菜單,然后選擇 Unload Hive。
◆限制
包含在 Windows Embedded CD-ROM 中的 Windows PE 具有下列限制:
• Windows XP Embedded CD-ROM 中包含的 Windows PE 版本無法更新或配置。必須購買 Windows PE 的授權版本才能添加自定義支持。有關信息,請聯系您的 Microsoft 經銷商。
• Windows PE 只包含可用 Win32 API 的子集。它包含 I/O(磁盤和網絡)和核心 Win32 API。
• 在連續使用 24 小時之后,Windows PE 會自動停止運行外殼程序并重新啟動。
• 無法對網絡其他位置的 Windows PE 計算機上的文件或文件夾進行網絡訪問。
• 分布式文件系統 (DFS) 名稱解析不受支持。對于 Windows PE 1.1 存在有限的支持,但僅限于獨立的 DFS 根。
• 獲得與文件服務器的網絡連接的經過測試的方法是 TCP/IP 和 NetBIOS over TCP/IP。其他方法(例如,IPX/SPX 網絡協議)不受支持。
• 在 Windows PE 運行期間分配的驅動器號不會保存到任何在重新啟動后仍然存留的注冊表。創建分區時的驅動器號分配按照創建順序執行,但重新啟動時的驅動器號分配按照默認順序執行。
• Windows PE 需要與 VGA 兼容的設備,并且使用 800 x 600 像素的屏幕分辨率。如果 Windows PE 無法檢測視頻設置,則默認屏幕分辨率為 640 x 480 像素。
• Windows PE 不支持 Microsoft .NET Framework。
注如果您需要比 Windows PE 提供的功能更多的功能,則可以創建您自己的從 CD 啟動的 Windows XP Embedded 映像。有關創建可啟動 CD-ROM 的詳細信息,請參見該Microsoft Web 站點。
◆Windows PE 上不受支持的Windows API
Win32 API 集的下列類別函數在 Windows PE 中不存在:
• Windows Management Instrumentation (WMI)
• Windows Multimedia
• Still Image
• OpenGL
• NetShow Theater Administration
• Windows Shell
• Access Control
• Power Options
• Printing and Print Spooler
• Window Station and Desktop
• Terminal Services
• User Profile
• Tape Backup
有關這些類別的詳細信息,請參見該Microsoft Web 站點。
【編輯推薦】