BOOT.INI 和 ARC 路径命名约定与用法

文章翻译 文章翻译
文章编号: 102873 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

本文解释高级 RISC 计算 (ARC) 规范中用于定义基于 Intel x86 处理器的计算机和基于 RISC 的计算机上的 Windows NT 安装路径的约定。本文包括以下各节:

  • 基于 x86 的 ARC 路径和基于 RISC 的 ARC 路径之比较
  • MULTI(X) 和 SCSI(X) 语法及应用之间的区别
  • 基于 x86 的 ARC 路径和基于 RISC 的 ARC 路径示例

基于 x86 的 ARC 路径和基于 RISC 的 ARC 路径之比较

对于基于 x86 的计算机,在 BOOT.INI 文件中分别使用一行来说明各个 Windows NT 安装的路径;但是,对于基于 RISC 的计算机,则需要在计算机固件启动选项中使用四行来指向单个 Windows NT 安装。如果在基于 x86 的计算机上有多个 Windows NT 安装,则对于其中每个安装,BOOT.INI 中都含有一个 ARC 路径。在启动过程中,将为您显示一个启动菜单提示,以供您选择要启动的安装。

ARC 路径以两种基本形式显示:一种形式是以 MULTI() 开头,另一种形式是以 SCSI() 开头。在基于 x86 的计算机上,使用这两种形式;但在 RISC 计算机上,只使用 SCSI() 形式:

基于 x86 的计算机

下面是两个普通示例,分别代表可能存在的 BOOT.INI ARC 路径:
multi(X)disk(Y)rdisk(Z)partition(W)\<winnt_dir>

- 或者 -

scsi(X)disk(Y)rdisk(Z)partition(W)\<winnt_dir>


其中,X、Y、Z 和 W 是标识其左侧项目的数字。

使用上述这两个 ARC 路径示例,Windows NT 都可以找到 %SystemRoot% 目录,以便通过加载驻留于该目录中的文件来完成启动过程。有关其他信息,请参阅下面的“MULTI(X) 和 SCSI(X) 语法及应用之间的区别”一节。

基于 RISC 的计算机

因为基于 RISC 的体系结构要求固件指向系统的不同区域,所以单个 Windows NT 安装的 ARC 路径由四个包含 ARC 路径的定义组成(与此相对的是,在基于 x86 的计算机上,ARC 路径定义只包含一行)。这四个定义中每个定义后面的各个 ARC 路径都以跟在定义名称后面的 SCSI() 开始:

SYSTEMPARTITION scsi(X)disk(Y)rdisk(Z)partition(W)
OSLOADER  scsi(X)disk(Y)rdisk(Z)partition(W)\os\<nt_dir>\osloader.exe
OSLOADPARTITION scsi(X)disk(Y)rdisk(Z)partition(W)
OSLOADFILENAME  \<winnt_dir>
				


以下内容将解释上述四行定义组中的各个行。

定义 1 (SYSTEMPARTITION):
定义 SYSTEMPARTITION(它是存放 OSLOADER.EXE 和 HAL.EXE 的小型文件分配表 (FAT) 分区)的路径:

scsi(X)disk(Y)rdisk(Z)partition(W)


定义 2 (OSLOADER):
定义 OSLOADER 文件的路径。它与 SYSTEMPARTITION 相同,但它包含一个路径描述符:

scsi(X)disk(Y)rdisk(Z)partition(W)\os\<nt_dir>\osloader.exe

其中,<nt_dir> 指示 OSLOADER.EXE 所在的目录。


定义 3 (OSLOADPARTITION):
定义包含其余 Windows NT 系统文件的启动分区:

scsi(X)disk(Y)rdisk(Z)partition(W)


定义 4 (OSLOADFILENAME):

定义 Windows NT 安装目录 (winnt_dir) 的名称(不带盘符):

\<winnt_dir>


MULTI(X) 和 SCSI(X) 语法及应用之间的区别

MULTI(X) 语法

MULTI(X) 语法形式的 ARC 路径仅在基于 x86 的计算机上使用。在 Windows NT 3.1 版中,此路径仅对 IDE 和 ESDI 驱动器有效;在 Windows NT 版本 3.5、3.51 和 4.0 中,它还对 SCSI 驱动器有效。

