Go to main content
Oracle® Solaris 10 JumpStart から Oracle Solaris 11.3 自動インストーラへの移行

印刷ビューの終了

更新: 2016 年 7 月
 
 

js2ai の使用による JumpStart rules ファイルおよびプロファイルから AI 条件およびマニフェストへの変換

js2ai コマンドで –r オプションを使用すると、JumpStart ルールおよび関連付けられたプロファイルが AI 条件およびマニフェストに変換されます。最初は –S オプションを使用して検証をスキップします。このコマンドは、rules ファイルおよび rules ファイルによって参照されるプロファイルで変換操作を実行します。

rules ファイルで参照される各プロファイルは、AI クライアントプロビジョニングマニフェスト (/usr/share/auto_install/manifest/default.xml ) に対して処理されます。この段階では、JumpStart rules ファイルで指定されたプロファイルごとに、AI_profile-name という名前のディレクトリが作成されます。AI_profile_name ディレクトリには、このプロファイルを参照するルールに対応する AI 条件ファイルが criteria-rule-number.xml の形式で格納されます。また、AI_profile-name ディレクトリには、profile-name ファイルに対応する AI マニフェストファイルが profile-name.arch.xml の形式で格納されます。

変換が正しく完了したことを示すメッセージを受け取ったら、–S オプションを付けずに js2ai コマンドを実行して、出力された AI マニフェストを検証します。検証エラーは AI マニフェストファイル内で修正する必要があります。

    変換が正常に完了したというメッセージが表示されない場合、エラーレポートおよび js2ai.log ファイルを調べます。エラーレポートおよびログファイルは、警告、処理エラー、サポートされない項目、変換エラー、および検証エラーを提供します。エラーレポートは stdout への表出力で、rules ファイルおよびプロファイルの変換中に発生したタイプごとのエラーの番号を示します。ログファイルには問題が記述されます。

  1. 処理エラーを修正します。

  2. rules ファイルおよびプロファイルから、サポート外項目として一覧表示されたすべての行を削除します。

  3. 変換エラーを検査して、可能な場合はエラーを修正します。それ以外の場合は、エラーの原因となっている行を削除します。

  4. 警告メッセージを検査して、修正が必要ないことを確認します。

    js2ai コマンドの次のオプションを確認してください。

  • ルールファイルまたはプロファイルの変換に関する詳細な情報を表示するには、–v オプションを使用します。詳細は、追加のプロファイル変換情報の表示を参照してください。

  • 個々の出力 AI マニフェストを適切な AI DTD に対して検証するには、–V オプションを使用します。詳細は、出力 AI マニフェストの検証を参照してください。

  • 1 つの JumpStart プロファイルのみを変換するには、–p オプションを使用します。AI マニフェストファイルの修正の例を参照してください。

js2ai による JumpStart デバイス指定の変換方法

このセクションでは、js2ai が JumpStart プロファイル指定から AI マニフェスト用のターゲット要素を決定する方法について説明します。

システムのルートディスクを決定する方法

プロファイルの変換プロセス中、js2ai はプロファイルが参照するクライアントシステムにアクセスしないため、js2ai はできるかぎり JumpStart と一致するプロセスを使用して、変換中にルートディスクを決定しようとします。

    js2ai コマンドは次の段階を実行して、ルートディスクに使用するデバイスを決定します。

  1. プロファイルで root_device キーワードが指定されている場合、js2airootdisk をスライスが存在するデバイスに設定します。

  2. rootdisk が設定されておらず、プロファイルで boot_device キーワードが指定されている場合、js2airootdisk をブートデバイスに設定します。

  3. rootdisk が設定されておらず、partitioning default が指定され、solaris fdisk エントリが指定されている場合、js2airootdisk を指定されたディスク名に設定します。

  4. rootdisk が設定されておらず、プロファイルで filesys cwtxdysz size / エントリが指定されている場合、js2airootdisk をそのエントリで指定された cwtxdysz ディスクに設定します。

  5. rootdisk が設定されておらず、プロファイルで usedisk disk-name エントリが指定されている場合、js2airootdisk をそのエントリで指定された disk-name ディスクに設定します。

  6. rootdisk が設定されておらず、プロファイルで次の指定が見つかった場合 (size は 0 または delete でなく、diskall でない)、rootdisk はこのディスク名に設定されます。

    fdisk disk-name solaris size
  7. rootdisk が設定されていない場合、デバイスが rootdisk として指定されたオカレンスで変換エラーが生成されます。

