Solaris 9 インストールガイド

フラッシュアーカイブの作成

クローンシステムのファイルすべてを上書きする初期インストール用アーカイブを作成することも、指定された変更部分のみを上書きする差分アーカイブを作成することもできます。差分アーカイブの詳細は、フラッシュ差分アーカイブの作成を計画するを参照してください。

初期インストール用フラッシュアーカイブの作成方法

マスターシステムにインストールした後で、他のシステムへのインストールに使用するフラッシュアーカイブを作成します。

  1. マスターシステムをブートし、できるだけ静的な状態で稼働させます。

    可能であれば、システムをシングルユーザーモードで実行してください。これが不可能な場合、アーカイブしたいアプリケーションおよび大量のオペレーティングシステムリソースを必要とするアプリケーションを停止します。

    フラッシュアーカイブの作成は、マルチユーザーモードまたはシングルユーザーモードで稼動しているマスターシステム上で、あるいは次に示すメディアの 1 つからブートさせたシステム上で行うことができます。

    • Solaris 9 DVD

    • Solaris 9 SOFTWARE 1 of 2 CD

    • Solaris 9 SOFTWARE のイメージ。CD メディアを使用している場合、イメージには必要に応じて Solaris 9 LANGUAGES CD が含まれます。

  2. flar create コマンドを使用して、アーカイブを作成します。


    # flar create -n name options path/filename
    

    name

    アーカイブに指定する名前です。指定する name は、content_name キーワードの値になります。

    options

    詳細は、flar createを参照してください。

    path

    アーカイブファイルを保存するディレクトリへのパスです。パスを指定しない場合、flar create はアーカイブファイルを現在のディレクトリに保存します。

    filename

    アーカイブファイルの名前です。 

    • アーカイブの作成が正常に完了すると、flar create コマンドは終了コード 0 を返します。

    • アーカイブの作成が失敗すると、flar create コマンドは 0 以外の終了コードを返します。

  3. アーカイブのコピーを作成して保存します。将来、クローンシステムを差分アーカイブで更新するときに、このコピーを使用できます。

例 — 初期インストール用アーカイブの作成

ファイルシステムを複製する際、全く同じようにコピーすることも、カスタマイズしてディレクトリやファイルのいくつかを除外することもできます。異なるオプションを使用して、同じ結果を得ることも可能です。使用する環境に最も適したオプションを使用してください。

次の例に示すファイルシステムは、分かりやすくするために大幅に簡略化されています。これらの例では、マスターシステムのファイル構造は、/var/usr、または /opt などのファイルシステム名の代わりに、次のようなファイル構造を使用します。


/aaa/bbb/ccc/ddd
/aaa/bbb/fff
/aaa/eee
/ggg

注意 – 注意 –

flar create のファイル除外オプションを指定する際は、注意が必要です。ディレクトリの一部を除外する際、システム構成ファイルなど、他のファイルが気づかずにアーカイブ内に残る場合があります。この場合、システムの整合性が損なわれるため、インストールが正常に行われません。ディレクトリやファイルの除外は、大規模なデータファイルなど、システムを破綻させることなく容易に削除可能なデータに対して行うのが最善です。



例 18–6 同一の複製アーカイブの作成

この例では、アーカイブの名前は archive1 です。これは、マスターシステムそのものがコピーされ、その後圧縮されます。アーカイブはマスターシステムの全く同一な複製で、archive1.flar に格納されます。


# flar create -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


例 18–7 アーカイブから除外するファイルとディレクトリおよびアーカイブに含めるファイルとディレクトリを指定してアーカイブを作成する

この例では、アーカイブの名前は archive2 です。これは、マスターシステムからコピーされますが、同一のコピーではありません。/aaa ディレクトリ以下の内容はアーカイブから除外されますが、/aaa/bbb/ccc の内容はアーカイブに含まれます。


# flar create -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


例 18–8 アーカイブから除外するファイルとディレクトリおよびアーカイブに含めるファイルとディレクトリをリストで指定してアーカイブを作成する

この例では、アーカイブの名前は archive5 です。これは、マスターシステムからコピーされますが、同一のコピーではありません。

