この章では,インストレーション処理を自動化したりカスタマイズしたりするための,高度な機能について説明します。 この章で述べる項目は,次のとおりです。
インストレーションやシステム構成処理の自動化とカスタマイズのために使用できる機能の概要 (5.1 節)
構成記述ファイル (CDF) の紹介と,システムのクローンを作成するために構成記述ファイルを使用する方法 (5.2 節)
フル・インストレーションまたはアップデート・インストレーションの実行中に,ターゲット・システム上でカスタマイズを行うためにユーザ提供ファイルを起動するタイミング (5.3 節)
ユーザ提供ファイルと CDF の関係 (5.4 節)
ユーザ提供ファイルと CDF をセットアップするために管理者が行う高度な作業 (5.5 節)
インストレーション・プロセスがユーザ提供ファイルと CDF を呼び出す方法の背景にある動作の原理 (5.6 節)
フル・インストレーションおよびアップデート・インストレーションで使用するための,ユーザ提供ファイルと CDF の作成および配置方法 (5.7 節)
フル・インストレーションおよびアップデート・インストレーション・プロセスには,あらかじめ定義された時点で特定のファイルを検索する機能が組み込まれています。 これらのファイルを正しいディレクトリ位置にコピーすると,次のような機能が実現できます。
install.cdf
ファイルには,インストール済みのシステムのインストレーション特性が保存されています。
このファイルは 1 つまたは複数のターゲット・システムへインストレーションを複製するために使用されます。
config.cdf
ファイルには,構成済みのシステムの構成特性が保存されています。
このファイルは,1 つまたは複数のターゲット・システムへ構成を複製するために使用されます。
構成は,ネットワーク,メール・システム,インターネット・アクセス,およびプリンタを設定して,システムが他のシステムおよびユーザと通信できるようにするための処理です。
ユーザ提供ファイルを作成して,フル・インストレーションまたはアップデート・インストレーションの際に,ターゲット・システム上で特定の時点に特定の作業を実行することができます。
このファイルには,preinstall
,update_preinstall
,postload
,update_postload
,および
postreboot
という名前をつける必要があります。
この章では,構成記述ファイルの概念について簡単に説明します。
また,インストレーションの際に,カスタマイズした作業を実行するためのファイルの作成について説明します。
5.2 構成記述ファイルの概要
構成記述ファイル (CDF) は,システムを複製するために使用されます。
インストールして構成されたシステムのインストレーション特性と構成特性は,2 つの CDF ファイルに保存されます。
インストレーション情報は
install.cdf
ファイルに保存され,構成特性は
config.cdf
ファイルに保存されます。
この 2 つのファイルについて,以下に簡単に説明します。
install.cdf
ファイルは,フル・インストレーション処理によって,オペレーティング・システムの現行バージョンをシステムにインストールした場合に生成されます。
このファイルは
/var/adm/smlogs
ディレクトリに置かれます。
このファイルにはファイル・システム・レイアウト,ホストおよびサイトに特有の情報,フル・インストレーションの際にインストールされたソフトウェアの記録が保存されます。
このファイル内の情報は,ハードウェア構成が類似した他のシステムに,同じインストレーションを複製するために使用されます。
クローン・インストレーションには多くのオプションがあり,広範囲にわたる内容なので,手順については第 6 章で説明します。
5.6 節で述べる動作原理では,フル・インストレーションの処理のどこで
install.cdf
ファイルが呼び出されるかを説明しています。
config.cdf
ファイルには,完全にインストールされ構成されたシステムからの,ネットワーク,インターネット,プリンタ,およびメールの構成情報が収められています。
config.cdf
ファイルは,構成情報を保存したいと思った時点で
sysman -clone -save
コマンドを使用して手動で作成します。
config.cdf
ファイルは,フル・インストレーションの際にターゲット・システムに適用することも,運用中のシステムに手動で適用することもできます。
構成のクローニングには多くのオプションがあり,広範囲にわたる内容なので,手順については第 7 章で説明します。
5.6 節で述べる動作原理では,フル・インスレーション処理のどこで
config.cdf
ファイルが呼び出されるかを説明しています。
表 5-1
には,フル・インスレーション・プロセスが CDF を検索するタイミングと検索するファイル名を示します。
表 5-1: 構成記述ファイルを呼び出すタイミング
フル・インストレーションでの呼び出しポイント | フル・インストレーション・プロセスが検索するファイル名 | 見つかった場合の動作 |
インストレーションのユーザ・インタフェースが表示される前 | install.cdf |
install.cdf
ファイルに格納されている情報を使って,同じインストレーションをターゲット・システムに複製する。 |
システムがリブートされてから,カーネルが構築されるまでの間 | config.cdf |
config.cdf
ファイルに格納されている情報を使って,ターゲット・システムを構成する。 |
5.4 節で説明しているように,CDF をユーザ提供ファイルとともに使用して,ターゲット・システム上で追加の作業を実行することもできます。
5.3 ユーザ提供ファイルの概要
ユーザ提供ファイルは,スクリプト,実行可能ファイル,またはプログラムを実行してインストレーション処理を拡張したりカスタマイズしたりするために使用します。
表 5-2には,インストレーション処理での呼び出しポイント,検索するファイル名,それらを検索するインストレーションのタイプを示します。
フル・インストレーションおよびアップデート・インストレーション・プロセスは,これらのファイルを検索し,見つかると実行します。
postreboot
ファイルを除き,ユーザ提供ファイルが実行されてゼロ以外のステータス (障害を示す) を返した場合,インストレーションは停止します。
表 5-2: ユーザ提供ファイルを呼び出すタイミング
呼び出しポイント | インストレーション・プロセスが検索するファイル名 | どのタイプのインストレーションで検索されるか |
フル・インストレーションのユーザ・インタフェースが表示される前 | preinstall |
フルおよびクローン |
アップデート・インストレーションのユーザ・インタフェースが表示される前 | update_preinstall |
アップデート |
ソフトウェアがインストールされてから,汎用カーネルの最初のリブートまでの間 | postload |
フルおよびクローン |
ソフトウェアがアップデートされてから,システムがリブートされるまでの間 | update_postload |
アップデート |
最初のリブートから,カーネルの構築までの間 | postreboot |
フルおよびクローン |
表 5-3に,ユーザ提供ファイルの一般的な使用目的を示します。
表 5-3: ユーザ提供ファイルの一般的な使用目的
ファイル名 | 使用目的 |
preinstall |
カスタマイズしたディスク・ラベルを定義し,フル・インストレーションの際に定義しなくても良いようにする。 |
postload |
config.cdf
ファイル内のホスト固有の情報を動的に修正して,クローニング処理が完了すると同時に,ターゲット・システムがネットワーク上で一意に定義されるようにする。
この機能を実行するスクリプトの例を,付録 Bに記載しています。 |
postreboot |
オプションのソフトウェアを追加インストールして,ソフトウェアの選択処理を簡略化する。 |
update_preinstall |
実際のアップデート処理が開始される前に,オペレーティング・システムのバックアップを自動的に実行する。 |
update_postload |
アップデート・インストレーションの継続を妨げないように削除したレイヤード・プロダクトを,再インストールする。 |
この章ではこの後,CDF とユーザ提供ファイルの関係,インストレーション・プロセスがユーザ提供ファイルを検索する方法,ファイルの作成方法と配置方法について説明します。
5.4 CDF とユーザ提供ファイルの関係
CDF とユーザ提供ファイルは,単独で使用することも併用することもできます。
CDF とユーザ提供ファイルは,異なるソース上に置いてもかまいません。
たとえば,install.cdf
と
config.cdf
のどちらか,または両方の CDF をディスケットにいれ,preinstall
ファイルを RIS サーバに置き,postload
ファイルを RIS サーバの
/isl
ディレクトリに置くことができます。
ただし,postload
ファイルで
config.cdf
ファイルを操作する場合は,両方のファイルを同じ位置に置いてください。
ユーザ提供ファイルでは,CDF を動的に変更することができます。
5.5 管理者の作業の概要
図 5-1
では,CDF とユーザ提供ファイルをセットアップするために必要な,システム管理者の作業を示します。
フル・インストレーションまたはアップデート・インストレーションの際にユーザ提供ファイルを実行する場合,システム管理者は作業の 3 と 4 のみを実行します。
図 5-1: 管理者の作業の概要
管理者は,クローニングに適した CDF を生成するかまたは探します。
オペレーティング・システムの現行バージョンがインストールされているシステムでは,install.cdf
は
/var/adm/smlogs
ディレクトリにあります。
config.cdf
は
sysman -clone -save
コマンドを使用してどのディレクトリにも保存できますが,省略時のディレクトリは
/var/adm/smlogs
です。
インストレーションおよび構成のクローニング手順は,それぞれ
第 6 章
と
第 7 章
に記載しています。
管理者はオリジナルの CDF を作業エリアにコピーして変更します。
少なくとも,ホスト固有の情報を変更して,複製したシステムが一意に識別されるようにしなければなりません。
オリジナルの CDF には初期のシステム・インストレーションまたは構成に関する情報が含まれており,将来のトラブルシューティングで必要になる可能性があるため,オリジナルの CDF は,/var/adm/smlogs
ディレクトリに残しておく必要があります。
管理者は,オプションとして,フル・インストレーションまたはクローン・インストレーションのあらかじめ定義された 3 箇所 (アップデート・インストレーションの処理では 2 箇所) で実行されるスクリプトまたはプログラムを作成します。 管理者は,これらのファイルで実行する動作を定義します。 これらのファイルの作成についての詳細は,この章の5.7 節を参照してください。
管理者は,修正した CDF とユーザ提供ファイルを,ディスケットの
/
(root) ディレクトリ,RIS サーバの
/var/adm/ris/clients/sets/profile_set
ディレクトリ,CD-ROM の
/isl
ディレクトリ (配布メディアを再パッケージする場合) のいずれかに移動します。
これらのファイルは,展開した RIS 領域の内部にある
/isl
ディレクトリにもコピーできます。
正しい位置へのファイルの移動についての詳細は,この章の5.8 節を参照してください。
図 5-2
では,ユーザ提供ファイルと CDF がフル・インストレーションの際に呼び出される様子を示します。
図 5-2: 動作原理: ユーザ提供ファイルと CDF
配布メディアからシステムがブートされ,フル・インストレーションが開始されます。
メモリ・ファイル・システム (MFS) は,インストール処理に必要な書き込み可能なスペースとして使用されます。
フル・インストレーション・プロセスは,preinstall
という名前のファイルを検索します。
検索順序とファイルの位置を,表 5-4
に示します。
このファイルは,ユーザ提供のスクリプト,プログラム,実行可能ファイルのいずれかであり,インストレーション処理が始まる前に実行するアクションが含まれています。
このファイルが見つかると,ファイルが実行されます。
実行が正常に終ると,インストレーション処理が開始されます。
実行が正常に終了しなかった場合 (すなわちゼロ以外の終了状態が返された場合),インストレーション処理は停止します。
preinstall
ファイルが見つからなかった場合,フル・インストレーション・プロセスは
install.cdf
ファイルの検索を開始します。
表 5-4に示す位置のいずれかに
install.cdf
ファイルがあれば,このファイルに基づいてインストレーションの残り部分が処理され,ターゲット・システム上でクローン・インストレーション処理が開始されます。
install.cdf
ファイルが見つからなかった場合,通常のフル・インストレーション処理が開始されます。
インストレーション・プロセスは,ターゲット・システムを複製する前に,install.cdf
ファイルの妥当性をチェックします。
このチェックには,CDF ファイルで指定されたディスク名とディスク・タイプが複製されるシステム上にあることの確認などがあります。
RIS インストレーションの場合,このチェックには,CDF に含まれるソフトウェア・サブセットのバージョンと,RIS 環境内にインストールされているソフトウェア・サブセットのバージョンの比較などがあります。
CDF のチェックに失敗すると,インストレーションは停止します。
チェックに失敗した原因を示す診断メッセージが表示されます。
CDF のチェックが正常に終ると,クローン・インストレーション処理が続行されます。
install.cdf
ファイルが見つからない場合,通常のフル・インストレーションの際に表示される質問に,インストールしているユーザが応えます。
ソフトウェア・サブセットがロードされた後,フル・インストレーション・プロセスは
postload
という名前のファイルを検索します。
検索順序と位置を,表 5-4
に示します。
このファイルは,ユーザ提供のスクリプト,プログラム,実行可能ファイルのいずれかであり,ソフトウェア・サブセットがロードされた後に実行するアクションが含まれています。
このファイルが見つかると,ファイルが実行されます。
実行が正常に終了しなかった場合,インストレーション処理は停止します。
フル・インストレーション・プロセスは,表 5-4に示した検索順序と位置で,config.cdf
ファイルを検索します。
config.cdf
ファイルが見つかると,/var/adm/smlogs
ディレクトリにコピーされます。
このファイルは,インストレーション処理の後半の構成フェーズで,ターゲット・システムの構成を複製する際に適用されます。
フル・インストレーション・プロセスは,postreboot
という名前のファイルを検索します。
このファイルは,ユーザ提供のスクリプト,プログラム,実行可能ファイルのいずれかであり,インストレーション・プロセスが,インストールされたシステム・ディスクから初めてブートした後に実行するアクションが含まれています。
このファイルが見つかると,システム構成フェーズで実行するために,このファイルは
/var/adm/smlogs
ディレクトリにコピーされます。
ソフトウェア・サブセットがロードされた後,システムは自動的にリブートされます。
システムに自動リブート機能がない場合,またはユーザの介入が不要になるように
install.cdf
ファイルが変更されていな場合,インストレーション処理は停止し,新しくインストールしたディスクからシステムをリブートするためのコマンドを入力するようにプロンプトを表示します。
システムが自動リブートするようにセットアップされていない場合,システムをリブートするために入力しなければならないブートコマンドが画面に表示されます。
システム構成フェーズは,システムのリブート後に自動的に開始されます。
構成とは,ソフトウェア・サブセットの調整,ホスト名,root
パスワード,日付,時刻,ロケーションおよび地域の設定,システムのチューニング,カーネルの構築などの処理です。
これらの属性の値が定義されていない場合や,フル・インストレーションの際にユーザが応答を入力しなかった場合,インストレーション処理は対話形式の動作になり入力を要求します。
フル・インストレーション・プロセスは,/var/adm/smlogs
ディレクトリを参照して,config.cdf
ファイルまたは
postreboot
ファイルがそこに移動されているかどうかを調べます。
このディレクトリは,インストレーション・プロセスがファイルを移動する位置です。
ユーザがファイルを置くディレクトリ位置ではありません。
config.cdf
ファイルが見つかると,そのファイルはターゲット・システムを構成するために使用されます。
構成のクローニングでは,7.8 節で説明しているような妥当性チェックが実行されます。
config.cdf
ファイルの妥当性チェックに失敗した場合,構成のクローニングは実行されませんが,インストレーション処理は続けられます。
config.cdf
ファイルを他のシステムの複製に適用するには,CDF が妥当性チェックにパスしなければなりません。
postreboot
ファイルが見つかると,そのファイルが実行されます。
実行が正常に終了しなかった場合,フル・インストレーションが続行されます。
postreboot
ファイルの実行が異常終了しても,インストレーション処理の次のステップ (カーネルの構築) は中止されません。
クローン・インストレーションの場合,カーネル構築のタイプは
install.cdf
ファイルの
kernel_options=
属性で定義されます。
通常のフル・インストレーションの場合,カーネル構築のタイプは,カーネルへ組み込むカーネル構成要素のタイプ (すべてのカーネル構成要素,必須のみ,あるいは必須およびオプションの組み合わせ) によって決まります。
インストレーションの最終フェーズは,システムの最終リブートです。
この後,ユーザは初めてログインできるようになります。
フル・インストレーションまたはクローン・インストレーションの場合,この時点でログインできるユーザは
root
だけです。
ユーザ提供ファイルの内容は,実行する作業によって異なりますが,ユーザ提供ファイルには,読み取り許可と実行許可が必要です。
ユーザ提供ファイルを作成する際は,実行する環境に注意してください。
たとえば,preinstall
ファイルおよび
postload
ファイルでは,配布メディア上で使用可能なコマンドとユーティリティだけを呼び出すことができます。
これは,オペレーティング・システムの環境がまだ完全にインストールされていないためです。
postreboot
ファイルでは,インストールされたオペレーティング・システムで使用可能なすべてのコマンドとユーティリティを呼び出すことができます。
配布メディアは,ソフトウェアをインストールしたときのレイアウトと同じようにレイアウトされたファイル・システムで構成されています。
ただし,性能上の理由およびスペースを考慮して,配布メディアには圧縮されていないソフトウェア・サブセットと圧縮されたソフトウェア・サブセットが組み合わせて収められています。
インストレーションの際には,圧縮されていないソフトウェア・サブセットのコマンドとユーティリティのみが使用できます。
配布メディアで使用できるコマンドを確かめるには,そのメディアをマウントして,cd
コマンドと
ls
コマンドで,内容を表示してください。
5.7.1 項では
preinstall
ファイルの作成についての詳細,5.7.2 項では
postload
ファイルの作成についての詳細,5.7.3 項では
postreboot
ファイルの作成についての詳細を説明します。
5.7.1 preinstall ファイルの作成
フル・インストレーションおよびアップデート・インストレーションの際に,ユーザ提供ファイルを最初に呼び出すタイミングは,ユーザ・インタフェースを表示する前です。
フル・インストレーションの場合は,install.cdf
ファイルを検索する前になります。
この時点で,フル・インストレーション・プロセスは
preinstall
という名前のファイルを検索します。
このファイルはユーザ提供のスクリプト,プログラム,実行可能ファイルのいずれかです。
このファイルには,インストレーションのユーザ・インタフェースが表示される前に実行するアクションが含まれています。
アップデート・インストレーション・プロセスは,update_preinstall
という名前のファイルを検索します。
ファイル・システムの作成とソフトウェア・サブセットのロードの前に実行するアクションには,1 つまたは複数のディスクへのカスタマイズしたディスク・ラベルの書き込みがあります。
他の利用方法として,汎用の
install.cdf
ファイルにホスト固有の属性を動的に書き込み,そのファイルを
/var/tmp
に置いて,フル・インストレーション・プロセスが見つけることができるようにするという処理も考えられます。
preinstall
ファイルでは,インストール済のファイル・システムおよびソフトウェアを必要とする処理を実行しないでください。
これは,これらをインストールするフェーズがまだ完了していないためです。
ただし,アップデート・インストレーションの場合,このようなファイル・システムとソフトウェアが使用できます。
preinstall
および
update_preinstall
ファイルと,これらが呼び出すすべてのファイルには,読み取り許可と実行許可が必要です。
preinstall
ファイルは,他のユーザ提供ファイルおよび CDF と同じ位置になくてもかまいません (スクリプトから変更する場合を除く)。
インストレーション・プロセスは,preinstall
および
update_preinstall
ファイルの実行結果の戻り値を調べ,ゼロ以外の戻り値を受け取った場合はインストレーション処理を停止します。
preinstall
および
update_preinstall
ファイルは,独自のステータスまたはエラー・メッセージを出力する必要があります。
インストレーション処理は,ユーザ提供のスクリプトやプログラムの実行結果を保証しませんが,正常に完了した場合にインストレーション処理が続行されることは保証します。
以下の例に示す
preinstall
スクリプトの例では,カスタマイズされたディスク・ラベルを
RZ26
ディスクに適用します。
例 5-1: 他のファイルを呼び出す preinstall スクリプトの例
#!/sbin/sh # # Write a custom disk label to the # system disk before starting the installation. # # NOTE: THIS FILE ASSUMES A DISK NAME OF dsk0 AND DISK TYPE OF RZ26 # # First, zero the label # 2>/dev/null disklabel -z dsk0 # # Next, restore the label # disklabel -Rr dsk0 ./DiskLabelSave RZ26 || [1] { echo "\nError restoring disklabel on dsk0\n" exit 1 } echo "\nThe disklabel that has been applied is:\n" disklabel -r dsk0 | tail -10 exit 0
preinstall
スクリプトから呼び出される
DiskLabelSave
ファイルは,preinstall
スクリプトと同じディレクトリに置き,読み取り許可を設定する必要があります。
DiskLabelSave
ファイルのサンプルを,例 5-2
に示します。
[例に戻る]
preinstall
スクリプトから呼び出される
DiskLabelSave
ファイルには,dsk0
のディスク・ラベルを読み取り,その出力をファイルにリダイレクトすることで作成したディスク・ラベルが入っています。
このファイルを作成するには,次のようなコマンドを入力します。
# disklabel -r dsk0 > DiskLabelSave
例 5-2: preinstall スクリプト例から呼び出される DiskLabelSave ファイル
# /dev/rdisk/dsk0a: type: SCSI disk: rz26 label: flags: bytes/sector: 512 sectors/track: 57 tracks/cylinder: 14 sectors/cylinder: 798 cylinders: 2570 sectors/unit: 2050860 rpm: 3600 interleave: 1 trackskew: 0 cylinderskew: 0 headswitch: 0 # milliseconds track-to-track seek: 0 # milliseconds drivedata: 0 8 partitions: # size offset fstype [fsize bsize cpg] a: 131072 0 4.2BSD 1024 8192 16 # (Cyl. 0 - 164*) b: 262144 131072 unused 1024 8192 # (Cyl. 164*- 492*) c: 2050860 0 unused 1024 8192 # (Cyl. 0 - 2569) d: 552548 393216 unused 1024 8192 # (Cyl. 492*- 1185*) e: 552548 945764 unused 1024 8192 # (Cyl. 1185*- 1877*) f: 552548 1498312 unused 1024 8192 # (Cyl. 1877*- 2569*) g: 1210000 393216 4.2BSD 1024 8192 16 # (Cyl. 492*- 2009*) h: 447644 1603216 4.2BSD 1024 8192 16 # (Cyl. 2009*- 2569*)
DiskLabelSave
ファイルを作成した後でこのファイルを編集すると,必要に応じてパーティションのサイズをカスタマイズできます。
5.7.2 postload ファイルの作成
ファイル・システムの作成,ソフトウェア・サブセットのロード,保留中のソフトウェア構成フェーズの構成環境の準備が完了すると,フル・インストレーションおよびアップデート・インストレーション・プロセスは,システムが初めてリブートされる前に,postload
および
update_postload
という名前のファイルを探します。
ソフトウェア・サブセットがロードされた後に実行するアクションには,他のファイル・システムの作成や,複数のターゲット・システムに適用される
config.cdf
ファイルの動的な変更があります。
付録 Bには
postload
スクリプトの例を記載し,ホスト固有の属性を
config.cdf
ファイルに設定する方法を示します。
postload
ファイルと
postload
が呼び出すすべてのファイルには読み取り許可と実行許可が必要です。
postload
ファイルは,ユーザ提供スクリプトおよび
install.cdf
ファイルと同じ位置になくてもかまいません。
ただし,postload
ファイルで
config.cdf
ファイルを操作する場合は,これらのファイルは同じ位置に置く必要があります。
インストレーション・プロセスは
postload
ファイルの実行結果を調べ,戻り値がゼロ以外の場合,インストレーション処理を停止します。
postload
ファイルは,独自のステータスまたはエラー・メッセージを出力する必要があります。
インストレーション処理は,ユーザ提供のスクリプトやプログラムの実行結果を保証しませんが,正常に完了した場合にインストレーション処理が続行されることは保証します。
フル・インストレーションのこの時点では,磁気メディア上に新しく作成された
/
,/usr
,/var
ファイル・システムは,新しくインストールされたシステム・ディスクからリブートするまでは
/mnt
ディレクトリの下に相対的にマウントされているという点に注意してください。
すなわち,/
ファイル・システムは
/mnt
,usr
ファイル・システムは
/mnt/usr
,のようになります。
例 5-3に示す
postload
スクリプトの例では,users
という新しいファイル・システムを作成し,次に
/etc/fstab
ファイルにエントリを追加して,リブートするたびにこの新しいファイル・システムがマウントされるようにします。
例 5-3: postload スクリプトの例
#!/sbin/sh # # postload - script which is invoked after the subset load of a full # installation. The script creates a new file system and # adds an entry in the fstab file. Doing this will make the # file system available as soon as the installation completes. # # Create a new file system on dsk2c which is to be mounted at /usr/users # echo "postload: creating new file system on dsk2c\n" # Create the UFS file system on dsk2c, an RZ26L disk. /usr/sbin/newfs -F /dev/rdisk/dsk2c RZ26L || { echo "postload: failed to create a new file system on dsk2c\n" # We consider this a nonfatal error and allow the install to # continue. This is done by returning 0. Otherwise, exit with a # non-zero value. exit 0 } # Next, add an entry to fstab so that this new file system is # automatically mounted when the system boots. # NOTE: the actual installed file systems are mounted at /mnt. # Therefore, we want to add the entry to /mnt/etc/fstab and # not /etc/fstab. echo "/dev/disk/dsk2c /usr/users ufs rw 1 2" >> /mnt/etc/fstab # Finally, make sure the mount point is created. Again, create it # relative to /mnt. /bin/mkdir /mnt/usr/users # Process complete! exit 0
すでにスクリプトを記述してシステムを構成しているユーザがそのスクリプトを利用できるようにするためと,構成されたシステムからサポートされているスクリプト機能を利用できるようにするために,3 番目の起動ポイントがあります。
このユーザ提供ファイルは
postreboot
と呼ばれます。
このファイルは,フル・インストレーションのソフトウェア構成フェーズで検索されて起動されます。
ソフトウェア構成フェーズは,サブセットがロードされてシステムが汎用カーネルでリブートされた後に行われます。
より厳密には,postreboot
スクリプトは
config.cdf
ファイルをチェックした後に呼び出されるため,postreboot
スクリプトではネットワーク構成済のシステムを利用できます。
また,postreboot
スクリプトは,最適化カーネルの構築より前に呼び出されるため,他のレイヤード・ソフトウェア (カーネルが依存するものなど) をインストールして,必須のカーネル構成要素の要件を最適化カーネルの構築前に組み込むことができます。
フル・インストレーションの際に
postreboot
スクリプトが検索され,見つかると実行されます。
アップデート・インストレーション・プロセスはこのファイルを検索しません。
インストレーション・プロセスは,postreboot
ファイルの実行結果を調べますが,戻り値がゼロ以外でも,インストレーション処理を停止しません。
postreboot
ファイルは,独自のステータスまたはエラー・メッセージを出力する必要があります。
インストレーション・プロセスは,ユーザ提供のスクリプトやプログラムの実行結果を保証しませんが,スクリプトの終了状態に関係なく,インストレーション処理を続行することを保証します。
B.5 節に,postreboot
スクリプトの例を示します。
5.8 ユーザ提供ファイルと CDF を正しい位置にコピーする
CDF およびユーザ提供ファイルと,これらが必要とするファイルはすべて正しいディレクトリに配置し,インストレーション・プロセスが検索できるようにする必要があります。
フル・インストレーション・プロセスとアップデート・インストレーション・プロセスは,表 5-4に示す順序でユーザ提供ファイルと CDF を検索します。
ファイルが見つかると,インストレーション・プロセスは残りの場所の検索を中止します。
たとえば,インストレーション・プロセスがディスケット上で
preinstall
ファイルを見つけると,RIS サーバの検索は行いません。
表 5-4: ユーザ提供ファイルと CDF の格納位置
検索順序 | 位置 | コピー手順の参照先 |
1 | ディスケット・ドライブ
floppy0
または
floppy1
の
/
(ルート) ディレクトリ |
5.8.1 項 |
2 | クライアント・システムが登録されている RIS サーバ上の
/var/adm/ris/clients/sets/
ディレクトリにある
profile_set
サブディレクトリ |
5.8.2 項 |
3 | 複製されるシステムの
/var/tmp
メモリ・ファイル・システム (MFS) |
5.8.3 項 |
4 | 配布メディア (ローカル CD-ROM または展開された RIS 領域) の
/isl
ディレクトリ |
5.8.4 項 |
ユーザ提供ファイルと CDF をディスケットにコピーする前に,次のようなコマンド構文を用いて,ディスケットをフォーマットし,新しいディスク・ラベルを書き込み,新しいファイル・システムを作成しなければなりません。
fddisk
-fmt raw_diskette_device
disklabel
-wr diskette_drive disk_type
newfs
raw_diskette_device_partition
以下の手順に従って,ディスケット・ドライブ
floppy0
のディスケットをフォーマットし,ディスケットのタイプ
rx23
(標準の 3.5 インチ・ディスケット) を指定してディスク・ラベルを書き込み,ディスケット全体 (パーティション c) に新しいファイル・システムを作成します。
ドライブ
floppy0
のディスケットをフォーマットします。
# fddisk -fmt /dev/rdisk/floppy0c
標準の 3.5 インチ・ディスケットに新しいディスク・ラベルを書き込みます。
# disklabel -wr floppy0 rx23
ディスケット全体,すなわち
c
パーティションに新しいファイル・システムを作成します。
# newfs /dev/rdisk/floppy0c
preinstall
,postload
,postreboot
ファイルのいずれかがディスケット上にある場合,preinstall
,postload
,postreboot
ファイルから呼び出されるファイルもすべて,ディスケット上に置かなければなりません。
以下の手順に従ってディスケット・ドライブをマウントし,ファイルをディスケットにコピーします。
マウント・ポイント
/mnt
にディスケット・ドライブをマウントします。
# mount /dev/disk/floppy0c /mnt
ファイルが置かれているディレクトリにいると仮定して,以下のコマンドを入力してファイルをディスケットにコピーします。
# cp ./install.cdf /mnt/install.cdf # cp ./preinstall /mnt/preinstall # cp ./postload /mnt/postload # cp ./config.cdf /mnt/config.cdf # cp ./postreboot /mnt/postreboot # cp ./file_name /mnt/file_name
次の
chmod
コマンドを実行して,すべてのファイルに実行許可を設定します。
# chmod 755 /mnt/*
ディスケット・ドライブをアンマウントします。
# umount /mnt
ドライブからディスケットを取り出し,ターゲット・システムのディスケット・ドライブに挿入します。
ターゲット・システム上でフル・インストレーションを開始します (『インストレーション・ガイド』を参照)。
5.8.2 RIS サーバのプロファイル・セット・ディレクトリにファイルをコピーする
リモート・インストレーション・サービス (RIS) サーバでは,RIS 管理者が作成した論理的に編成されたサブディレクトリに,CDF とユーザ提供ファイルが格納されます。
これらのサブディレクトリはプロファイル・セットと呼ばれ,/var/adm/ris/clients/sets
ディレクトリに置かれます。
システムを RIS クライアントとして登録すると,CDF やインストール中に実行するユーザ提供ファイルが収められているプロファイル・セットにもシステムを登録できます。
プロファイル・セットおよび RIS 管理についての詳細は,『Sharing Software on a Local Area Network』を参照してください。
ユーザまたは RIS 管理者が命名規則と RIS サーバ上のプロファイル・セット・ディレクトリの構造を決定した後,次の手順に従って,CDF,ユーザ提供ファイル,および関連するファイルをプロファイル・セット・ディレクトリにコピーします。
RIS サーバに
root
としてログインします。
/var/adm/ris/clients/sets
ディレクトリに移動します。
# cd /var/adm/ris/clients/sets
決定した命名規則に従って,意味のある名前でプロファイル・セット・ディレクトリを作成します。 この例では技術部門のプロファイル・セット・ディレクトリを作成しています。
# mkdir engineering
新しいプロファイル・セット・ディレクトリに移動し,ファイルが正しいディレクトリにコピーされるようにします。
# cd engineering
正しい CDF,ユーザ提供ファイル,その他の関連ファイルを,作業エリアから新しいプロファイル・セット・ディレクトリ
engineering
に,使い慣れたコピー・ツール (ftp
,dcp
,または
rcp
) でコピーします。
次の
chmod
コマンドを実行して,すべてのファイルに読み取り許可と実行許可を設定します。
# chmod 755 *
ris
ユーティリティを起動して,ターゲット・システムを正しい RIS ソフトウェア環境とプロファイル・セット・ディレクトリに登録します。
# /usr/sbin/ris
ターゲット・システム上でフル・インストレーションを開始します (『インストレーション・ガイド』を参照)。
5.8.3 /var/tmp ディレクトリにファイルをコピーする
/var/tmp
ディレクトリは,インストレーション処理で作成される書き込み可能なディレクトリなので,CDF とユーザ提供ファイルの受け渡しには使用できません。
ただし,preinstall
スクリプトを使用すると,CDF,postload
,postreboot
,および
postload
と
postreboot
に必要な任意のファイルを,インストレーション処理の途中で
/var/tmp
にコピーすることができます。
これは,ファイルを
/var/tmp
に移動するために使用できる唯一のメカニズムなので,preinstall
ファイル自体を
/var/tmp
から起動することはできません。
オペレーティング・システムをパッケージし直し,CDF とユーザ提供ファイルを CD-ROM に収めて提供する場合に,この機能が役立ちます。
また,多数のクライアント・システムが登録されている RIS 領域にある汎用の CDF を動的に変更する場合にも,この機能は役立ちます。
ユーザ提供ファイルを使用すると,インストールして構成するクライアントに応じて CDF を変更し,結果のファイルを
/var/tmp
ディレクトリに置いて,インストレーション・プロセスが検索できるようにすることができます。
/var/tmp
は,ユーザ提供ファイルの 3 番目の検索位置です。
この位置を書き込み可能なディレクトリとして使用している場合,最初の 2 つの位置 (ディスケット・ドライブと RIS 領域) には,同じユーザ提供ファイルを置かないようにしてください。
これは,ファイルが見つかると検索が終了するためです。
インストレーション処理の一部として
install.cdf
,config.cdf
,postload
,または
postreboot
ファイルを変更したり選択する必要がある場合,CD-ROM には書き込めないので,書き込み可能なディレクトリ位置が必要になります。
たとえば,1 つの配布メディアで複数のハードウェアまたは構成をサポートするために,CD-ROM に複数の CDF を格納して出荷するとします。
この場合,インストレーションを実行するシステムを検査する
preinstall
ファイルを作成し,検査結果に基づいて,出荷された CDF ファイルの中から正しいものを選択します。
preinstall
ファイルはこの CDF を/var/tmp/install.cdf
にコピーします。
このようにすると,インストレーション・プロセスが後でこのファイルを読み取ることができます。
同じように,preinstall
ファイルは複数の
postload
ファイルの中から正しいものを選択して
/var/tmp/postload
にコピーすることができます。
preinstall
スクリプトでは,/var/tmp
にコピーされたファイルに正しい許可を設定する必要があります。
確実に正しい許可を設定するには,chmod 777 *
コマンドを実行するのが最も安全な方法です。
5.8.4 CD-ROM にファイルをコピーする
オペレーティング・システムの CD-ROM をパッケージし直して,CDF とユーザ提供ファイルを
/isl
ディレクトリに含めることができます。
注意
ソフトウェアのコピーは,オペレーティング・システムをライセンスに従って使用するときに限って実行できます。 コピーしたオペレーティング・システムのすべてに有効なライセンス契約がなければなりません。
install.cdf
,config.cdf
,preinstall
,postload
,postreboot
ファイルを CD-ROM 上の
/isl
ディレクトリに収める場合は,通常の方法で CD-ROM を作成します (すなわち,CD-ROM に書き込みます)。
使用する方法は,CD-ROM 書き込みソフトウェアによって異なります。
以下の基本手順に従って操作し,CD-ROM 上にイメージを作成します。
Tru64 UNIX Version 5.1B の CD-ROM をマウントして,CD-ROM の内容をコピーする磁気ディスク上にどれだけのディスク・スペースが必要か調べます。
たとえば,/dev/disk/cdrom0c
ドライブにある CD-ROM を
/mnt
ディレクトリにマウントするには,次のようなコマンドを入力します。
# mkdir /mnt # mount /dev/disk/cdrom0c /mnt # cd /mnt
次のコマンドを入力して,ディスク容量を K バイト単位で調べます。
# df -k
表示される数値を記録して,要求を満たすだけのスペースがディスク上にあることを確認してください。
記録: _________________
イメージを作成する前に,磁気ディスクのディスク・ラベルを消去します。
# disklabel -z /dev/disk/dsk2
このディスクに省略時のディスク・ラベルを設定します。
# disklabel -rw /dev/disk/dsk2
CD-ROM のマウント・ポイントに移動します。
# cd /mnt
ステップ
2
で調べた値を使用して,次のステップで
tar
ファイルを作成するファイル・システムにファイルを保存するための十分な容量があるか確認します。
別のディスクをマウントして新しく一時的なファイル・システムを作成しなければならないこともあります。
必要に応じて,例で使用している
/spare
ディレクトリとして,/var/spare
や
/usr/spare
のような,他の既存ファイル・システムのディレクトリを使用することもできます (十分な空き領域がある場合)。
この後のステップは,ディスク容量をどのように確保するかに応じて変更してください。
CD-ROM の内容を含む tar ファイルを作成します。
# tar cf /spare/OS1.tar .
tar ファイルを作成した後,CD-ROM がマウントされたディレクトリの外に移動して CD-ROM をアンマウントします。
# cd / # umount /mnt
dsk2
に新しくファイル・システムを作成してマウントします。
# newfs /dev/disk/dsk2c # mkdir /cdimage # mount /dev/disk/dsk2c /cdimage
OS1.tar
ファイルを新しいディスクにコピーします。
# cd /cdimage # tar xf /spare/OS1.tar
ユーザのファイルが存在するディレクトリに移動して,cp
コマンドを使用して
install.cdf
,preinstall
,postload
,config.cdf
,postreboot
ファイル,およびこれらのファイルから呼び出されるファイルを,イメージの
/cdimage/isl
ディレクトリにコピーします。
フル・インストレーションの場合,次のようにファイルをコピーします。
# cd file_location # cp ./preinstall /cdimage/isl/preinstall # cp ./install.cdf /cdimage/isl/install.cdf # cp ./postload /cdimage/isl/postload # cp ./config.cdf /cdimage/isl/config.cdf # cp ./postreboot /cdimage/isl/postreboot # cp ./filename /cdimage/isl/filename
アップデート・インストレーションの場合,次のようにファイルをコピーします。
# cd file_location # cp ./update_preinstall /cdimage/isl/update_preinstall # cp ./update_postload /cdimage/isl/update_postload # cp ./filename /cdimage/isl/filename
使用する CD-ROM 書き込みソフトウェアのタイプに応じた方法で,ディスク上の変更済みイメージを CD-ROM に書き込みます。
CD-ROM に書き込むラベルはオペレーティング・システム CD-ROM のラベルと一致している必要があります。
一致していないと,書き込み処理は失敗します。
disklabel -r
コマンドを使用して,label:
string
を探し,オペレーティング・システム CD-ROM のラベルを調べてください。
注意
オペレーティング・システムのイメージが有効でブート可能であることを確認するために,CD-ROM に書き込む前にディスク上のイメージからブートできるか試してみることをお勧めします。