any キーワードが変換されるしくみ

    js2ai コマンドは次の段階を実行して、any キーワードが指定されているときに使用するデバイスを決定します。

  1. デバイスに any キーワードが指定されていて、キーワードアクション (ミラー化されていないプール、または / マウントポイントを使用した filesys) が指定されている場合、そのデバイスは rootdisk に設定されます (rootdisk が設定されている場合)。

  2. デバイスが変換されておらず、usedisk 文がプロファイル内に存在する場合、any キーワードが指定されたデバイスは、usedisk 文で指定されたデバイスに設定されます。

  3. デバイスが変換されておらず、any キーワードが指定されたアクションによって ZFS ルートプールが作成される場合、AI はそのデバイスを選択します (ただし、ミラープールが指定されている場合を除きます)。

ZFS ルートプールを決定する方法

    js2ai コマンドは次のステップを実行して、ZFS ルートプールで使用するデバイスを決定します。ZFS ルートプールが決定されると、その後に検出される定義がすでに決定されている ZFS ルートプールと競合する場合、エラーとしてフラグが設定されます。

  1. プロファイルで pool キーワードが指定されている場合、js2ai は ZFS ルートプールを pool キーワードで指定されたデバイスに設定します。

  2. ZFS ルートプールが決定されておらず、プロファイルでマウントポイント / を使用してファイルシステムが指定された場合、ZFS ルートプールは指定されたデバイスを使用して作成されます。

  3. ZFS ルートプールが決定されておらず、プロファイル内のすべてのキーワードが処理され、rootdisk が設定されている場合、ZFS ルートプールは rootdisk デバイスを使用して作成されます。

  4. ZFS ルートプールが決定されておらず、パーティションタイプが default の場合、AI は ZFS ルートプールで使用するデバイスを選択します。

  5. ZFS ルートプールが決定されておらず、処理中にエラーが発生しなかった場合、AI は ZFS ルートプールで使用するデバイスを選択します。

  6. ZFS ルートプールがミラー化されたプールではなく、指定された 1 つ以上の usedisk デバイスが rootdisk デバイスまたは any デバイスの変換で使用されていない場合、これらのディスクが ZFS ルートプールに追加されます。

ソフトウェアパッケージの変換

JumpStart プロファイルでは cluster および package キーワードを使用してソフトウェアをシステムにインストールします。cluster キーワードは AI ではサポートされません。IPS では、incorporation パッケージまたはグループパッケージをインストールするための構文は、その他のパッケージをインストールするための構文と同じなので、JumpStart プロファイルの clusterpackage に変更するだけで、js2ai コマンドは、AI マニフェスト内に正しいパッケージインストール指定を作成します。


ヒント  -  AI マニフェスト内のパッケージ名を確認してください。AI マニフェスト内でインストール用に指定されたパッケージが、その AI マニフェスト内で指定されたどのパブリッシャー起点からも利用できない場合、クライアントインストールは失敗します。

IPS パッケージ名は SVR4 パッケージ名と異なります。たとえば、SVR4 パッケージ SUNWpampkcs11 の名前は IPS 内で library/security/pam/module/pam-pkcs11 に変更されます。

SVR4 パッケージ名が IPS 内に存在する場合は、SVR4 名を使用して IPS パッケージをインストールできます。たとえば、AI マニフェストで SUNWpampkcs11 パッケージのインストールが指定された場合、library/security/pam/module/pam-pkcs11 パッケージが自動的にインストールされます。この場合、パッケージの名前が変更されます。

SVR4 パッケージ名が IPS 内に存在しない場合は、パッケージ名を変更するか、その指定を AI マニフェストから削除する必要があります。たとえば、SUNWCall および SUNWCuser パッケージは IPS 内で名前変更されません。AI マニフェストでこれらのパッケージが指定された場合、インストールは失敗します。

AI マニフェスト内で特定のパッケージ名が使用できるかどうかを判断するには、Oracle Solaris 11 システムで pkg list コマンドを使用します。AI マニフェスト内で指定された IPS パッケージリポジトリ起点からのパッケージを一覧表示するための –g オプションを必ず使用してください。

