5    インストレーション処理のカスタマイズ

この章では,インストレーション処理を自動化したりカスタマイズしたりするための,高度な機能について説明します。 この章で述べる項目は,次のとおりです。

5.1    概要

フル・インストレーションおよびアップデート・インストレーション・プロセスには,あらかじめ定義された時点で特定のファイルを検索する機能が組み込まれています。 これらのファイルを正しいディレクトリ位置にコピーすると,次のような機能が実現できます。

この章では,構成記述ファイルの概念について簡単に説明します。 また,インストレーションの際に,カスタマイズした作業を実行するためのファイルの作成について説明します。

5.2    構成記述ファイルの概要

構成記述ファイル (CDF) は,システムを複製するために使用されます。 インストールして構成されたシステムのインストレーション特性と構成特性は,2 つの CDF ファイルに保存されます。 インストレーション情報は install.cdf ファイルに保存され,構成特性は config.cdf ファイルに保存されます。 この 2 つのファイルについて,以下に簡単に説明します。

表 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.cdfconfig.cdf のどちらか,または両方の CDF をディスケットにいれ,preinstall ファイルを RIS サーバに置き,postload ファイルを RIS サーバの /isl ディレクトリに置くことができます。 ただし,postload ファイルで config.cdf ファイルを操作する場合は,両方のファイルを同じ位置に置いてください。 ユーザ提供ファイルでは,CDF を動的に変更することができます。

5.5    管理者の作業の概要

図 5-1 では,CDF とユーザ提供ファイルをセットアップするために必要な,システム管理者の作業を示します。 フル・インストレーションまたはアップデート・インストレーションの際にユーザ提供ファイルを実行する場合,システム管理者は作業の 3 と 4 のみを実行します。

図 5-1:  管理者の作業の概要

  1. 管理者は,クローニングに適した CDF を生成するかまたは探します。 オペレーティング・システムの現行バージョンがインストールされているシステムでは,install.cdf/var/adm/smlogs ディレクトリにあります。 config.cdfsysman -clone -save コマンドを使用してどのディレクトリにも保存できますが,省略時のディレクトリは /var/adm/smlogs です。 インストレーションおよび構成のクローニング手順は,それぞれ 第 6 章第 7 章 に記載しています。

  2. 管理者はオリジナルの CDF を作業エリアにコピーして変更します。 少なくとも,ホスト固有の情報を変更して,複製したシステムが一意に識別されるようにしなければなりません。 オリジナルの CDF には初期のシステム・インストレーションまたは構成に関する情報が含まれており,将来のトラブルシューティングで必要になる可能性があるため,オリジナルの CDF は,/var/adm/smlogs ディレクトリに残しておく必要があります。

  3. 管理者は,オプションとして,フル・インストレーションまたはクローン・インストレーションのあらかじめ定義された 3 箇所 (アップデート・インストレーションの処理では 2 箇所) で実行されるスクリプトまたはプログラムを作成します。 管理者は,これらのファイルで実行する動作を定義します。 これらのファイルの作成についての詳細は,この章の5.7 節を参照してください。

  4. 管理者は,修正した CDF とユーザ提供ファイルを,ディスケットの / (root) ディレクトリ,RIS サーバの /var/adm/ris/clients/sets/profile_set ディレクトリ,CD-ROM の /isl ディレクトリ (配布メディアを再パッケージする場合) のいずれかに移動します。 これらのファイルは,展開した RIS 領域の内部にある /isl ディレクトリにもコピーできます。 正しい位置へのファイルの移動についての詳細は,この章の5.8 節を参照してください。

5.6    動作原理

図 5-2 では,ユーザ提供ファイルと CDF がフル・インストレーションの際に呼び出される様子を示します。

