Boot.ini 文件
擴(kuò)充 Windows NT 的 boot.ini 文件,允許在一臺(tái)計(jì)算機(jī)上存在多個(gè)操作系統(tǒng)的實(shí)例。使用 boot.ini 文件,您可以啟動(dòng)到不同的操作系統(tǒng),如 DOS、Windows 9X、Windows 2000、Windows XP 和 Windows XP Embedded。通常,這些不同的操作系統(tǒng)駐留在計(jì)算機(jī)的不同硬盤驅(qū)動(dòng)器或分區(qū)中。Boot.ini 文件包含定義操作系統(tǒng)安裝路徑的 ARC 路徑。
在您構(gòu)建 Windows XP Embedded 映像時(shí),目標(biāo)設(shè)計(jì)器會(huì)自動(dòng)創(chuàng)建一個(gè) boot.ini 文件,其中的 ARC 路徑基于“目標(biāo)設(shè)備設(shè)置”中的值。在雙啟動(dòng)方案中,沒有使用映像的 boot.ini 文件,也沒有使用 NTLDR 和 NTDETECT 文件,這兩個(gè)文件位于映像的根下。
當(dāng)計(jì)算機(jī)啟動(dòng)時(shí),BIOS post 會(huì)運(yùn)行和配置芯片集以啟動(dòng)操作系統(tǒng)。在系統(tǒng) BIOS 完成 ROM 掃描操作后,它會(huì)查找啟動(dòng)設(shè)備,如軟盤、CD-ROM、USB 閃存、PXE 客戶端或硬盤驅(qū)動(dòng)器。在硬盤驅(qū)動(dòng)器上,BIOS 會(huì)查看前幾個(gè)扇區(qū)(也稱為主啟動(dòng)記錄 (MBR))。MBR 中包含可告知 BIOS 到哪里查找主活動(dòng)分區(qū)的所有分區(qū)和跟蹤信息。系統(tǒng)中必須有一個(gè)主活動(dòng)分區(qū)。
在雙啟動(dòng)方案中,Windows XP Pro 駐留在主活動(dòng)分區(qū)中,并且只使用主活動(dòng)分區(qū)中的 boot.ini 文件(以及 NTLDR 和 NTDETECT)。一旦構(gòu)建了 Windows XP Embedded 映像,您就必須手動(dòng)編輯 Windows XP Pro 分區(qū)中的 boot.ini 文件,以添加第二個(gè) ARC 路徑選擇。以下為一個(gè)示例:
[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
無論是否使用這些文件,您都應(yīng)該將整個(gè) Windows XP Embedded 映像(包括根啟動(dòng)文件)復(fù)制到分區(qū)。在開始使用獨(dú)立系統(tǒng)時(shí),您將需要這些文件。
ARC 路徑
操作系統(tǒng)使用 ARC 路徑來確定操作系統(tǒng)駐留的位置。路徑 multi(X)disk(Y)rdisk(Z)partition(W)\ 提供了一個(gè)指向操作系統(tǒng)設(shè)備位置的指針。但是,指定 X、Y、Z 和 W 的值會(huì)出現(xiàn)問題。
另外,還有一個(gè)用于 SCSI 驅(qū)動(dòng)器的 scsi(X)disk(Y)rdisk(Z)partition(W)\ ARC 路徑約定。SCSI 驅(qū)動(dòng)器較為復(fù)雜,因?yàn)槟赡軙?huì)使用兩種 ARC 路徑類型。由于 IDE(包括串行 ATA)驅(qū)動(dòng)器提高了性能,SCSI 驅(qū)動(dòng)器就不那么流行了,因此我們將使用 IDE ARC 路徑類型作為本文中的示例。有關(guān) SCSI 支持的詳細(xì)信息,請(qǐng)參閱“參考資料”部分中的 MSDN ARC 路徑文章參考。由于這個(gè)原因,我們可以假定 X 和 Y 的值始終為 0 ?C multi(0)disk(0)。這就只剩下了 Z 和 W 的值。
Z 值指的是磁盤編號(hào),它從 0 開始。磁盤順序通常由 IDE 或 SATA 總線(IDE 0 或 IDE 1,SATA 0 或 SATA 1)以及該磁盤是主驅(qū)動(dòng)器還是次驅(qū)動(dòng)器決定。
W 值指的是 Z 值所定義的磁盤上的分區(qū)號(hào)。分區(qū)號(hào)從 1 開始。
下面是闡明 Z 和 W 概念的幾個(gè)示例。
示例 1:您希望 Windows XP Embedded 從第二個(gè) IDE 磁盤(IDE0 次驅(qū)動(dòng)器)的第二個(gè)分區(qū)啟動(dòng)。ARC 路徑將如下所示:
multi(0)disk(0)rdisk(1)partition(2)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect
示例 2:您希望 Windows XP Embedded 從第四個(gè) IDE 磁盤(IDE1 次驅(qū)動(dòng)器)的第三個(gè)分區(qū)啟動(dòng)。ARC 路徑將如下所示:
multi(0)disk(0)rdisk(3)partition(3)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect 示例 3:您希望 Windows XP Embedded 從第一個(gè) IDE 磁盤(IDE0 主驅(qū)動(dòng)器)的第二個(gè)分區(qū)啟動(dòng)。ARC 路徑將如下所示:
multi(0)disk(0)rdisk(0)partition(2)\WINDOWS="Microsoft Windows XP Embedded" /fastdetect
請(qǐng)注意,ARC 路徑以 \WINDOWS 結(jié)尾。對(duì)于從 Windows NT 升級(jí)系統(tǒng)的開發(fā)人員來說,還有一些困惑。舊的目錄稱為 \WINNT。Windows XP Embedded 映像將所有的主要文件都放在 \WINDOWS 目錄下,因此您的 ARC 路徑中還應(yīng)該有 \WINDOWS。如果您使用 \WINNT 取而代之,則會(huì)在啟動(dòng)時(shí)收到以下錯(cuò)誤信息:
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