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