図 5-2:  動作原理: ユーザ提供ファイルと CDF

  1. 配布メディアからシステムがブートされ,フル・インストレーションが開始されます。

  2. メモリ・ファイル・システム (MFS) は,インストール処理に必要な書き込み可能なスペースとして使用されます。

  3. フル・インストレーション・プロセスは,preinstall という名前のファイルを検索します。 検索順序とファイルの位置を,表 5-4 に示します。 このファイルは,ユーザ提供のスクリプト,プログラム,実行可能ファイルのいずれかであり,インストレーション処理が始まる前に実行するアクションが含まれています。 このファイルが見つかると,ファイルが実行されます。 実行が正常に終ると,インストレーション処理が開始されます。 実行が正常に終了しなかった場合 (すなわちゼロ以外の終了状態が返された場合),インストレーション処理は停止します。 preinstall ファイルが見つからなかった場合,フル・インストレーション・プロセスは install.cdf ファイルの検索を開始します。

  4. 表 5-4に示す位置のいずれかに install.cdf ファイルがあれば,このファイルに基づいてインストレーションの残り部分が処理され,ターゲット・システム上でクローン・インストレーション処理が開始されます。 install.cdf ファイルが見つからなかった場合,通常のフル・インストレーション処理が開始されます。

  5. インストレーション・プロセスは,ターゲット・システムを複製する前に,install.cdf ファイルの妥当性をチェックします。 このチェックには,CDF ファイルで指定されたディスク名とディスク・タイプが複製されるシステム上にあることの確認などがあります。 RIS インストレーションの場合,このチェックには,CDF に含まれるソフトウェア・サブセットのバージョンと,RIS 環境内にインストールされているソフトウェア・サブセットのバージョンの比較などがあります。 CDF のチェックに失敗すると,インストレーションは停止します。 チェックに失敗した原因を示す診断メッセージが表示されます。 CDF のチェックが正常に終ると,クローン・インストレーション処理が続行されます。

  6. install.cdf ファイルが見つからない場合,通常のフル・インストレーションの際に表示される質問に,インストールしているユーザが応えます。

  7. ソフトウェア・サブセットがロードされた後,フル・インストレーション・プロセスは postload という名前のファイルを検索します。 検索順序と位置を,表 5-4 に示します。 このファイルは,ユーザ提供のスクリプト,プログラム,実行可能ファイルのいずれかであり,ソフトウェア・サブセットがロードされた後に実行するアクションが含まれています。 このファイルが見つかると,ファイルが実行されます。 実行が正常に終了しなかった場合,インストレーション処理は停止します。

  8. フル・インストレーション・プロセスは,表 5-4に示した検索順序と位置で,config.cdf ファイルを検索します。

  9. config.cdf ファイルが見つかると,/var/adm/smlogs ディレクトリにコピーされます。 このファイルは,インストレーション処理の後半の構成フェーズで,ターゲット・システムの構成を複製する際に適用されます。

  10. フル・インストレーション・プロセスは,postreboot という名前のファイルを検索します。 このファイルは,ユーザ提供のスクリプト,プログラム,実行可能ファイルのいずれかであり,インストレーション・プロセスが,インストールされたシステム・ディスクから初めてブートした後に実行するアクションが含まれています。 このファイルが見つかると,システム構成フェーズで実行するために,このファイルは /var/adm/smlogs ディレクトリにコピーされます。

  11. ソフトウェア・サブセットがロードされた後,システムは自動的にリブートされます。 システムに自動リブート機能がない場合,またはユーザの介入が不要になるように install.cdf ファイルが変更されていな場合,インストレーション処理は停止し,新しくインストールしたディスクからシステムをリブートするためのコマンドを入力するようにプロンプトを表示します。 システムが自動リブートするようにセットアップされていない場合,システムをリブートするために入力しなければならないブートコマンドが画面に表示されます。

  12. システム構成フェーズは,システムのリブート後に自動的に開始されます。 構成とは,ソフトウェア・サブセットの調整,ホスト名,root パスワード,日付,時刻,ロケーションおよび地域の設定,システムのチューニング,カーネルの構築などの処理です。 これらの属性の値が定義されていない場合や,フル・インストレーションの際にユーザが応答を入力しなかった場合,インストレーション処理は対話形式の動作になり入力を要求します。

  13. フル・インストレーション・プロセスは,/var/adm/smlogs ディレクトリを参照して,config.cdf ファイルまたは postreboot ファイルがそこに移動されているかどうかを調べます。 このディレクトリは,インストレーション・プロセスがファイルを移動する位置です。 ユーザがファイルを置くディレクトリ位置ではありません。

    config.cdf ファイルが見つかると,そのファイルはターゲット・システムを構成するために使用されます。 構成のクローニングでは,7.8 節で説明しているような妥当性チェックが実行されます。 config.cdf ファイルの妥当性チェックに失敗した場合,構成のクローニングは実行されませんが,インストレーション処理は続けられます。 config.cdf ファイルを他のシステムの複製に適用するには,CDF が妥当性チェックにパスしなければなりません。

    postreboot ファイルが見つかると,そのファイルが実行されます。 実行が正常に終了しなかった場合,フル・インストレーションが続行されます。 postreboot ファイルの実行が異常終了しても,インストレーション処理の次のステップ (カーネルの構築) は中止されません。

  14. クローン・インストレーションの場合,カーネル構築のタイプは install.cdf ファイルの kernel_options= 属性で定義されます。 通常のフル・インストレーションの場合,カーネル構築のタイプは,カーネルへ組み込むカーネル構成要素のタイプ (すべてのカーネル構成要素,必須のみ,あるいは必須およびオプションの組み合わせ) によって決まります。

  15. インストレーションの最終フェーズは,システムの最終リブートです。 この後,ユーザは初めてログインできるようになります。 フル・インストレーションまたはクローン・インストレーションの場合,この時点でログインできるユーザは root だけです。

