JavaScript is required to for searching.
跳过导航链接
退出打印视图
从 Oracle Solaris 10 JumpStart 转换至 Oracle Solaris 11 自动化安装程序     Oracle Solaris 11 Information Library (简体中文)
search filter icon
search icon

文档信息

前言

1.  将 JumpStart 与自动化安装程序相比较

2.  转换规则和配置文件

比较规则关键字和条件指令

比较配置文件关键字和 AI 清单指令

使用 js2ai 将 JumpStart 规则和配置文件转换为 AI 条件和清单

js2ai 转换 JumpStart 设备规范的方式

确定系统根磁盘的方式

转换 any 设备的方式

确定 ZFS 根池的方式

转换软件包

使用 js2ai 转换规则和配置文件的示例

JumpStart Rules 文件和配置文件示例

使用带有 Rules 文件选项的 js2ai

等效 AI 条件文件

等效 AI 清单文件

修复 fdisk.profile 错误

修复 mirrorfilesys.profile 错误

修复 mirrorpool.profile 错误

修复 rootdisk.profile 错误

显示更多配置文件转换信息

验证输出 AI 清单

3.  转换配置文件

4.  在 Oracle Solaris 11 服务器上使用 JumpStart 安装 Oracle Solaris 10

使用 js2ai 将 JumpStart 规则和配置文件转换为 AI 条件和清单

使用带有 -r 选项的 js2ai 实用程序将 JumpStart 规则及其关联配置文件转换为 AI 条件和清单。最初使用 -S 选项跳过验证。

/usr/sbin/js2ai -rS [-d sysidcfg_dir] [-D  destination_dir]

此命令将对 rules 文件和 rules 文件所引用的配置文件执行转换操作。将根据 AI 客户机置备清单 /usr/share/auto_install/manifest/default.xml 处理 rules 文件中引用的每个配置文件。此步骤将为 JumpStart rules 文件中指定的每个配置文件创建一个名为 AI_profile_name 的目录。AI_profile_name 目录包含 criteria-rule_number.xml 格式的 AI 条件文件,该文件与引用该配置文件的规则相对应。AI_profile_name 目录还包含 profile_name.arch.xml 格式的 AI 清单文件,这些文件与 profile_name 配置文件相对应。

如果没有看到说明转换成功完成的消息,请检查错误报告和 js2ai.log 文件。错误报告和日志文件报告警告、处理错误、不支持的项、转换错误和验证错误。错误报告是一个输出到 stdout 的表,其中显示在转换 rules 和配置文件时遇到的各种类型错误的编号。日志文件描述问题。

  1. 更正任何处理错误。

  2. rules 和配置文件中删除作为不支持的项列出的任何行。

  3. 检查转换错误并更正错误(如果可能)。否则,请删除导致错误的行。

  4. 检查任何警告消息并确保不需要进行更正。

当您收到说明成功完成转换的消息时,运行不带 -S 选项的 js2ai 命令验证输出 AI 清单。必须在 AI 清单文件中更正验证错误。

要针对相应的 AI DTD 验证特定输出 AI 清单,请运行带有 -V 选项的 js2ai 命令:

/usr/sbin/js2ai -V manifest_file

将 AI 清单添加到 AI 安装服务时,也需验证这些清单。

要使用 js2ai 实用程序转换一个 JumpStart 配置文件(而不是 rules 文件以及与该 rules 文件关联的所有配置文件),请使用 -p 选项,而不是 -r 选项。

/usr/sbin/js2ai -p JS_profile_name [-d  sysidcfg_dir] [-D destination_dir]

js2ai 转换 JumpStart 设备规范的方式

本节介绍了 js2ai 如何通过 JumpStart 配置文件规范来确定 AI 清单的一些目标元素。

确定系统根磁盘的方式

由于在配置文件转换期间 js2ai 无法访问配置文件所引用的客户机系统,因此 js2ai 将在转换期间使用尽可能与 JumpStart 匹配的进程来尝试确定根磁盘。

