找回密码
 注册
快捷导航
查看: 3590|回复: 4

【转贴】BOOT.INI 和 ARC 路径命名约定与用法

[复制链接] |自动提醒
阅读字号:

22

回帖

0

积分

56

资产值

入门会员 Rank: 1

注册时间
2004-9-4
发表于 2004-12-14 22:23:54| 字数 1,593| - 中国–山东–烟台 联通/(开发区)联通 | 显示全部楼层 |阅读模式
概要
本文解释高级 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>

22

回帖

0

积分

56

资产值

入门会员 Rank: 1

注册时间
2004-9-4
 楼主| 发表于 2004-12-14 22:24:47| 字数 1,824| - 中国–山东–烟台 联通/(开发区)联通 | 显示全部楼层
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 具有以下含义:

&#8226; X 是适配器的序号,并且应始终为 0(有关原因,应参阅下文)。  
&#8226; 如果 ARC 路径以 MULTI() 开头,则 Y 始终为 0(零),原因在于 MULTI() 如上所述请求 INT 13 调用,因而不需要 DISK() 参数信息。  
&#8226; Z 是适配器上磁盘的序号,并且通常是介于 0 和 3 之间的数字。  
&#8226; 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 具有以下含义:

&#8226; X 是由 NTBOOTDD.SYS 驱动程序标识的适配器序号。  
&#8226; Y 是目标磁盘的 SCSI ID。  
&#8226; Z 是目标磁盘的 SCSI 逻辑单元号 (LUN)。此编号几乎始终为 0(零)。  
&#8226; 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 文件:

&#8226; 如果您从 Adaptec 2940 上的驱动器中加载 Windows NT,NTBOOTDD.SYS 将是 AIC78XX.SYS 的副本。  
&#8226; 如果您从 Adaptec 1542 上的驱动器中加载 Windows NT,NTBOOTDD.SYS 将是 AHA154X.SYS 的副本。
回复 支持 反对

使用道具 举报

22

回帖

0

积分

56

资产值

入门会员 Rank: 1

注册时间
2004-9-4
 楼主| 发表于 2004-12-14 22:25:20| 字数 2,327| - 中国–山东–烟台 联通/(开发区)联通 | 显示全部楼层
基于 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 的计算机的示例:

&#8226; 两个 Adaptec 2940 SCSI 控制器,每个具有两个 1 GB 硬盘驱动器,分别位于 ID 0 和 1。  
&#8226; 一个 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 的计算机的示例:

&#8226; 一个具有三个大小为 1 GB 的驱动器的双通道 EIDE 控制器,其中两个驱动器位于主通道上,另一个驱动器位于辅助通道上。  
&#8226; 一个 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 的副本。
回复 支持 反对

使用道具 举报

340

回帖

2

积分

421

资产值

初级会员 Rank: 1

注册时间
2002-6-1
铜牌荣誉勋章(注册8年以上会员)银牌荣誉勋章(注册10年以上会员)
发表于 2004-12-15 08:28:45| 字数 11| - 中国–江苏–南京 联通 | 显示全部楼层
虽然长了点,还是顶一下
回复 支持 反对

使用道具 举报

65

回帖

0

积分

82

资产值

入门会员 Rank: 1

注册时间
2004-12-14
发表于 2004-12-16 16:19:26| 字数 17| - 中国–内蒙古–呼伦贝尔 联通 | 显示全部楼层
说的简单点,太长了,没有时间细看啊
传说中的菜鸟,但笨鸟正在学习,希望传说中的老鸟能帮助,因为都是传说中的.....
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Powered by Discuz! X3.5 © 2001-2023 Comsenz Inc

GMT+8, 2025-1-25 11:46 , Processed in 0.104174 second(s), 33 queries , Gzip On, OPcache On.

手机版|小黑屋|安卓客户端|iOS客户端|Archiver|备用网址1|备用网址2|在线留言|专门网

返回顶部