5.7    ユーザ提供ファイルの作成

ユーザ提供ファイルの内容は,実行する作業によって異なりますが,ユーザ提供ファイルには,読み取り許可と実行許可が必要です。 ユーザ提供ファイルを作成する際は,実行する環境に注意してください。 たとえば,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

  1. 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 ディレクトリの下に相対的にマウントされているという点に注意してください。 すなわち,/ ファイル・システムは /mntusr ファイル・システムは /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

5.7.3    postreboot ファイルの作成

すでにスクリプトを記述してシステムを構成しているユーザがそのスクリプトを利用できるようにするためと,構成されたシステムからサポートされているスクリプト機能を利用できるようにするために,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 項

5.8.1    ファイルをディスケットにコピーする

ユーザ提供ファイルと CDF をディスケットにコピーする前に,次のようなコマンド構文を用いて,ディスケットをフォーマットし,新しいディスク・ラベルを書き込み,新しいファイル・システムを作成しなければなりません。

fddisk -fmt raw_diskette_device

disklabel -wr diskette_drive disk_type

newfs raw_diskette_device_partition

以下の手順に従って,ディスケット・ドライブ floppy0 のディスケットをフォーマットし,ディスケットのタイプ rx23 (標準の 3.5 インチ・ディスケット) を指定してディスク・ラベルを書き込み,ディスケット全体 (パーティション c) に新しいファイル・システムを作成します。

  1. ドライブ floppy0 のディスケットをフォーマットします。

    # fddisk -fmt /dev/rdisk/floppy0c
    

  2. 標準の 3.5 インチ・ディスケットに新しいディスク・ラベルを書き込みます。

    # disklabel -wr floppy0 rx23
    

  3. ディスケット全体,すなわち c パーティションに新しいファイル・システムを作成します。

    # newfs /dev/rdisk/floppy0c
    

preinstallpostloadpostreboot ファイルのいずれかがディスケット上にある場合,preinstallpostloadpostreboot ファイルから呼び出されるファイルもすべて,ディスケット上に置かなければなりません。

以下の手順に従ってディスケット・ドライブをマウントし,ファイルをディスケットにコピーします。

  1. マウント・ポイント /mnt にディスケット・ドライブをマウントします。

    # mount /dev/disk/floppy0c /mnt
    

  2. ファイルが置かれているディレクトリにいると仮定して,以下のコマンドを入力してファイルをディスケットにコピーします。

    # 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
    

  3. 次の chmod コマンドを実行して,すべてのファイルに実行許可を設定します。

    # chmod 755 /mnt/*
    

  4. ディスケット・ドライブをアンマウントします。

    # umount /mnt 
    

  5. ドライブからディスケットを取り出し,ターゲット・システムのディスケット・ドライブに挿入します。

  6. ターゲット・システム上でフル・インストレーションを開始します (『インストレーション・ガイド』を参照)。

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,ユーザ提供ファイル,および関連するファイルをプロファイル・セット・ディレクトリにコピーします。

  1. RIS サーバに root としてログインします。

  2. /var/adm/ris/clients/sets ディレクトリに移動します。

    # cd /var/adm/ris/clients/sets
    

  3. 決定した命名規則に従って,意味のある名前でプロファイル・セット・ディレクトリを作成します。 この例では技術部門のプロファイル・セット・ディレクトリを作成しています。

    # mkdir engineering
    

  4. 新しいプロファイル・セット・ディレクトリに移動し,ファイルが正しいディレクトリにコピーされるようにします。

    # cd engineering
    

  5. 正しい CDF,ユーザ提供ファイル,その他の関連ファイルを,作業エリアから新しいプロファイル・セット・ディレクトリ engineering に,使い慣れたコピー・ツール (ftpdcp,または rcp) でコピーします。

  6. 次の chmod コマンドを実行して,すべてのファイルに読み取り許可と実行許可を設定します。

    # chmod 755 *
    

  7. ris ユーティリティを起動して,ターゲット・システムを正しい RIS ソフトウェア環境とプロファイル・セット・ディレクトリに登録します。

    # /usr/sbin/ris
    

  8. ターゲット・システム上でフル・インストレーションを開始します (『インストレーション・ガイド』を参照)。

5.8.3    /var/tmp ディレクトリにファイルをコピーする