js2ai 工具执行以下步骤以确定用于根磁盘的设备:

  1. 如果在配置文件中指定了 root_device 关键字,则 js2ai 会将 rootdisk 设置为分片所在的设备。

  2. 如果未设置 rootdisk 但在配置文件中指定了 boot_device 关键字,则 js2airootdisk 设置为引导设备。

  3. 如果未设置 rootdisk 但指定了 partitioning default,且遇到了 solarisfdisk 条目,则 js2airootdisk 设置为指定的 disk_name

  4. 如果未设置 rootdisk 但在配置文件中指定了 filesys cwtxdysz size / 条目,则 js2airootdisk 设置为该条目中指定的 cwtxdysz 磁盘。

  5. 如果未设置 rootdisk 但在配置文件中指定了 usedisk disk_name 条目,则 js2airootdisk 设置为该条目中指定的 disk_name 磁盘。

  6. 如果未设置 rootdisk 但在配置文件中遇到以下规范(其中 size 不为 0 或 deletedisk_name 不为 all),则 rootdisk 将设置为该 disk_name

    fdisk disk_name solaris size
  7. 如果未设置 rootdisk,则将设备指定为 rootdisk 的任何实例都会生成转换错误。

转换 any 设备的方式

js2ai 工具执行以下步骤以确定在指定了 any 关键字时要使用的设备:

  1. 如果指定了 any 设备且指定了关键字操作(非镜像池或具有 / 挂载点的 filesys),则在设置了 rootdiskany 设备将设置为 rootdisk

  2. 如果 any 设备尚未转换且配置文件中存在 usedisk 语句,则 any 设备将设置为由 usedisk 语句指定的设备。

  3. 如果 any 设备尚未转换且指定了 any 设备的操作导致创建 ZFS 根池,则 AI 将选择该设备。在指定镜像池时,这一点并不适用。

确定 ZFS 根池的方式

js2ai 工具执行以下步骤以确定用于 ZFS 根池的设备。在确定 ZFS 根池后,如果遇到的后续定义与已经确定的 ZFS 根池相冲突,则它们将标记为错误。

  1. 如果配置文件指定了 pool 关键字,则 js2ai 将 ZFS 根池设置为由 pool 关键字指定的设备。

  2. 如果尚未确定 ZFS 根池但配置文件指定了具有 / 挂载点的 filesys,则使用指定设备创建 ZFS 根池。

  3. 如果尚未确定 ZFS 根池但已处理配置文件中的所有关键字,且设置了 rootdisk,则使用 rootdisk 设备创建 ZFS 根池。

  4. 如果尚未确定 ZFS 根池且分区类型为 default,则 AI 将选择要用于 ZFS 根池的设备。

  5. 如果尚未确定 ZFS 根池且在处理期间未出现错误,则 AI 将选择要用于 ZFS 根池的设备。

  6. 如果 ZFS 根池不是镜像池,且指定的一个或多个 usedisk 设备尚未用于 rootdisk 或 any 设备转换,则这些磁盘将添加到 ZFS 根池。

转换软件包

JumpStart 配置文件使用 clusterpackage 关键字在系统上安装软件。AI 不支持 cluster 关键字。在 IPS 中,安装组合软件包或组软件包的语法与安装任何其他软件包的语法相同。如果只在 JumpStart 配置文件中将 cluster 更改为 packagejs2ai 将在 AI 清单中创建正确的软件包安装规范。


提示 - 在 AI 清单中检查软件包名称。如果 AI 清单中指定用于安装的软件包在该 AI 清单指定的任何发布者源中不可用,则该客户机安装将失败。


IPS 软件包名称与 SVR4 软件包名称不同。例如,在 IPS 中,SVR4 软件包 SUNWpampkcs11 重命名为 library/security/pam/module/pam-pkcs11

某些 SVR4 软件包名称在 IPS 中存在,因此您可以使用 SVR4 名称安装 IPS 软件包。例如,如果 AI 清单指定安装 SUNWpampkcs11 软件包,将会自动安装 library/security/pam/module/pam-pkcs11 软件包。在这些情况下,软件包已重命名。

