天天看點

XP Embedded 的雙啟動提示

釋出日期 : 7/7/2005 | 更新日期 : 7/7/2005

by Sean D. Liming

Microsoft Embedded MVP

Managing Director, SJJ Embedded Micro Solutions

适用于 Microsoft© Windows® XP Embedded

摘要

雙啟動是玩轉 Windows XP Embedded 時最常用的目标方法之一。本文讨論解決雙啟動配置問題的某些技巧。

本頁内容
XP Embedded 的雙啟動提示

簡介

XP Embedded 的雙啟動提示

配置設定

XP Embedded 的雙啟動提示

Boot.ini 檔案

XP Embedded 的雙啟動提示

ARC 路徑

XP Embedded 的雙啟動提示

驅動器号

XP Embedded 的雙啟動提示

Virtual PC 2004 — 更好的選擇

XP Embedded 的雙啟動提示

小結

XP Embedded 的雙啟動提示

SJJ Embedded Micro Solutions 公司

XP Embedded 的雙啟動提示

更多資訊

XP Embedded 的雙啟動提示

其他資源

簡介

許多 Windows® XP Embedded 開發的新手選擇他們自己的開發系統作為 Windows XP Embedded 目标平台。稱為雙啟動的原因是,它允許開發人員在 Windows XP Professional 中建構 Windows XP Embedded 作業系統,将該作業系統下載下傳到一個單獨的分區或硬碟驅動器,然後将計算機重新啟動到 Windows XP Embedded。因為不再需要購買一台單獨的計算機作為目标計算機,是以雙啟動可以為您節省成本。

對于在該環境下程式設計的開發人員而言,其面臨的一個問題就是如何在 Windows XP Embedded 配置和 boot.ini 檔案中設定正确的參數。Windows XP Embedded 新聞討論區中充斥着有關進階 RISC 計算 (ARC) 路徑、boot.ini 設定和驅動器号的問題。在以下各部分中,我嘗試将這些問題解釋清楚。

XP Embedded 的雙啟動提示

傳回頁首

配置設定

在 Windows NT Embedded 時代,Windows NT 與 Windows NT Embedded 之間雙啟動的唯一設定要求就是在主活動分區的 boot.ini 檔案中更改 ARC 路徑。然而現在,系統資料庫更加完整了。是以,Windows XP 和 Windows XP Embedded 自然而然地要求将驅動器号和 ARC 路徑資訊内置到系統資料庫中。當您在計算機上安裝 Windows XP 時,會在安裝期間自動安裝驅動器号和 ARC 路徑設定。

對于 Windows XP Embedded,您必須在自定義配置的目标設計器中手動設定驅動器和 ARC 路徑設定。圖 1 顯示一個示例“目标裝置設定”部分。作業系統将駐留在第一個硬碟驅動器的第二個分區上。該分區大小為 2 MB。

XP Embedded 的雙啟動提示

目标裝置設定 – 驅動器号正确嗎?

驅動器号 E 正确嗎?您如何确定這些參數?以下部分提供了有關如何設定這些參數的提示。

XP Embedded 的雙啟動提示

傳回頁首

Boot.ini 檔案

擴充 Windows NT 的 boot.ini 檔案,允許在一台計算機上存在多個作業系統的執行個體。使用 boot.ini 檔案,您可以啟動到不同的作業系統,如 DOS、Windows 9X、Windows 2000、Windows XP 和 Windows XP Embedded。通常,這些不同的作業系統駐留在計算機的不同硬碟驅動器或分區中。Boot.ini 檔案包含定義作業系統安裝路徑的 ARC 路徑。

在您建構 Windows XP Embedded 映像時,目标設計器會自動建立一個 boot.ini 檔案,其中的 ARC 路徑基于“目标裝置設定”中的值。在雙啟動方案中,沒有使用映像的 boot.ini 檔案,也沒有使用 NTLDR 和 NTDETECT 檔案,這兩個檔案位于映像的根下。

當計算機啟動時,BIOS post 會運作和配置晶片集以啟動作業系統。在系統 BIOS 完成 ROM 掃描操作後,它會查找啟動裝置,如軟碟、CD-ROM、USB 閃存、PXE 用戶端或硬碟驅動器。在硬碟驅動器上,BIOS 會檢視前幾個扇區(也稱為主啟動記錄 (MBR))。MBR 中包含可告知 BIOS 到哪裡查找主活動分區的所有分區和跟蹤資訊。系統中必須有一個主活動分區。