/var/tmp ディレクトリは,インストレーション処理で作成される書き込み可能なディレクトリなので,CDF とユーザ提供ファイルの受け渡しには使用できません。 ただし,preinstall スクリプトを使用すると,CDF,postloadpostreboot,および postloadpostreboot に必要な任意のファイルを,インストレーション処理の途中で /var/tmp にコピーすることができます。 これは,ファイルを /var/tmp に移動するために使用できる唯一のメカニズムなので,preinstall ファイル自体を /var/tmp から起動することはできません。

オペレーティング・システムをパッケージし直し,CDF とユーザ提供ファイルを CD-ROM に収めて提供する場合に,この機能が役立ちます。 また,多数のクライアント・システムが登録されている RIS 領域にある汎用の CDF を動的に変更する場合にも,この機能は役立ちます。 ユーザ提供ファイルを使用すると,インストールして構成するクライアントに応じて CDF を変更し,結果のファイルを /var/tmp ディレクトリに置いて,インストレーション・プロセスが検索できるようにすることができます。

/var/tmp は,ユーザ提供ファイルの 3 番目の検索位置です。 この位置を書き込み可能なディレクトリとして使用している場合,最初の 2 つの位置 (ディスケット・ドライブと RIS 領域) には,同じユーザ提供ファイルを置かないようにしてください。 これは,ファイルが見つかると検索が終了するためです。

インストレーション処理の一部として install.cdfconfig.cdfpostload,または 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.cdfconfig.cdfpreinstallpostloadpostreboot ファイルを CD-ROM 上の /isl ディレクトリに収める場合は,通常の方法で CD-ROM を作成します (すなわち,CD-ROM に書き込みます)。 使用する方法は,CD-ROM 書き込みソフトウェアによって異なります。

以下の基本手順に従って操作し,CD-ROM 上にイメージを作成します。

  1. Tru64 UNIX Version 5.1B の CD-ROM をマウントして,CD-ROM の内容をコピーする磁気ディスク上にどれだけのディスク・スペースが必要か調べます。 たとえば,/dev/disk/cdrom0c ドライブにある CD-ROM を /mnt ディレクトリにマウントするには,次のようなコマンドを入力します。

    # mkdir /mnt
    # mount /dev/disk/cdrom0c /mnt
    # cd /mnt
    

  2. 次のコマンドを入力して,ディスク容量を K バイト単位で調べます。

    # df -k
    

    表示される数値を記録して,要求を満たすだけのスペースがディスク上にあることを確認してください。

    記録: _________________

  3. イメージを作成する前に,磁気ディスクのディスク・ラベルを消去します。

    # disklabel -z /dev/disk/dsk2
    

  4. このディスクに省略時のディスク・ラベルを設定します。

    # disklabel -rw /dev/disk/dsk2
    

  5. CD-ROM のマウント・ポイントに移動します。

    # cd /mnt
    

  6. ステップ 2 で調べた値を使用して,次のステップで tar ファイルを作成するファイル・システムにファイルを保存するための十分な容量があるか確認します。 別のディスクをマウントして新しく一時的なファイル・システムを作成しなければならないこともあります。 必要に応じて,例で使用している /spare ディレクトリとして,/var/spare/usr/spare のような,他の既存ファイル・システムのディレクトリを使用することもできます (十分な空き領域がある場合)。 この後のステップは,ディスク容量をどのように確保するかに応じて変更してください。

  7. CD-ROM の内容を含む tar ファイルを作成します。

    # tar cf /spare/OS1.tar .
    

  8. tar ファイルを作成した後,CD-ROM がマウントされたディレクトリの外に移動して CD-ROM をアンマウントします。

    # cd /
    # umount /mnt
    

  9. dsk2 に新しくファイル・システムを作成してマウントします。

    # newfs /dev/disk/dsk2c
    # mkdir /cdimage
    # mount /dev/disk/dsk2c /cdimage
    

  10. OS1.tar ファイルを新しいディスクにコピーします。

    # cd /cdimage
    # tar xf /spare/OS1.tar
    

  11. ユーザのファイルが存在するディレクトリに移動して,cp コマンドを使用して install.cdfpreinstallpostloadconfig.cdfpostreboot ファイル,およびこれらのファイルから呼び出されるファイルを,イメージの /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
    

  12. 使用する CD-ROM 書き込みソフトウェアのタイプに応じた方法で,ディスク上の変更済みイメージを CD-ROM に書き込みます。 CD-ROM に書き込むラベルはオペレーティング・システム CD-ROM のラベルと一致している必要があります。 一致していないと,書き込み処理は失敗します。 disklabel -r コマンドを使用して,label: string を探し,オペレーティング・システム CD-ROM のラベルを調べてください。

    注意

    オペレーティング・システムのイメージが有効でブート可能であることを確認するために,CD-ROM に書き込む前にディスク上のイメージからブートできるか試してみることをお勧めします。