某些 SVR4 软件包名称在 IPS 中不存在。在这些情况下,您必须更改软件包名称或从 AI 清单中删除该规范。例如,在 IPS 中,SUNWCallSUNWCuser 软件包没有重命名。如果 AI 清单指定这些软件包,安装将失败。

js2ai 实用程序以 /usr/share/auto_install/manifest/default.xml AI 清单作为基础,来生成包含 JumpStart 配置文件中的规范的新 AI 清单。该缺省 AI 清单指定安装用于安装基本操作系统的两个软件包:entiresolaris-large-server。除了这两个软件包外,您可能只需要指定其他工具和应用程序的安装。

在 Oracle Solaris 11 系统上,使用 pkg list 命令确定是否可以在您的 AI 清单中使用特定软件包名称。确保使用 -g 选项列出在 AI 清单中指定的 IPS 软件包系统信息库源中的软件包。在此示例中,AI 清单指定了 http://pkg.oracle.com/solaris11/release 系统信息库源。

$ pkg list -af -g http://pkg.oracle.com/solaris11/release SUNWCall SUNWCuser
pkg list: no packages matching 'SUNWCuser, SUNWCall' known

该消息确认在该 AI 清单中无法使用这两个软件包。

$ pkg list -af -g http://pkg.oracle.com/solaris11/release SUNWpampkcs11
NAME (PUBLISHER)                                        VERSION              IFO
SUNWpampkcs11                                           0.6.0-0.133          --r

最右列的 "r" 表示该软件包已重命名。您可以在 AI 清单中使用此名称,但您可能需要使用 pkg info 命令确定新的软件包名称。

请参见以下输出中的 "Renamed to" 行。SUNWpampkcs11 软件包已重命名为 library/security/pam/module/pam-pkcs11。您可能需要在 AI 清单中指定 library/security/pam/module/pam-pkcs11,以便与将来的 Oracle Solaris 更新更好地兼容。

$ pkg info -r SUNWpampkcs11
          Name: SUNWpampkcs11
       Summary: 
         State: Not installed (Renamed)
    Renamed to: library/security/pam/module/pam-pkcs11@0.6.0-0.133
                consolidation/sfw/sfw-incorporation
     Publisher: solaris
       Version: 0.6.0
 Build Release: 5.11
        Branch: 0.133
Packaging Date: Wed Oct 27 18:50:11 2010
          Size: 0.00 B
          FMRI: pkg://solaris/SUNWpampkcs11@0.6.0,5.11-0.133:20101027T185011Z
$ pkg info -r pam-pkcs11
          Name: library/security/pam/module/pam-pkcs11
       Summary: The OpenSC PKCS#11 PAM Login Tools
      Category: System/Security
         State: Not installed
     Publisher: solaris
       Version: 0.6.0
 Build Release: 5.11
        Branch: 0.173.0.0.0.0.487
Packaging Date: Sun Aug 28 00:16:46 2011
          Size: 1.92 MB
          FMRI: pkg://solaris/library/security/pam/module/pam-pkcs11@...
$ pkg list -af -g http://pkg.oracle.com/solaris/release SUNWmysql
NAME (PUBLISHER)                                        VERSION              IFO
SUNWmysql                                               4.0.24-0.142         --o

最右列的 "o" 表示该软件包已废弃。不能在 AI 清单中使用该软件包名称。使用带有通配符的 pkg list 命令或 pkg search 命令确定是否有类似名称的其他软件包可供使用。

$ pkg list -af SUNWmysql*
NAME (PUBLISHER)                                        VERSION              IFO
SUNWmysql                                               4.0.24-0.142         --o
SUNWmysql-base                                          0.5.11-0.133         --r
SUNWmysql-python                                        0.5.11-0.162         --o
SUNWmysql-python26                                      0.5.11-0.133         --r
SUNWmysql5                                              5.0.86-0.171         --o
SUNWmysql5                                              5.0.86-0.133         --r
SUNWmysql51                                             5.1.37-0.133         --r
SUNWmysql51lib                                          5.1.37-0.133         --r
SUNWmysql51test                                         5.1.37-0.133         --r
SUNWmysql5jdbc                                          5.1.5-0.171          --o
SUNWmysql5jdbc                                          5.1.5-0.133          --r
SUNWmysql5test                                          5.0.86-0.171         --o
SUNWmysql5test                                          5.0.86-0.133         --r
SUNWmysqlt                                              4.0.24-0.142         --o
$ pkg info -r SUNWmysql51
          Name: SUNWmysql51
       Summary: 
         State: Not installed (Renamed)
    Renamed to: database/mysql-51@5.1.37-0.133
                consolidation/sfw/sfw-incorporation
     Publisher: solaris
       Version: 5.1.37
 Build Release: 5.11
        Branch: 0.133
