Windows XP Embedded和Windows XP Professional 的双启动
简介
许多 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 设置和驱动器号的问题。在以下各部分中,我尝试将这些问题解释清楚。
配置设置
在 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。
目标设备设置 – 驱动器号正确吗?
驱动器号 E 正确吗?您如何确定这些参数?以下部分提供了有关如何设置这些参数的提示。
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 映像(包括根启动文件)复制到分区。在开始使用独立系统时,您将需要这些文件。
驱动器号
正是驱动器号导致了大部分问题的发生,并且它是最难以解决的参数。如果您设置的驱动器号不正确,操作系统将会反复重新启动,而不会启动 Microsoft Windows XP Embedded First Boot Agent (FBA)。
当您创建第二个分区后,磁盘管理器会自动为新分区指定一个驱动器号。在图 2 中,磁盘管理器为主磁盘上用于 Windows XP Embedded 的第二个分区指定了驱动器号 E。CD-ROM 驱动器使用驱动器号 D。
图 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。虽然这不是查找驱动器号的最科学方法,但是它始终有效。
请注意,如果您的系统有多个硬盘驱动器,则可能需要仔细考虑驱动器号。
该 Microsoft Web 站点下载此版本。请查看 http://www.sjjmico.com/ 上的 Windows XP Embedded Toolkit,以获得有关将 Windows XP Embedded 与 VPC 配合使用的详细信息。
小结
双启动开发计算机以测试 Windows XP Embedded 是您熟悉工具的一个快捷方法。完全了解 ARC 路径和驱动器号将有助于您在最后获得成功。