js2ai コマンドは、JumpStart プロファイルからの指定を含む新規 AI マニフェストを構築するための基礎として、/usr/share/auto_install/manifest/default.xml AI マニフェストを使用します。このデフォルト AI マニフェストは、基本オペレーティングシステムをインストールする 2 つのパッケージ (entire および solaris-large-server) のインストールを指定します。これら 2 つのパッケージのほかは、おそらく追加のツールおよびアプリケーションのインストールを指定するだけで済みます。

使用例 1  パッケージ名が使用できるかどうかの確認

この例では、AI マニフェストは http://pkg.oracle.com/solaris/release リポジトリ起点を指定します。

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

このメッセージは、これら 2 つのパッケージがこの AI マニフェスト内で使用できないことを示しています。

使用例 2  名前が変更されたパッケージの操作

pkg list コマンドを使用して、名前が変更されたパッケージを特定できます。

$ pkg list -af -g http://pkg.oracle.com/solaris/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 に変更されています。今後の Oracle Solaris 更新との互換性を高めるために、AI マニフェスト内で library/security/pam/module/pam-pkcs11 を指定した方がよい場合もあります。

$ 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.175.2.0.0.27.0
Packaging Date: Mon Nov 11 17:47:35 2013
          Size: 1.74 MB
          FMRI: pkg://solaris/library/security/pam/module/pam-pkcs11@0...
        
使用例 3  廃止されたパッケージの操作

この例は、AI マニフェスト内で SUNWmysqldatabase/mysql-51 に置換する方法を示します。

$ 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

js2ai を使用した rules ファイルおよびプロファイルの変換

このセクションでは、単一の 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

js2ai を使用して rules ファイルと関連プロファイルを処理する

次のコマンドを使用して 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 and/or warnings 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 という名前が付けられ、archgenericx86、または sparc です。

# 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

hostname キーワードの置換

ログファイルでは、JumpStart ルールキーワード hostname が、AI マニフェストを選択するための AI 条件キーワードとしてサポートされないと報告されています。hostname キーワードは、fdisk.profile プロファイルを使用するクライアントを指定します。hostname は AI マニフェストの選択でサポートされるキーワードではないため、新しい AI_fdisk.profile ディレクトリに AI 条件ファイルは含まれません。

この問題は、rules ファイル内で hostnamehostaddress に変更することによって修正できます。

この問題は、hostname システムを識別する MAC アドレスまたは IP アドレスを指定する AI 条件ファイルを作成することによっても修正できます。たとえば、sample_host の MAC アドレスが 0:14:4F:20:53:97 の場合、次の条件ファイルは 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(1M) のマニュアルページに説明されている dladm コマンドを使用します。

JumpStart ルール hostaddress 10.6.68.127 について、js2ai コマンドは AI 条件ファイル AI_mirrorfilesys.profile/criteria-2.xml を自動的に作成し、JumpStart の hostaddress キーワードを AI の ipv4 キーワードに置換します。

<?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.0 について、js2ai コマンドは 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 i386 について、js2ai コマンドは AI 条件ファイル AI_mirrorpool.profile/criteria-4.xml を自動的に作成し、JumpStart の arch キーワードを AI の cpu キーワードに置換します。

<?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 マニフェストがさらに完全になるようにするために、一部の一般的なエラーに対処する方法について説明します。

使用例 4  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

これら 2 つの行は無視され、出力 AI マニフェストに影響しません。変換でエラーメッセージを出さないようにする場合は、これら 2 つの行を削除できます。その結果、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 name="1" action="create" force="true" is_swap="true">
        <size val="5000mb"/>
      </slice>
      <slice name="0" action="create" force="true" in_zpool="rpool" in_vdev="rpool_vdev">
        <size val="10000mb"/>
      </slice>
     </partition>
  </disk>
  <logical noswap="false" nodump="true" >
    <zpool name="rpool" is_root="true">
      <vdev name="rpool_vdev" redundancy="none"/>
      <filesystem name="export" mountpoint="/export"/>
      <filesystem name="export/home"/>
      <be name="solaris"/>
    </zpool>
  </logical>
</target>

software スタンザは /usr/share/auto_install/manifest/default.xml 内のものと同じです。これは、このプロファイルにパッケージ指定が含まれていないためです。