MULTI() 语法向 Windows NT 指明它应该依靠计算机 BIOS 来加载系统文件。这意味着操作系统将使用中断 (INT) 13 BIOS 调用来查找和加载 NTOSKRNL.EXE 以及启动 Windows NT 所需的任何其他文件。

参数 X、Y、Z 和 W 具有以下含义:

  • X 是适配器的序号,并且应始终为 0(有关原因,应参阅下文)。
  • 如果 ARC 路径以 MULTI() 开头,则 Y 始终为 0(零),原因在于 MULTI() 如上所述请求 INT 13 调用,因而不需要 DISK() 参数信息。
  • Z 是适配器上磁盘的序号,并且通常是介于 0 和 3 之间的数字。
  • W 是分区编号。除类型 5(MS-DOS 扩展分区)和类型 0(未用)分区以外,所有分区都有一个编号,并且首先为主分区编号,然后再为逻辑驱动器编号。 注意:W 的第一个有效数字为 1;与此相对的是,X、Y 和 Z 从 0(零)开始。
理论上,可使用此语法在系统中的任意驱动器上启动 Windows NT。不过,这需要通过标准 INT 13 接口正确地标识所有驱动器;因为对这一点的支持随磁盘控制器的不同而不同,而且大多数系统 BIOS 只通过 INT 13 标识单个磁盘控制器,所以实际上只有以下使用方法才是安全的:使用此语法从连接到主磁盘控制器的头两个驱动器中启动 Windows NT,或者,如果主磁盘控制器是双通道 EIDE 控制器,则从连接到主磁盘控制器的头四个驱动器中启动 Windows NT。

在纯 IDE 系统中,MULTI() 语法将对双通道控制器的主通道和辅助通道上最多四个驱动器起作用。

在纯 SCSI 系统中,MULTI() 语法将对第一个 SCSI 控制器(也就是其 BIOS 首先加载的控制器)上的头两个驱动器起作用。

在 SCSI 和 IDE 混合系统中,MULTI() 语法将只对第一个控制器上的 IDE 驱动器起作用。

SCSI(X) 语法

SCSI() 语法适用于基于 RISC 的计算机和基于 x86 的计算机,并且适用于所有版本的 Windows NT。使用 SCSI() 符号表明 Windows NT 将加载一个启动设备驱动程序,并使用该驱动程序来访问启动分区。

在基于 x86 的计算机上,所使用的设备驱动程序是 NTBOOTDD.SYS,它位于系统驱动器(通常是驱动器 C)的根目录中,并且是所使用的驱动器控制器的设备驱动程序的副本。

在 RISC 计算机上,按照 RISC 规范的要求将驱动程序内置于固件中,因此不需要任何文件。

当使用 SCSI() 语法时,参数 X、Y、Z 和 W 具有以下含义:

  • X 是由 NTBOOTDD.SYS 驱动程序标识的适配器序号。
  • Y 是目标磁盘的 SCSI ID。
  • Z 是目标磁盘的 SCSI 逻辑单元号 (LUN)。此编号几乎始终为 0(零)。
  • W 为分区编号。除类型 5(MS-DOS 扩展分区)和类型 0(未用)分区以外,所有分区都有一个编号,并且首先为主分区编号,然后再为逻辑驱动器编号。

    注意:W 的第一个有效数字为 1;与此相对的是,X、Y 和 Z 从 0 开始。
使用 SCSI() 符号时,X 的值取决于 NTBOOTDD.SYS。Windows NT 下的每个 SCSI 驱动程序都有其自己的控制器编号方法,尽管一般情况下它们遵循控制器上的 BIOS 的加载顺序(前提是 BIOS 被加载)。

