配置规则 (Config_Rules) 对象类

描述

"配置规则" (Config_Rules) 对象类包含配置管理器使用的配置规则。 配置管理器在系统引导期间分两个阶段运行。 第一阶段负责配置基本设备,以便能够配置真正的根设备并使其准备就绪,以便运行。 在根文件系统启动并运行后,第二阶段会配置系统中的其余设备。 也可以在运行时调用 Configuration Manager。 配置管理器例程是由 Config_Rules 对象类中的规则驱动的。

交付系统时,将使用预定义的配置规则预装入 Config_Rules 对象类。 有三种类型的规则: 阶段 1 ,阶段 2 和阶段 2 服务。 您可以使用 ODM 命令在此对象类中添加,除去,更改和显示新的或现有的配置规则,以定制配置管理器的行为。 但是,对第 1 阶段规则所作的任何更改都必须写入引导文件系统才能生效。 这是使用 博斯引导 命令完成的。

系统中的所有逻辑和物理设备都组织在称为节点的树结构集群中。 有关节点或树结构的信息,请参阅 "设备配置管理器概述"内核扩展和设备支持编程概念。 Config_Rules 对象类中的规则指定配置管理器所执行的程序名。 通常,这些程序是节点的顶部的配置程序。 调用这些程序时,将在标准输出中返回需要配置的下一个较低级别设备的名称。

配置管理器通过调用这些设备的 配置方法 来配置下一个较低级别的设备。 然后,这些设备会返回要配置的设备名称的列表。 在不返回更多设备名称之前,将重复此过程。 同一节点中的所有设备都按横向顺序配置。

系统引导的第二阶段需要两组规则: 第 2 阶段和服务。 键在前面板上的位置决定了使用哪组规则。 当密钥位于服务位置时,将使用服务规则。 如果密钥位于任何其他位置,那么将使用第 2 阶段规则。 此对象类的配置管理器阶段描述符中指示了不同类型的规则。

每个配置规则都具有关联的引导掩码。 如果此掩码具有非零值,那么它表示该规则所适用的引导类型。 例如,如果掩码具有 磁盘 _ 启动 值,那么该规则将应用于磁盘为基本设备的系统引导。 引导掩码的类型在 /usr/include/sys/cfgdb.h 文件中定义。

Descriptors

配置规则 对象类中包含以下描述符:

ODM 类型 描述符名称 描述 描述符状态
ODM_SHORT phase 配置管理器阶段 必需
ODM_SHORT SEQ 序列值 必需
ODM_LONG 引导掩码 引导类型 必需
ODM_VCHAR rule_value [RULESIZE] 规则值 必需

以下描述了这些描述符:

描述信息 描述
配置管理器阶段 此描述符指示应该在第 1 阶段,第 2 2 阶段或第 2 阶段服务下执行规则的阶段。
第 1 年
指示应该在阶段 1 中执行该规则。
2
指示应在第 2 阶段执行该规则。
3
指示应以阶段 2 服务方式 2 该规则。
序列值 就这一阶段的其他规则而言,seqnumber 指示执行此程序时的顺序。 一般情况下,越低seq数字,优先级越高。 例如,具有以下条件的规则:seq值为 2 时,将在具有seq5 个数字。 有一个例外: 值为 0 表示 DONT_CARE 条件,并且任何规则都具有以下值:seq最后执行 0 的数目。
引导类型 如果boot_mask字段具有非零值,它表示该规则所适用的引导类型。 如果在调用 cfgmgr 命令时使用了 命令 标志,那么 cfgmgr 命令会将指定的掩码应用于此字段以确定是否执行规则。 缺省情况下, cfgmgr 命令始终执行规则,对于该规则,boot_mask字段具有 0 值。
规则值 此为要调用的程序的完整路径名。 规则值描述符还可能包含应该传递给该程序的任何选项。 但是,选项必须跟在程序名后面,因为将执行整个字符串,就像在命令行上输入了一样。
注: 每个要执行的程序都有一个规则。 如果需要多个营销计划,那么必须添加多个规则。
Rule Values

Phase   Sequence   Type of boot   Rule Value

1         1            0             /usr/lib/methods/defsys
1         10           0x0001        /usr/lib/methods/deflvm
2         1            0             /usr/lib/methods/defsys
2         5            0             /usr/lib/methods/ptynode
2         10           0             /usr/lib/methods/starthft
2         15           0             /usr/lib/methods/starttty
2         20           0x0010        /usr/lib/methods/rc.net
3         1            0             /usr/lib/methods/defsys
3         5            0             /usr/lib/methods/ptynode
3         10           0             /usr/lib/methods/starthft
3         15           0             /usr/lib/methods/starttty