使用例 5  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 の 2 つの値のいずれかを持つ必要があります。

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 ディレクトリには、mirrorfilesys.profile.sparc.xml および mirrorfilesys.profile.x86.xml の 2 つの出力 AI マニフェストが格納されています。これら 2 つの AI マニフェストの違いは、mirrorfilesys.profile.x86.xml には 2 つの 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 noswap="false" nodump="false" >
    <zpool name="newpool" is_root="true">
      <vdev name="rpool_vdev" redundancy="mirror"/>
      <filesystem name="export" mountpoint="/export"/>
      <filesystem name="export/home">
      <be name="solaris">
    </zpool>
  </logical>
</target>

software スタンザは /usr/share/auto_install/manifest/default.xml 内のものと同じです。これは、このプロファイルにパッケージ指定が含まれていないためです。

使用例 6  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

    これらのエラーを修正するには、次の 2 つの方法のいずれかを使用します。これらの修正は、両方ともまったく同じ AI マニフェスト出力を生成します。any キーワードが変換されるしくみも参照してください。

  • mirrorpool.profile プロファイルを編集し、any エントリを物理デバイス名で置換します。また、cluster 行を削除します。その結果、mirrorpool.profile ファイルの内容は次の例のようになります。

    install_type initial_install
    partitioning default
    pool newpool auto auto auto mirror c6t0d0s0 c6t1d0s0
  • pool 指定の vdev-list 一覧に、物理デバイス名でなく any を指定した場合、any パラメータを含む指定よりも前にデバイス情報を提供しておく必要があります。mirrorpool.profile プロファイルを編集して、プール指定の前に usedisk 指定を追加します。また、cluster 行を削除します。その結果、mirrorpool.profile ファイルの内容は次の例のようになります。

    install_type initial_install
    partitioning default
    usedisk c6t0d0 c6t1d0
    pool newpool auto auto auto mirror any any

AI_mirrorpool.profile/criteria-4.xml ファイルを別の場所に保存します。次に、js2ai コマンドの –p オプションを使用して、このプロファイルのみ処理します。

# js2ai -p mirrorpool.profile
Successfully completed conversion

AI_mirrorpool.profile ディレクトリには、mirrorpool.profile.sparc.xml および mirrorpool.profile.x86.xml の 2 つの出力 AI マニフェストが格納されています。これら 2 つの AI マニフェストの違いは、mirrorpool.profile.x86.xml には 2 つの 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 noswap="false" nodump="true">
    <zpool name="rpool" is_root="true">
      <vdev name="rpool_vdev" redundancy="mirror"/>
      <filesystem name="export" mountpoint="/export"/>
      <filesystem name="export/home">
      <be name="solaris">
    </zpool>
  </logical>
</target>

software スタンザは /usr/share/auto_install/manifest/default.xml 内のものと同じです。これは、このプロファイルにパッケージ指定が含まれていないためです。

使用例 7  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

    これらのエラーを修正するには、次の 2 つの方法のいずれかを使用します。これらの修正は、両方ともまったく同じ AI マニフェスト出力を生成します。

  • rootdisk.profile プロファイルを編集し、rootdisk.c0t0d0 で置換します。また、cluster 行を削除します。rootdisk.profile ファイルは次のような内容になります。

    install_type initial_install
    partitioning explicit
    filesys c0t0d0s0 15000 /
    filesys c0t0d0s1 1000 swap
  • rootdisk.profile プロファイルを編集して root_device 指定を追加し、cluster 行を削除します。rootdisk.profile ファイルは次のような内容になります。

    install_type initial_install
    partitioning explicit
    root_device c0t0d0s0
    filesys rootdisk.s0 15000 /
    filesys rootdisk.s1 1000 swap

AI_rootdisk.profile/criteria-3.xml ファイルを別の場所に保存します。次に、js2ai コマンドの –p オプションを使用して、このプロファイルのみ処理します。

# js2ai -p rootdisk.profile
Successfully completed conversion

AI_rootdisk.profile ディレクトリには、rootdisk.profile.sparc.xml および rootdisk.profile.x86.xml の 2 つの出力 AI マニフェストが格納されています。これら 2 つの AI マニフェストの違いは、rootdisk.profile.x86.xmlpartition 指定が含まれていることだけです。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 noswap="false" nodump="true" noswap="false">
    <zpool name="rpool" is_root="true" >
      <vdev name="rpool_vdev" redundancy="none"/>
      <filesystem name="export" mountpoint="/export"/>
      <filesystem name="export/home">
      <be name="solaris">
    </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 マニフェストの検証

js2ai コマンドを実行した結果得られる AI マニフェストを検証するには、–V オプションを使用します。

# 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