另外,如果您拥有多个使用不同设备驱动程序的控制器,则在确定 X 参数的值时,只应该考虑那些由 NTBOOTDD.SYS 控制的控制器。例如,如果您拥有一个 Adaptec 2940 控制器(它使用驱动程序 AIC78XX.SYS)和一个 Adaptec 1542 控制器(它使用 AHA154X.SYS),X 将始终为 0。将要更改的是 NTBOOTDD.SYS 文件:

  • 如果您从 Adaptec 2940 上的驱动器中加载 Windows NT,NTBOOTDD.SYS 将是 AIC78XX.SYS 的副本。
  • 如果您从 Adaptec 1542 上的驱动器中加载 Windows NT,NTBOOTDD.SYS 将是 AHA154X.SYS 的副本。

基于 x86 的 ARC 路径和基于 RISC 的 ARC 路径示例

下面是有效 ARC 路径的示例。头两个示例是基于 x86 的计算机上的 ARC 路径。示例 3 取自基于 DEC Alpha AXP 150 RISC 的计算机上的单个启动条目,但对于所有具有类似驱动器配置的基于 RISC 的计算机而言,它都应该是正确的。

注意:如果您如下面的示例 1 和 2 所示,在 BOOT.INI 文件中拥有多个 ARC 路径,并且在您的计算机中拥有多个不同的 SCSI 适配器,则您必须首先将相应的 SCSI 驱动程序复制为系统分区(通常为驱动器 C)的根目录中的 NTBOOTDD.SYS 文件,然后才能关机以从驻留在连接到其他 SCSI 控制器的驱动器上的 Windows NT 安装进行启动。这是因为无论另一个 Windows NT 安装驻留在哪个驱动器上,NTBOOTDD.SYS 都始终驻留在系统分区上。

示例 1:多个 SCSI 控制器

这是一台安装有以下驱动器和控制器的、基于 x86 的计算机的示例:

  • 两个 Adaptec 2940 SCSI 控制器,每个具有两个 1 GB 硬盘驱动器,分别位于 ID 0 和 1。
  • 一个 Adaptec 1542 SCSI 磁盘控制器,具有两个 1 GB 硬盘驱动器,分别位于 ID 0 和 4。
每个硬盘驱动器都具有一个大小为 1 GB 的主分区。为了更好地解释该示例,这些分区被从 1 到 6 进行编号,其中分区 1 和 2 标识连接到 Adaptec 2940 控制器的磁盘 1 和 2,分区 3 和 4 标识连接到第二个 Adaptec 2940 控制器的磁盘,分区 5 和 6 位于连接到 Adaptec 1542 的磁盘上。根据您用来安装 Windows NT 的分区,BOOT.INI 中将出现下列 ARC 路径中的某个路径。本示例假定 Windows NT 安装在名为 WINNT35 的目录中:

安装在相应 ARC 路径中的 Windows NT

分区 1(位于第一个 Adaptec 2940 上) multi(0)disk(0)rdisk(0)partition(1)\WINNT35
分区 2(位于第一个 Adaptec 2940 上) multi(0)disk(0)rdisk(1)partition(1)\WINNT35
分区 3(位于第二个 Adaptec 2940 上) scsi(1)disk(0)rdisk(0)partition(1)\WINNT35
分区 4(位于第二个 Adaptec 2940 上) scsi(1)disk(1)rdisk(0)partition(1)\WINNT35
分区 5(位于 Adaptec 1542 上) scsi(0)disk(0)rdisk(0)partition(1)\WINNT35
分区 6(位于 Adaptec 1542 上) scsi(0)disk(4)rdisk(0)partition(1)\WINNT35
				


备注:对于分区 3 和 4,NTBOOTDD.SYS 是 AIC78XX.SYS 的副本;对于分区 5 和 6,NTBOOTDD.SYS 是 AHA154X.SYS 的副本。如果您拥有的 NTBOOTDD.SYS 文件是 AIC78XX.SYS 驱动程序的副本,则可以使用下列路径来替换分区 1 和 2 的 ARC 路径:

安装在相应 ARC 路径中的 Windows NT

分区 1(位于第一个 Adaptec 2940 上) scsi(0)disk(0)rdisk(0)partition(1)\WINNT35
分区 2(位于第一个 Adaptec 2940 上) scsi(0)disk(1)rdisk(0)partition(1)\WINNT35
				