在雙啟動方案中,Windows XP Pro 駐留在主活動分區中,并且隻使用主活動分區中的 boot.ini 檔案(以及 NTLDR 和 NTDETECT)。一旦建構了 Windows XP Embedded 映像,您就必須手動編輯 Windows XP Pro 分區中的 boot.ini 檔案,以添加第二個 ARC 路徑選擇。以下為一個示例:

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Microsoft Windows XP Professional" /fastdetect
multi(0)disk(0)rdisk(0)partition(2)/WINDOWS="Microsoft Windows XP Embedded" /fastdetect
      

無論是否使用這些檔案,您都應該将整個 Windows XP Embedded 映像(包括根啟動檔案)複制到分區。在開始使用獨立系統時,您将需要這些檔案。

XP Embedded 的雙啟動提示

傳回頁首

ARC 路徑

作業系統使用 ARC 路徑來确定作業系統駐留的位置。路徑 multi(X)disk(Y)rdisk(Z)partition(W)/ 提供了一個指向作業系統裝置位置的指針。但是,指定 X、Y、Z 和 W 的值會出現問題。

另外,還有一個用于 SCSI 驅動器的 scsi(X)disk(Y)rdisk(Z)partition(W)/ ARC 路徑約定。SCSI 驅動器較為複雜,因為您可能會使用兩種 ARC 路徑類型。由于 IDE(包括串行 ATA)驅動器提高了性能,SCSI 驅動器就不那麼流行了,是以我們将使用 IDE ARC 路徑類型作為本文中的示例。有關 SCSI 支援的詳細資訊,請參閱“參考資料”部分中的 MSDN ARC 路徑文章參考。由于這個原因,我們可以假定 X 和 Y 的值始終為 0 – multi(0)disk(0)。這就隻剩下了 Z 和 W 的值。

Z 值指的是磁盤編号,它從 0 開始。磁盤順序通常由 IDE 或 SATA 總線(IDE 0 或 IDE 1,SATA 0 或 SATA 1)以及該磁盤是主驅動器還是次驅動器決定。

W 值指的是 Z 值所定義的磁盤上的分區号。分區号從 1 開始。

下面是闡明 Z 和 W 概念的幾個示例。

示例 1:您希望 Windows XP Embedded 從第二個 IDE 磁盤(IDE0 次驅動器)的第二個分區啟動。ARC 路徑将如下所示:

multi(0)disk(0)rdisk(1)partition(2)/WINDOWS="Microsoft Windows XP Embedded" /fastdetect
      

示例 2:您希望 Windows XP Embedded 從第四個 IDE 磁盤(IDE1 次驅動器)的第三個分區啟動。ARC 路徑将如下所示:

multi(0)disk(0)rdisk(3)partition(3)/WINDOWS="Microsoft Windows XP Embedded" /fastdetect
      

示例 3:您希望 Windows XP Embedded 從第一個 IDE 磁盤(IDE0 主驅動器)的第二個分區啟動。ARC 路徑将如下所示:

multi(0)disk(0)rdisk(0)partition(2)/WINDOWS="Microsoft Windows XP Embedded" /fastdetect
      

請注意,ARC 路徑以 /WINDOWS 結尾。對于從 Windows NT 更新系統的開發人員來說,還有一些困惑。舊的目錄稱為 /WINNT。Windows XP Embedded 映像将所有的主要檔案都放在 /WINDOWS 目錄下,是以您的 ARC 路徑中還應該有 /WINDOWS。如果您使用 /WINNT 取而代之,則會在啟動時收到以下錯誤資訊:

Windows could not start because the following file is missing
or corrupt:
<Windows root>/System32/hal.dll.
Please re-install a copy of the above file.
      
XP Embedded 的雙啟動提示

傳回頁首

驅動器号

正是驅動器号導緻了大部分問題的發生,并且它是最難以解決的參數。如果您設定的驅動器号不正确,作業系統将會反複重新啟動,而不會啟動 Microsoft Windows XP Embedded First Boot Agent (FBA)。