Packaging Date: Wed Oct 27 18:49:18 2010
          Size: 0.00 B
          FMRI: pkg://solaris/SUNWmysql51@5.1.37,5.11-0.133:20101027T184918Z

您可能需要在 AI 清单中使用 database/mysql-51 替换 SUNWmysql

使用 js2ai 转换规则和配置文件的示例

本节显示了使用单个 js2ai 命令转换 JumpStart rules 文件以及该 rules 文件引用的所有配置文件。缺省情况下,每个转换的配置文件都将输出到名为 AI_profile-filename 的目录。用于选择该配置文件的规则作为 AI 条件文件输出到同一个目录中。

JumpStart Rules 文件和配置文件示例

该示例使用以下 rules 文件:

# The following rule matches only one system:

hostname sample_host    - fdisk.profile         -

# The following rule matches only one system:

hostaddress 10.6.68.127 - mirrorfilesys.profile -

# The following rule matches any system that is on the 924.222.43.0 network:

network 924.222.43.0    - rootdisk.profile      -

# The following rule matches all x86 systems:

arch i386               - mirrorpool.profile    -

fdisk.profile 文件具有以下内容:

install_type initial_install
system_type server
root_device c1t0d0s0
usedisk c1t0d0
fdisk rootdisk solaris all
partitioning explicit
filesys rootdisk.s1 5000 swap
filesys rootdisk.s0 10000 /
cluster SUNWCall

mirrorfilesys.profile 文件具有以下内容:

install_type initial_install
partitioning default
filesys mirror c6t0d0s0 c6t1d0s0 60048
cluster SUNWCuser

mirrorpool.profile 文件具有以下内容:

install_type initial_install
partitioning default
pool newpool auto auto auto mirror any any
cluster SUNWCuser

rootdisk.profile 文件具有以下内容:

install_type initial_install
partitioning explicit
filesys rootdisk.s0 15000 /
filesys rootdisk.s1 1000 swap
cluster SUNWCall

使用带有 Rules 文件选项的 js2ai

使用以下命令处理该 rules 文件。在错误报告中,验证错误将显示为连字符,因为没有执行验证。-S 选项禁止了验证。

# js2ai -rS
                                Process  Unsupported  Conversion  Validation
Name                  Warnings  Errors   Items        Errors      Errors
-------------------   --------  -------  -----------  ----------  ----------
rules                        0        0            1           0           -
fdisk.profile                0        0            2           0           -
mirrorfilesys.profile        0        0            2           0           -
mirrorpool.profile           0        0            1           1           -
rootdisk.profile             0        0            1           2           -

Conversion completed. One or more failures occurred.
For errors see js2ai.log
# cat js2ai.log
rules:line 3:UNSUPPORTED: unsupported keyword: hostname
fdisk.profile:line 2:UNSUPPORTED: unsupported value for 'system_type' specified: server
fdisk.profile:line 9:UNSUPPORTED: unsupported keyword: cluster
mirrorfilesys.profile:line 3:UNSUPPORTED: unsupported mount point of 'unnamed' specified,
mount points other than '/' and 'swap' are not supported
mirrorfilesys.profile:line 4:UNSUPPORTED: unsupported keyword: cluster
mirrorpool.profile:line 3:CONVERSION: unable to convert 'any' device to physical device. Replace 'any' 
with actual device name
mirrorpool.profile:line 4:UNSUPPORTED: unsupported keyword: cluster
rootdisk.profile:line 3:CONVERSION: unable to convert 'rootdisk.s0'.  Replace'rootdisk.' with actual
device name
rootdisk.profile:line 4:CONVERSION: unable to convert 'rootdisk.s1'.  Replace'rootdisk.' with actual
device name
rootdisk.profile:line 5:UNSUPPORTED: unsupported keyword: cluster