但是,Windows NT 安装程序始终对这头两个驱动器使用 MULTI() 语法。

示例 2:混合的 IDE 和 SCSI 环境

这是一台安装有以下驱动器和控制器的、基于 x86 的计算机的示例:

  • 一个具有三个大小为 1 GB 的驱动器的双通道 EIDE 控制器,其中两个驱动器位于主通道上,另一个驱动器位于辅助通道上。
  • 一个 Adaptec 2940 SCSI 控制器,仅在 ID 3 具有一个大小为 4 GB 的硬盘驱动器。
这三个 EIDE 驱动器中的每一个都具有一个大小为 1 GB 的分区,而 SCSI 驱动器具有四个大小为 1 GB 的分区。为了更好地解释本示例,这些分区被从 1 到 7 进行编号,其中分区 1 和 2 标识 EIDE 控制器的主通道上的磁盘 1 和 2,分区 3 位于第二个通道上,分区 4、5、6 和 7 位于 SCSI 驱动器上。根据您用来安装 Windows NT 的分区的不同,下列 ARC 路径中的一个路径将出现在 BOOT.INI 中。本示例假定 Windows NT 安装在名为 WINNT35 的目录中:

安装在相应 ARC 路径中的 Windows NT

分区 1(主EIDE 通道) Multi(0)disk(0)rdisk(0)partition(1)\WINNT35
分区 2(主EIDE 通道) multi(0)disk(0)rdisk(1)partition(1)\WINNT35
分区 3(辅助 EIDE 通道) multi(0)disk(0)rdisk(2)partition(1)\WINNT35
分区 4(位于 Adaptec 2940 上) scsi(0)disk(3)rdisk(0)partition(1)\WINNT35
分区 5(位于 Adaptec 2940 上) scsi(0)disk(3)rdisk(0)partition(2)\WINNT35
分区 6(位于 Adaptec 2940 上) scsi(0)disk(3)rdisk(0)partition(3)\WINNT35
分区 7(位于 Adaptec 2940 上) scsi(0)disk(3)rdisk(0)partition(4)\WINNT35
				


备注:从分区 4 到 7 中加载 Windows NT 要求 NTBOOTDD.SYS 文件是 AIC78XX.SYS 的副本。

示例 3:DEC Alpha AXP 150 上的启动变量

在 RISC 计算机上,通过固件定义所有启动路径。当您为 RISC 计算机创建新的启动条目时,固件会为您提供一系列提示信息,以帮助您正确地定义路径;因此,除非您正在编辑不再起作用的启动条目,否则您永远都没有必要直接编辑 RISC 计算机上的 ARC 路径。

下面的示例是 DEC Alpha AXP 150 上的启动条目,该计算机具有单个硬盘驱动器,它位于 ID 0 并按如下方式进行分区:

  • 一个大小为 4 MB 的系统分区。
  • 一个大小为 396 MB 的启动分区。
Windows NT 安装在启动分区上名为 WINNT35 的目录中;OSLOADER 目录的名称也是 OS\WINNT35,但它位于系统分区上。启动条目具有以下值:

SYSTEMPARTITION scsi(0)disk(0)rdisk(0)partition(1)
OSLOADER  scsi(0)disk(0)rdisk(0)partition(1)\os\winnt35\osloader.exe
OSLOADPARTITION scsi(0)disk(0)rdisk(0)partition(2)
OSLOADFILENAME  \WINNT35
				

属性

文章编号: 102873 - 最后修改: 2004年2月13日 - 修订: 3.0
这篇文章中的信息适用于:
  • Microsoft Windows NT Advanced Server 3.1
  • Microsoft Windows NT Server 3.5
  • Microsoft Windows NT Server 3.51
  • Microsoft Windows NT Server 4.0 Standard Edition
  • Microsoft Windows NT Workstation 3.1
  • Microsoft Windows NT Workstation 3.5
  • Microsoft Windows NT Workstation 3.51
  • Microsoft Windows NT Workstation 4.0 开发员版
  • Microsoft Windows NT Advanced Server 3.1
关键字:?
kbhowto kbusage KB102873
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com