當您建立第二個分區後,磁盤管理器會自動為新分區指定一個驅動器号。在圖 2 中,磁盤管理器為主磁盤上用于 Windows XP Embedded 的第二個分區指定了驅動器号 E。CD-ROM 驅動器使用驅動器号 D。

XP Embedded 的雙啟動提示

圖 2 驅動器号為 E 的第二個分區

假定 Windows XP Embedded 驅動器号必須為 E,那麼您可能會如圖 1 所示那樣設定“目标裝置設定”。但是,實際情況不是這樣的。

要确定正确的驅動器号,應假定系統在沒有 CD-ROM 驅動器的情況下啟動 DOS,并且所有驅動器都有檔案配置設定表 (FAT) 檔案系統。如果您要在 DOS 中通路每個分區,則驅動器号應如下配置設定:

  • Windows XP Embedded 中的 C 應該是 DOS 中的 C。
  • Windows XP Embedded 中的 E 應該是 DOS 中的 D,這是因為沒有加載 CD-ROM 驅動器。

這樣,正确的驅動器号應該是 D 。在圖 1 中,“目标裝置設定”需要使用 D 驅動器号而不是 E。雖然這不是查找驅動器号的最科學方法,但是它始終有效。

請注意,如果您的系統有多個硬碟驅動器,則可能需要仔細考慮驅動器号。

XP Embedded 的雙啟動提示

傳回頁首

Virtual PC 2004 — 更好的選擇

我不得不承認,雙啟動并不是我在測試 Windows XP Embedded 時最喜歡使用的方法。我更喜歡用單獨的目标系統;因為原始裝置生産商 (OEM) 要提供的是隻使用 Windows XP Embedded 的系統。

您當然希望節省資金,同時初探這些選項。如果您在之後無法啟動作業系統,那麼結果将非常糟糕,這本來是可以避免的。此外,還有一個缺點。您必須關閉對開發系統的通路才能啟動到測試作業系統,這将減慢整個開發過程的速度。

基于這些原因,使得 Virtual PC 2004 (VPC) 優于雙啟動。我發現,VPC 非常有助于無法擁有第二個目标系統情況下的長期開發過程。最好的一點是,當我每次需要運作 Windows XP Embedded 内部版時,不必再重新啟動計算機。

在撰寫本文時,Virtual PC 2004 推出了一個 45 天的免費試用版,您可以從該 Microsoft Web 站點下載下傳此版本。請檢視 www.sjjmico.com 上的 Windows XP Embedded Toolkit,以獲得有關将 Windows XP Embedded 與 VPC 配合使用的詳細資訊。

XP Embedded 的雙啟動提示

傳回頁首

小結

雙啟動開發計算機以測試 Windows XP Embedded 是您熟悉工具的一個快捷方法。完全了解 ARC 路徑和驅動器号将有助于您在最後獲得成功。

XP Embedded 的雙啟動提示

傳回頁首

SJJ Embedded Micro Solutions 公司

開發一個嵌入式系統不僅僅是挑選一些元件然後建構一個映像那麼簡單。開發人員必須考慮如何在領域中使用、建立和支援該系統。在 SJJ Embedded Micro Solutions 公司,我們使用了一個體系結構方法來為您的産品提供适當的解決方案。我們在各種市場上都有豐富的經驗。我們以前的 Windows Embedded 項目包括:瘦用戶端、遊戲控制台、工業控制、VoIP 系統、測試裝置、消費電器和汽車。

如果您尋求 Windows XP Embedded 項目的支援,請通過 [email protected] 與我們聯系,或者通過 Web 通路: www.sjjmico.com。

尋求有關 Windows XP Embedded SP2 的幫助?請檢視包含 Windows XP Embedded Service Pack 2 的最新 Windows XP Embedded Supplemental Toolkit。

XP Embedded 的雙啟動提示

傳回頁首

更多資訊

有關 Windows XP Embedded 的詳細資訊,請通路 Windows Embedded Web 站點。

有關 Windows XP Embedded 随附的聯機文檔和上下文敏感的幫助,請參閱 Windows XP Embedded 産品文檔。

XP Embedded 的雙啟動提示

傳回頁首

其他資源

FBA Reboots Repeatedly

BOOT.INI and ARC Path Naming Conventions and Usage

How Windows 2000 Assigns, Reserves, and Stores Drive Letters

轉到原英文頁面