输出存储在名为 AI_profile-filename 的目录中。通过 JumpStart 规则创建的 AI 条件文件将针对规则在 rules 文件中的位置命名。AI 清单命名为 profile-filename.arch.xml,其中 archgenericx86sparc

# ls AI_*
AI_fdisk.profile:
fdisk.profile.x86.xml

AI_mirrorfilesys.profile:
criteria-2.xml      mirrorfilesys.profile.generic.xml

AI_mirrorpool.profile:
criteria-2.xml      mirrorpool.profile.generic.xml

AI_rootdisk.profile:
criteria-3.xml      rootdisk.profile.generic.xml

等效 AI 条件文件

日志文件报告不支持将 JumpStart 规则关键字 hostname 作为 AI 条件关键字来选择 AI 清单。hostname 关键字用于指定哪些客户机应使用 fdisk.profile 配置文件。由于 hostname 不是选择 AI 清单所支持的关键字,因此新的 AI_fdisk.profile 目录不包含 AI 条件文件。

您可以在 rules 文件中将 hostname 更改为 hostaddress 来修复此问题。

您还可以创建指定 MAC 地址或 IP 地址来标识 hostname 系统的 AI 条件文件来修复此问题。例如,如果 0:14:4F:20:53:97sample_host 的 MAC 地址,则以下条件文件等效于 JumpStart 规则 hostname sample_host

<?xml version="1.0" encoding="utf-8"?>
<ai_criteria_manifest>
  <ai_criteria name="mac">
    <value>0:14:4F:20:53:97</value>
  </ai_criteria>
</ai_criteria_manifest>

要查找系统的 MAC 地址,请使用 dladm 命令,如《Oracle Solaris 管理:网络接口和网络虚拟化》dladm(1M) 手册页所述。

对于 JumpStart 规则 hostaddress 10.6.68.127js2ai 实用程序自动创建 AI 条件文件 AI_mirrorfilesys.profile/criteria-2.xml,并使用 AI ipv4 关键字替换 JumpStart hostaddress 关键字:

<?xml version="1.0" encoding="utf-8"?>
<ai_criteria_manifest>
  <ai_criteria name="ipv4">
    <value>
      10.6.68.127
    </value>
  </ai_criteria>
</ai_criteria_manifest>

对于 JumpStart 规则 network 924.222.43.0js2ai 实用程序自动创建 AI 条件文件 AI_rootdisk.profile/criteria-3.xml,并基于给定的网络地址指定 IP 地址的范围:

<?xml version="1.0" encoding="utf-8"?>
<ai_criteria_manifest>
  <ai_criteria name="ipv4">
    <range>
      924.222.43.0 924.222.43.255
    </range>
  </ai_criteria>
</ai_criteria_manifest>

对于 JumpStart 规则 arch i386js2ai 实用程序自动创建 AI 条件文件 AI_mirrorpool.profile/criteria-4.xml,并使用 AI cpu 关键字替换 JumpStart arch 关键字:

<?xml version="1.0" encoding="utf-8"?>
<ai_criteria_manifest>
  <ai_criteria name="cpu">
    <value>
      i386
    </value>
  </ai_criteria>
</ai_criteria_manifest>

等效 AI 清单文件

js2ai 实用程序通常会为每个 JumpStart 配置文件创建 AI 清单(即使报告错误)。本节介绍如何处理某些常见错误,以便输出 AI 清单更加完整。

修复 fdisk.profile 错误

js2ai 实用程序显示 fdisk.profile JumpStart 配置文件的以下错误:

fdisk.profile:line 2:UNSUPPORTED: unsupported value for 'system_type' specified: server
fdisk.profile:line 9:UNSUPPORTED: unsupported keyword: cluster

忽略这两行,它们不会影响输出 AI 清单。如果想要转换过程中不生成这些错误消息,可以删除这两行。这之后,fdisk.profile 文件具有以下内容:

