クローンシステムのファイルすべてを上書きする初期インストール用アーカイブを作成することも、指定された変更部分のみを上書きする差分アーカイブを作成することもできます。差分アーカイブの概要については、「更新用 Solaris フラッシュ差分アーカイブの作成を計画する」を参照してください。
非大域ゾーンがインストールされていると、Solaris フラッシュアーカイブは正常に作成できません。Solaris フラッシュ機能には Solaris ゾーン区分技術との互換性はありません。Solaris フラッシュアーカイブを作成する場合、そのアーカイブの配備条件が次のいずれかの場合は、作成されたアーカイブは正しくインストールされません。
アーカイブが非大域ゾーンに作成された場合
アーカイブが、非大域ゾーンがインストールされている大域ゾーンに作成された場合
マスターシステムにインストールした後で、他のシステムへのインストールに使用する Solaris フラッシュアーカイブを作成します。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
マスターシステムをブートし、できるだけ静的な状態で稼働させます。
可能であれば、システムをシングルユーザーモードで実行してください。これが不可能な場合、アーカイブするアプリケーションおよび大量のオペレーティングシステムリソースを必要とするアプリケーションを停止します。
Solaris フラッシュアーカイブの作成は、マルチユーザーモードまたはシングルユーザーモードで稼動しているマスターシステム上で、あるいは次に示すメディアの 1 つからブートさせたシステム上で行うことができます。
Solaris Operating System DVD。
Solaris SOFTWARE - 1 CD。
Solaris SOFTWARE のイメージ。CD メディアを使用している場合、イメージには必要に応じて Solaris LANGUAGES CD が含まれます。
flarcreate コマンドを使用して、アーカイブを作成します。
# flarcreate -n name options path/filename |
アーカイブに指定する名前です。指定する name は、content_name キーワードの値になります。
オプションの詳細は、「flar コマンド」 を参照してください。
アーカイブファイルを保存するディレクトリへのパス。パスを指定しない場合、アーカイブファイルは現在のディレクトリに保存されます。
アーカイブファイルの名前です。
アーカイブの作成が正常に完了すると、flarcreate コマンドは終了コード 0 を返します。
アーカイブの作成が失敗すると、flarcreate コマンドは 0 以外の終了コードを返します。
アーカイブのコピーを作成して保存します。将来、クローンシステムを差分アーカイブで更新するときに、このコピーを使用できます。
ファイルシステムを複製する際、全く同じようにコピーすることも、カスタマイズしてディレクトリやファイルのいくつかを除外することもできます。異なるオプションを使用して、同じ結果を得ることも可能です。使用する環境に最も適したオプションを使用してください。
次の例に示すファイルシステムは、わかりやすくするために大幅に簡略化されています。これらの例では、マスターシステムのファイル構造は、/var、/usr、または /opt などのファイルシステム名の代わりに、次のようなファイル構造を使用します。
/aaa/bbb/ccc/ddd /aaa/bbb/fff /aaa/eee /ggg |
flarcreate のファイル除外オプションは、注意して使用してください。一部のディレクトリを除外する際、気づかずにシステム構成ファイルなどの他のファイルがアーカイブに残ってしまう場合があります。この場合、システムの整合性が損なわれるため、インストールが失敗してしまいます。ディレクトリやファイルの除外は、大規模なデータファイルなど、システムを破綻させることなく容易に削除可能なデータに対して行うのが最善です。
この例では、アーカイブの名前は archive1 です。このアーカイブは、マスターシステムそのものがコピーされ、その後圧縮されます。アーカイブはマスターシステムの完全な複製で、archive1.flar に格納されます。
# flarcreate -n archive1 -c archive1.flar |
アーカイブのファイル構造を確認するには、次のように入力します。
# flar info -l archive1.flarlost+found export export/home export/home/lost+found var var/sadm var/sadm/install var/sadm/install/admin var/sadm/install/admin/default var/sadm/install/logs var/sadm/install/contents var/sadm/install/.lockfile var/sadm/install/.pkg.lock var/sadm/pkg var/sadm/pkg/SUNWocfd var/sadm/pkg/SUNWocfd/install var/sadm/pkg/SUNWocfd/install/copyright var/sadm/pkg/SUNWocfd/save var/sadm/pkg/SUNWocfd/save/pspool var/sadm/pkg/SUNWocfd/save/pspool/SUNWocfd ..... ..... usr/bin/sparcv7 usr/bin/sparcv7/savecore usr/bin/sparcv7/gcore .... .... usr/lib/diff3prog usr/lib/madv.so.1 usr/lib/mpss.so.1 usr/lib/cpu usr/lib/cpu/sparcv8plus .... .... devices/pseudo/udp6@0:udp6 devices/pseudo/udp@0:udp devices/pseudo/tcp@0:tcp devices/pseudo/iwscn@0:iwscn devices/pseudo/wc@0:wscons devices/pseudo/tcp6@0:tcp6 devices/pseudo/sctp6@0:sctp6 var/fm/fmd/ckpt var/fm/fmd/rsrc kernel/drv/st.conf kernel/drv/st.conf kernel/drv/st.conf kernel/drv/st.conf # |
この例では、個別ファイルのいくつかは 4G バイトを超えています。デフォルトのアーカイブユーティリティー cpio は、これらの大規模なファイルを処理できません。-L pax によるコピー方法は、大規模な個別ファイルを含むアーカイブを作成する際に使用します。アーカイブの名前は archive1 になります。このアーカイブは、マスターシステムそのものがコピーされ、その後圧縮されます。アーカイブはマスターシステムの完全な複製で、archive1.flar に格納されます。
# flarcreate -L pax -n archive1 -c archive1.flar |
アーカイブのファイル構造を確認するには、次のように入力します。
# flar info -l archive1.flar aaa aaa/bbb aaa/bbb/ccc aaa/bbb/ccc/ddd aaa/bbb/fff aaa/eee aaa/eee ggg |
この例では、アーカイブの名前は archive4 です。このアーカイブは、マスターシステムそのものがコピーされ、その後圧縮されます。アーカイブはマスターシステムの完全な複製で、archive4.flar に格納されます。-R オプションは、別のディレクトリツリーからアーカイブを作成する場合に使用します。
# flarcreate -n archive4 -c -R /x/yy/zz archive4.flar |
この例では、アーカイブの名前は archive3 です。このアーカイブは、マスターシステムそのものがコピーされ、その後圧縮されます。オプションで、アーカイブ識別セクションに説明を追加できます。この説明により、後でアーカイブを識別するのが容易になります。キーワード、およびその値と書式については、「Solaris フラッシュのキーワード」を参照してください。
# flarcreate -n archive3 -i 20000131221409 -m pumbaa \ -e "Solaris 8 Print Server" -a "Mighty Matt" -U "Internal Finance" \ -T server archive3.flar |
アーカイブの作成後に、詳細な説明を含むアーカイブ識別セクションにアクセスできます。アーカイブ識別セクションの例を、次に示します。
section_begin=identification files_archived_method=cpio files_compressed_method=compress files_archived_size=259323342 files_unarchived_size=591238111 creation_date=20000131221409 creation_master=pumbaa content_name=Finance Print Server content_type=server content_description=Solaris 8 Print Server content_author=Mighty Matt content_architectures=sun4u creation_node=pumbaa creation_hardware_class=sun4u creation_platform=SUNW,Sun-Fire creation_processor=sparc creation_release=5.9 creation_os_name=SunOS creation_os_version=s81_49 x-department=Internal Finance |
この例では、アーカイブの名前は archive2 です。このアーカイブは、マスターシステムからコピーされますが、完全な複製ではありません。/aaa ディレクトリ以下の内容はアーカイブから除外されますが、/aaa/bbb/ccc の内容はアーカイブに含まれます。
# flarcreate -n archive2 -x /aaa -y /aaa/bbb/ccc archive2.flar |
アーカイブのファイル構造を確認するには、次のように入力します。除外されたディレクトリ (/aaa) であっても、コピーされたファイル (/aaa/bbb/ccc) が下位に存在する場合、そのディレクトリも表示されていますが、実際にアーカイブに含まれているのはコピーされたファイル ( /aaa/bbb/ccc) だけです。
# flar info -l aaa aaa aaa/bbb/ccc aaa/bbb/ccc/ddd aaa/bbb ggg |
この例では、アーカイブの名前は archive5 です。このアーカイブは、マスターシステムからコピーされますが、完全な複製ではありません。
exclude ファイルには、次のリストが含まれています。
/aaa |
include ファイルには、次のリストが含まれています。
/aaa/bbb/ccc |
/aaa ディレクトリ以下の内容はアーカイブから除外されますが、/aaa/bbb/ccc の内容はアーカイブに含まれます。
# flarcreate -n archive5 -X exclude -f include archive5.flar |
アーカイブのファイル構造を確認するには、次のように入力します。除外されたディレクトリ (/aaa) であっても、コピーされたファイル (/aaa/bbb/ccc) が下位に存在する場合、そのディレクトリも表示されていますが、実際にアーカイブに含まれているのはコピーされたファイル ( /aaa/bbb/ccc) だけです。
# flar info -l archive5.flar aaa aaa/bbb/ccc aaa/bbb/ccc/ddd aaa/bbb ggg |
オプション -x、-y、-X、および -f は組み合わせて使用できます。この例では、オプション -X および -y が組み合わせて使用されています。アーカイブの名前は archive5 です。このアーカイブは、マスターシステムからコピーされますが、完全な複製ではありません。
exclude ファイルには、次のリストが含まれています。
/aaa |
-y オプションにより、ディレクトリ /aaa/bbb/ccc がアーカイブに含まれます。次のコマンドにより、アーカイブが生成されます。
# flarcreate -n archive5 -X exclude -y /aaa/bbb/ccc archive5.flar |
アーカイブのファイル構造を確認するには、次のように入力します。除外されたディレクトリ (/aaa) であっても、コピーされたファイル (/aaa/bbb/ccc) が下位に存在する場合、そのディレクトリも表示されていますが、実際にアーカイブに含まれているのはコピーされたファイル ( /aaa/bbb/ccc) だけです。
# flar info -l archive5.flar aaa aaa/bbb aaa/bbb/ccc aaa/bbb/ccc/ddd ggg |
この例では、アーカイブの名前は archive3 です。これは、マスターシステムからコピーされますが、同一のコピーではありません。選択するファイルおよびディレクトリが、filter1 ファイルに含まれます。ファイル内では、ディレクトリにプラス記号 (+) またはマイナス (-) 記号が付けられ、アーカイブから除外するかアーカイブに含めるかが示されます。この例では、ディレクトリ /aaa に除外されることを示すマイナス記号が、サブディレクトリ /aaa/bbb/ccc にアーカイブに含めることを示すプラス記号が付けられています。filter1 ファイルには、次のリストが含まれています。
- /aaa + /aaa/bbb/ccc |
次のコマンドにより、アーカイブが生成されます。
# flarcreate -n archive3 -z filter1 archive3.flar |
アーカイブのファイル構造を確認するには、次のコマンドを入力します。除外されたディレクトリ (/aaa) であっても、コピーされたファイル (/aaa/bbb/ccc) が下位に存在する場合、そのディレクトリも表示されていますが、実際にアーカイブに含まれているのはコピーされたファイル ( /aaa/bbb/ccc) だけです。
# flar info -l archive3.flar aaa aaa/bbb aaa/bbb/ccc aaa/bbb/ccc/ddd ggg |
差分アーカイブを作成するには、比較する対象として、 更新前のマスターイメージと更新されたマスターイメージの 2 つが必要です。1 つ目のイメージは、変更が加えられていないマスターイメージです。このイメージはどこかに保存されていてアクセスできる必要があります。2 つ目のイメージは、マイナーチェンジにより変更が加えられたマスターイメージです。このイメージのデフォルトの格納場所はルート (/) ファイルシステムですが、他の場所に格納された場合でもアクセスが可能です。2 つのイメージが用意できたら、2 つのイメージの差分だけを含む差分アーカイブを作成します。次に、更新前のマスターイメージを使用してインストールされたクローンシステムに差分アーカイブをインストールできます。
マスターシステムで変更の準備を行います。変更を加える前に、マスターシステムで元のアーカイブの複製を作成する必要があります。
更新前のマスターイメージのコピーが変更されないよう保護し、後でこのイメージをマウントできるようにしておく必要があります。
次のいずれかの操作を行い、更新前のマスターイメージを更新します。
パッケージを削除します。
パッケージまたはパッチを追加します。
構成ファイルを変更します。
クローンシステム上にある周辺装置のサポートを追加します。
(省略可能) カスタムスクリプトを作成します。「カスタムスクリプトの作成」を参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
更新前のマスターイメージを、マウントポイントで参照できるようにします。
更新前のマスターイメージが非アクティブのブート環境に格納されている場合は、lumount コマンドを使用して参照可能にします。
# lumount BE_name mountpoint |
更新前のマスターイメージが格納されているブート環境の名前を指定します
イメージの格納されたルート (/) ファイルシステムを指定します
次の例では、非アクティブのブート環境の名前は unchanged_master1 です。マウントポイントは、マスターシステム上の /a ディレクトリです。
# lumount unchanged_master1 /a |
イメージがクローンに格納されている場合、NFS を使用してクローンをマウントします。
ufsdump コマンドを使用してイメージを保存した場合、ufsrestore コマンドを使用してコピーを取得します。これらのコマンドの使用方法については、『Solaris のシステム管理 (デバイスとファイルシステム)』の第 27 章「UFS バックアップおよび復元コマンド (参照情報)」を参照してください。
差分アーカイブを作成します。
# flarcreate -n archive_name -A unchanged_master_image_dir \ options path/filename |
アーカイブに付ける名前を指定します。指定する archive_name は、content_name キーワードの値になります。名前は、アーカイブ識別セクションに記載されます。
新しいシステムイメージを unchanged_master_image_dir 引数で指定されたイメージと比較して、差分アーカイブを作成します。デフォルトでは、新しいシステムイメージはルート (/) です。-R オプションを使用してデフォルトを変更できます。unchanged_master_image_dir は、UFS、NFS、または lumount コマンドを使用して格納またはマウントされた更新前システムイメージの格納先ディレクトリです。
内容選択用のオプションを使用して、一部のファイルを含めることも除外することもできます。オプションの一覧は、「flar コマンド」を参照してください。
オプションの詳細は、「flar コマンド」 を参照してください。
アーカイブファイルを保存するディレクトリへのパスを指定します。パスを指定しない場合、アーカイブファイルは現在のディレクトリに保存されます。
アーカイブファイル名を指定します。
差分アーカイブの作成が正常に完了すると、flarcreate コマンドは終了コード 0 を返します。
差分アーカイブの作成が失敗すると、flarcreate コマンドは 0 以外の終了コードを返します。
アーカイブのインストール手順については、『Solaris 10 10/09 インストールガイド (カスタムJumpStart/ 上級編)』の「カスタム JumpStart インストールを使用して Solaris フラッシュアーカイブをインストールする方法」を参照してください。
次の例では、更新前のマスターイメージのディレクトリの名前は unchanged_master1 です。変更を含む新しいマスターイメージは、ルート (/) ディレクトリにおかれているものとします。新しいマスターイメージが更新前のマスターイメージと比較され、その後、生成された差分アーカイブが圧縮されます。差分アーカイブは、diffarchive1.flar ファイルに格納されます。アーカイブには、インストール時に削除、変更、または追加されるファイルが含まれます。
# flarcreate -n diffarchive1 -A /a/unchanged_master1 -c diffarchive1.flar |
次の例では、更新前のマスターイメージ unchanged_master1 が非アクティブブート環境に格納されており、ブート環境をマウントすることによりアクセス可能になります。新しいマスターイメージは、ルート (/) ディレクトリにおかれているものとします。新しいマスターイメージが更新前のマスターイメージと比較され、その後、生成された差分アーカイブが圧縮されます。アーカイブは、diffarchive4.flar 内に格納されます。アーカイブには、インストール時に削除、変更、または追加されるファイルが含まれます。
# lumount unchanged_master1 /a # flarcreate -n diffarchive4 -A /a -c diffarchive4.flar |
システムの更新を管理するには、Solaris Live Upgrade を使用して OS のコピーを作成し、新しいブート環境を作成します。このコピーを、マイナーチェンジが加えられたマスターシステムと比較できます。こうして作成された Solaris フラッシュ差分アーカイブを、クローンシステムにインストールできます。
Solaris Live Upgrade の概要については、『Solaris 10 10/09 インストールガイド (Solaris Live Upgrade とアップグレードの計画)』の第 2 章「Solaris Live Upgrade (概要)」を参照してください。
lucreate コマンドを実行して、変更されていないマスターシステムから新しいブート環境を作成します。
この新しいブート環境はマスターシステムの正確なコピーであり、差分アーカイブの作成に使用できます。
スーパーユーザーになるか、同等の役割を引き受けます。
役割には、認証と特権コマンドが含まれます。役割の詳細については、『Solaris のシステム管理 (セキュリティサービス)』の「RBAC の構成 (作業マップ)」を参照してください。
2 つのブート環境の状態をチェックします。
# lustatus copy_BE boot environment Is Active Active Can Copy Name Complete Now OnReboot Delete Status ------------------------------------------------------------------------ master_BE yes yes yes no - copy_BE yes no no yes - |
次のいずれかの操作を行い、マスターイメージを更新します。
パッケージを削除します。
パッケージまたはパッチを追加します。
構成ファイルを変更します。
クローンシステム上にある周辺装置のサポートを追加します。
(省略可能) カスタムスクリプトを作成します。「カスタムスクリプトの作成」を参照してください。
差分アーカイブを作成します。
新しく作成されたブート環境をマウントします。
# lumount BE_name /a |
マスターシステムとブート環境を比較して、差分アーカイブを作成します。
# flarcreate -n archive_name -A new_BE_dir\ options path/filename |
アーカイブに付ける名前を指定します。
新しいシステムイメージと new BE_dir 引数で指定されたイメージを比較して、差分アーカイブを作成します。
オプションの一覧は、「flar コマンド」を参照してください。
アーカイブファイルを保存するディレクトリへのパスを指定します。パスを指定しない場合、アーカイブファイルは現在のディレクトリに保存されます。
アーカイブファイル名を指定します。
新しいブート環境をマウント解除します。
# luumount copy_BE |
flarcreate コマンドは終了コードを返します。
作成に成功した場合、返される終了コードは 0 です。
障害が発生した場合、返される終了コードは 0 以外です。
JumpStart プロファイルを使用して Solaris フラッシュ差分アーカイブをインストールします。
インストールするクローンシステムが元のマスターシステムの複製でない場合、インストールに失敗します。
次のプロファイル例では、デバイス c1t1d0s0 に差分アーカイブ test.diff がインストールされます。
JumpStart profile ----------------------- install_type flash_update archive_location http server /rw/test.diff root_device c1t1d0s0 |
この例では、現在のブート環境の名前は master_BE です。新しいブート環境の名前は copy_BE です。ルート (/) ファイルシステムと /usr ファイルシステムは、それぞれ s0 と s3 に配置されています。lustatus コマンドにより、新しいブート環境のコピーが完了したことが報告されます。マスターシステムに SUNWman パッケージを追加します。SUNWman パッケージの追加によってマスターシステムが更新されたあと、flarcreate コマンドにより、変更されたマスターと変更されていない新しいブート環境の比較が行われ、差分アーカイブが作成されます。
# lucreate -c master_BE -m /:/dev/dsk/c0t1d0s0:ufs \ -m /usr:/dev/dsk/c0t1d0s3:ufs -n copy_BE # lustatus # pkgadd SUNWman # lumount copy_BE /a # flarcreate -n test.diff -c -A /a /net/server/export/test.diff # luumount copy_BE |
クローンシステムに差分アーカイブをインストールします。アーカイブのインストール手順については、『Solaris 10 10/09 インストールガイド (カスタムJumpStart/ 上級編)』の「カスタム JumpStart インストールを使用して Solaris フラッシュアーカイブをインストールする方法」を参照してください。
次の図は、lucreate コマンドで新しいブート環境が作成される様子を示しています。