exclude ファイルには、次のリストが含まれています。


/aaa

include ファイルには、次のリストが含まれています。


/aaa/bbb/ccc

/aaa ディレクトリ以下の内容はアーカイブから除外されますが、/aaa/bbb/ccc の内容はアーカイブに含まれます。


# flar create -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


例 18–9 アーカイブから除外するファイルとディレクトリをリストで指定し、アーカイブに含めるディレクトリを直接指定してアーカイブを作成する

オプション -x-y-X、および -f を組み合わせて使用できます。この例では、オプション -X および -y が組み合わせて使用されています。アーカイブの名前は、archive5 です。これは、マスターシステムからコピーされますが、同一のコピーではありません。

exclude ファイルには、次のリストが含まれています。


/aaa

-y オプションにより、ディレクトリ /aaa/bbb/ccc がアーカイブに含まれます。次のコマンドにより、アーカイブが生成されます。


# flar create -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


例 18–10 -z オプションを使用して、アーカイブから除外するファイルとディレクトリおよびアーカイブに含めるディレクトリをリストで指定してアーカイブを作成する

この例では、アーカイブの名前は archive3 です。これは、マスターシステムからコピーされますが、同一のコピーではありません。選択するファイルおよびディレクトリが、filter1 ファイルに含まれます。ファイル内では、ディレクトリにプラス記号 (+) またはマイナス (-) 記号が付けられ、アーカイブから除外するかアーカイブに含めるかが示されます。この例では、ディレクトリ /aaa に除外されることを示すマイナス記号が、サブディレクトリ /aaa/bbb/ccc にアーカイブに含めることを示すプラス記号が付けられています。filter1 ファイルには、次のリストが含まれています。


- /aaa
+ /aaa/bbb/ccc

次のコマンドにより、アーカイブが生成されます。


# flar create -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


例 18–11 代替ブート環境からのアーカイブの作成

この例では、アーカイブの名前は archive4 です。これは、マスターシステムそのものがコピーされ、その後圧縮されます。アーカイブはマスターシステムの全く同一な複製で、archive4.flar に格納されます。-R オプションは、別のディレクトリツリーからアーカイブを作成する場合に使用します。


# flar create -n archive4 -c -R /x/yy/zz archive4.flar


例 18–12 アーカイブを作成して、アーカイブについて記述するキーワードを追加する

この例では、アーカイブの名前は archive3 です。このアーカイブは、マスターシステムそのものがコピーされ、その後圧縮されます。オプションで、アーカイブ識別セクションに説明を追加できます。この説明により、後でアーカイブを識別するのが容易になります。キーワード、およびその値と書式については、フラッシュのキーワードを参照してください。


# flar create -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,sun4m
     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

マスターイメージの更新と差分アーカイブの作成