install_type initial_install
root_device c1t0d0s0
usedisk c1t0d0
fdisk rootdisk solaris all
partitioning explicit
filesys rootdisk.s1 5000 swap
filesys rootdisk.s0 10000 /

使用 js2ai 实用程序的 -p 选项处理该配置文件即可。

# js2ai -p fdisk.profile
Successfully completed conversion

输出 AI 清单 AI_fdisk.profile/fdisk.profile.x86.xmltarget 节中具有以下内容:

<target>
  <disk whole_disk="true">
    <disk_name name="c1t0d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" is_swap="true" name="1">
        <size val="5000mb"/>
      </slice>
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="rpool" name="0">
        <size val="10000mb"/>
      </slice>
     </partition>
  </disk>
  <logical nodump="true" noswap="false">
    <zpool is_root="true" name="rpool">
      <vdev name="rpool_vdev" redundancy="none"/>
    </zpool>
  </logical>
</target>

software 节与 /usr/share/auto_install/manifest/default.xml 中的相同,因为该配置文件不包含任何软件包规范。

修复 mirrorfilesys.profile 错误

js2ai 实用程序显示 mirrorfilesys.profile JumpStart 配置文件的以下错误:

mirrorfilesys.profile:line 3:UNSUPPORTED: unsupported mount point of 'unnamed' specified,
mount points other than '/' and 'swap' are not supported
mirrorfilesys.profile:line 4:UNSUPPORTED: unsupported keyword: cluster

在 JumpStart 配置文件中,可以省略 filesys mirror 规范中的 file_system 参数。在 js2ai 转换中,不能省略 file_system 参数,该参数必须具有以下两个值之一:/swap

编缉 mirrorfilesys.profile 文件,将 "/" 添加到 filesys 规范的结尾并删除 cluster 行。这之后,mirrorfilesys.profile 文件具有以下内容:

install_type initial_install
partitioning default
filesys mirror c6t0d0s0 c6t1d0s0 60048 /

在其他位置保存 AI_mirrorfilesys.profile/criteria-2.xml 文件。然后,使用 js2ai 实用程序的 -p 选项处理该配置文件即可。

# js2ai -p mirrorfilesys.profile
Successfully completed conversion

AI_mirrorfilesys.profile 目录包含两个输出 AI 清单:mirrorfilesys.profile.sparc.xmlmirrorfilesys.profile.x86.xml。这两个 AI 清单之间的唯一差异是 mirrorfilesys.profile.x86.xml 包含两个 partition 规范。mirrorfilesys.profile.x86.xml 清单在 target 节中具有以下内容:

<target>
  <disk>
    <disk_name name="c6t1d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="rpool" name="0">
        <size val="60048mb"/>
      </slice>
    </partition>
  </disk>
  <disk>
    <disk_name name="c6t0d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="rpool" name="0">
        <size val="60048mb"/>
      </slice>
    </partition>
  </disk>
  <logical nodump="true" noswap="false">
    <zpool is_root="true" name="rpool">
      <vdev name="rpool_vdev" redundancy="mirror"/>
    </zpool>
  </logical>
</target>

software 节与 /usr/share/auto_install/manifest/default.xml 中的相同,因为该配置文件不包含任何软件包规范。

修复 mirrorpool.profile 错误

js2ai 实用程序显示 mirrorpool.profile JumpStart 配置文件的以下错误:

mirrorpool.profile:line 4:CONVERSION: unable to convert 'any' device to physical device.
Replace 'any' with actual device name
mirrorpool.profile:line 8:UNSUPPORTED: unsupported keyword: cluster

使用以下两种方法中的任一方法修复这些错误。这两种修复方法可以生成完全相同的 AI 清单输出。另请参见转换 any 设备的方式

在其他位置保存 AI_mirrorpool.profile/criteria-4.xml 文件。然后,使用 js2ai 实用程序的 -p 选项处理该配置文件即可。

# js2ai -p mirrorpool.profile
Successfully completed conversion