差分アーカイブを作成するには、更新前のマスターイメージと更新されたマスターイメージの 2 つが必要です。1 つのイメージは、変更が加えられていないマスターイメージです。このイメージはどこかに保存されていてアクセスできる必要があります。2 番目のイメージは、マイナーチェンジにより変更が加えられたマスターイメージです。このイメージのデフォルトの格納場所はルート (/) ファイルシステムですが、他の場所に格納された場合でもアクセスが可能です。2 つのイメージが用意できたら、2 つのイメージの差分だけを含む差分アーカイブを作成します。次に、更新前のマスターイメージを使用してインストールされたクローンシステムに差分アーカイブをインストールできます。

  1. 変更を加えるマスターシステムを用意します。変更を加える前に、マスターシステムで元のアーカイブの複製を作成する必要があります。


    注 –

    更新前のマスターイメージのコピーが変更されないよう保護し、後でこのイメージをマウントできるようにしておく必要があります。


  2. 次のいずれかの変更に合わせて、更新前のマスターイメージを更新します。

    • パッケージを削除する

    • パッケージまたはパッチを追加する

    • 構成ファイルを変更する

    • クローンシステム上にある周辺装置のサポートを追加する

  3. (省略可能) カスタムスクリプトを作成します。カスタムスクリプトの作成を参照してください。

  4. 更新前のマスターイメージを、マウントポイントで参照できるようにします。

    • 更新前のマスターイメージが非アクティブのブート環境に格納されている場合は、lumount コマンドを使用して参照可能にします。


      # lumount BE_name mountpoint
      

      BE_name 

      更新前のマスターイメージが格納されているブート環境の名前を指定します。 

      mountpoint

      イメージの格納されたルート (/) ファイルシステムを指定します。

      次の例では、非アクティブのブート環境の名前は unchanged_master1 です。マウントポイントは、マスターシステム上の /a ディレクトリです。


      # lumount  unchanged_master1 /a
      
    • イメージがクローンに格納されている場合、NFS を使用してクローンをマウントします。

      1. マスターシステム上で、クローンのルート (/) ファイルシステムを共有し、クローンシステム上でマスタールートのアクセス権を付与します。


        # share -F nfs -o rw,root=master_system "/"
        

        master_system は、マスターシステムの名前です。

      2. マスターシステム上で、クローンをマウントします。


        # mount -F nfs clone_system:/ master_dir
        

      clone_system

      マウントするシステムの名前を指定します。 

      master_dir

      更新前のマスターイメージが格納されているディレクトリを指定します。 

    • ufsdump コマンドを使用してイメージを保存した場合、ufsrestore コマンドを使用してコピーを取得します。これらのコマンドの使用方法については、『Solaris のシステム管理 (基本編)』の「UFS バックアップおよび復元コマンド (参照情報)」を参照してください。

  5. 差分アーカイブを作成します。


    # flar create -n archive_name -A unchanged_master_image_dir\
     options path/filename
    

    archive_name

    アーカイブに付ける名前を指定します。指定する archive_name は、content_name キーワード の値になります。名前は、アーカイブ識別セクションに記載されます。

    -A unchanged_master_image_dir

    新規システムイメージを unchanged_master_image_dir 引数で指定されたイメージと比較して、差分アーカイブを作成します。デフォルトでは、新規システムイメージはルート (/) ディレクトリに存在するものとみなします。-R オプションを使用してデフォルトを変更できます。unchanged_master_image_dir は、UFS、NFS、または lumount を使用して格納またはマウントされた更新前システムイメージの格納先ディレクトリです。

    内容選択用のオプションを使用して、一部のファイルを含めることも除外することもできます。オプションの一覧は、flar createを参照してください。

    options

    オプションの詳細は、flar createを参照してください。

    path

    アーカイブファイルを保存するディレクトリへのパスを指定します。パスを指定しない場合、flar create によりアーカイブファイルを現在のディレクトリに保存します。

    filename

    アーカイブファイル名を指定します。 

    • 差分アーカイブの作成が正常に完了すると、flar create コマンドは終了コード 0 を返します。

    • 差分アーカイブの作成が失敗すると、flar create コマンドは 0 以外の終了コードを返します。

例 — 差分アーカイブの作成


例 18–13 マスターシステム上の新規マスターイメージを使用して差分アーカイブを作成する

次の例では、更新前のマスターイメージのディレクトリの名前は unchanged_master1 です。変更を含む新しいマスターイメージは、ルート (/) ディレクトリにおかれているものとします。新しいマスターイメージが更新前のマスターイメージと比較され、その後、生成された差分アーカイブが圧縮されます。差分アーカイブは、diffarchive1.flar ファイルに格納されます。アーカイブには、インストール時に削除、変更、または追加されるファイルが含まれます。


# flar create -n diffarchive1 -A /a/unchanged_master1 -c diffarchive1.flar


例 18–14 非アクティブブート環境に格納されたイメージを使用して差分アーカイブを作成する

次の例では、更新前のマスターイメージ unchanged_master1 が非アクティブブート環境に格納されており、ブート環境をマウントすることによりアクセス可能になります。新しいマスターイメージは、ルート (/) ディレクトリにおかれているものとします。新しいマスターイメージが更新前のマスターイメージと比較され、その後、生成された差分アーカイブが圧縮されます。アーカイブは、diffarchive4.flar 内に格納されます。アーカイブには、インストール時に削除、変更、または追加されるファイルが含まれます。


# lumount unchanged_master1 /a
# flar create -n diffarchive4 -A /a -c  diffarchive4.flar