AI_mirrorpool.profile 目录包含两个输出 AI 清单:mirrorpool.profile.sparc.xmlmirrorpool.profile.x86.xml。这两个 AI 清单之间的唯一差异是 mirrorpool.profile.x86.xml 包含两个 partition 规范。mirrorpool.profile.x86.xml 清单在 target 节中具有以下内容:

<target>
  <disk>
    <disk_name name="c6t1d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="newpool" name="0"/>
    </partition>
  </disk>
  <disk>
    <disk_name name="c6t0d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="newpool" name="0"/>
    </partition>
  </disk>
  <logical nodump="false" noswap="false">
    <zpool is_root="true" name="newpool">
      <vdev name="rpool_vdev" redundancy="mirror"/>
    </zpool>
  </logical>
</target>

software 节与 /usr/share/auto_install/manifest/default.xml 中的相同,因为该配置文件不包含任何软件包规范。

修复 rootdisk.profile 错误

js2ai 实用程序显示 rootdisk.profile JumpStart 配置文件的以下错误:

rootdisk.profile:line 3:CONVERSION: unable to convert 'rootdisk.s0'.
Replace'rootdisk.' with actual device name
rootdisk.profile:line 4:CONVERSION: unable to convert 'rootdisk.s1'.
Replace'rootdisk.' with actual device name
rootdisk.profile:line 5:UNSUPPORTED: unsupported keyword: cluster

使用以下两种方法中的任一方法修复这些错误。这两种修复方法可以生成完全相同的 AI 清单输出。

在其他位置保存 AI_rootdisk.profile/criteria-3.xml 文件。然后,使用 js2ai 实用程序的 -p 选项处理该配置文件即可。

# js2ai -p rootdisk.profile
Successfully completed conversion

AI_rootdisk.profile 目录包含两个输出 AI 清单:rootdisk.profile.sparc.xmlrootdisk.profile.x86.xml。这两个 AI 清单之间的唯一差异是 rootdisk.profile.x86.xml 包含 partition 规范。rootdisk.profile.x86.xml 清单在 target 节中具有以下内容:

<target>
  <disk>
    <disk_name name="c0t0d0" name_type="ctd"/>
    <partition action="create" name="1" part_type="191">
      <slice action="create" force="true" in_vdev="rpool_vdev" in_zpool="rpool" name="0">
        <size val="15000mb"/>
      </slice>
      <slice action="create" force="true" is_swap="true" name="1">
        <size val="1000mb"/>
      </slice>
    </partition>
  </disk>
  <logical nodump="true" noswap="false">
    <zpool is_root="true" name="rpool">
      <vdev name="rpool_vdev" redundancy="none"/>
    </zpool>
  </logical>
</target>

software 节与 /usr/share/auto_install/manifest/default.xml 中的相同,因为该配置文件不包含任何软件包规范。

显示更多配置文件转换信息

如果要查看有关规则或配置文件转换或者 AI 清单验证的更多信息,请在 js2ai 命令中指定 -v 选项。指定 -v 选项时,将显示处理骤,并且错误报告显示零,而不是从报告中省略该 rules 文件或配置文件。

# js2ai -v -p rootdisk.profile
Processing profile: rootdisk.profile
Performing conversion on: rootdisk.profile
Generating x86 manifest for: rootdisk.profile
Validating rootdisk.profile.x86.xml
Generating sparc manifest for: rootdisk.profile
Validating rootdisk.profile.sparc.xml

                                   Process  Unsupported  Conversion  Validation
Name                     Warnings  Errors   Items        Errors      Errors
----------------------   --------  -------  -----------  ----------  ----------
rootdisk.profile                0        0            0           0           0
Successfully completed conversion

验证输出 AI 清单

使用 -V 选项验证所生成的 AI 清单:

# js2ai -V ./AI_rootdisk.profile/rootdisk.profile.sparc.xml
Successfully completed conversion
# js2ai -v -V ./AI_rootdisk.profile/rootdisk.profile.sparc.xml
Validating rootdisk.profile.sparc.xml

                                   Process  Unsupported  Conversion  Validation
Name                     Warnings  Errors   Items        Errors      Errors
----------------------   --------  -------  -----------  ----------  ----------
rootdisk.profile.sparc          -        -            -           -           0
Successfully completed conversion