この章では、新しいブート環境を作成、アップグレード、およびアクティブ化して、これを新たな稼動環境にする例を示します。
この章では、UFS ファイルシステム用の Solaris Live Upgrade について説明します。UFS ファイルシステムを ZFS ルートプールに移行する、または ZFS ルートプールを作成およびインストールする手順については、第 13 章ZFS ルートプールのブート環境の作成を参照してください。
この章の内容は次のとおりです。
この例では、Solaris 9 リリースを実行しているシステムで lucreate コマンドを使用して新しいブート環境を作成します。この新しいブート環境を、luupgrade コマンドを使用して Solaris 10 10/09 にアップグレードします。アップグレードしたブート環境を、luactivate コマンドによってアクティブにします。この節では、以前のブート環境に戻す例も示します。
Solaris Live Upgrade をはじめて実行する前に、インストールメディアに含まれている最新の Solaris Live Upgrade パッケージと、SunSolve Infodoc 206844 に記載されているパッチをインストールしてください。SunSolve の Web サイトで、Infodoc 206844 (以前の 72099) を検索してください。
最新のパッケージとパッチにより、リリースに最新のバグ修正と新機能がすべて含まれるようになります。新しいブート環境の作成に進む前に、システムに関連するすべてのパッチを必ずインストールしてください。
以下では、SunSolve Infodoc 206844 に記載されている手順について説明します。
この手順では、システムでボリュームマネージャーを実行していると仮定しています。ボリュームマネージャーを使用したリムーバブルメディアの管理の詳細は、『Solaris のシステム管理 (デバイスとファイルシステム)』を参照してください。
スーパーユーザーになるか、同等の役割を引き受けます。
SunSolve の Web サイトにある Infodoc 206844 の手順に従って、Solaris Live Upgrade パッケージを削除および追加します。
既存の Solaris Live Upgrade パッケージを削除します。
3 つの Solaris Live Upgrade パッケージ SUNWluu、SUNWlur、および SUNWlucfg は、Solaris Live Upgrade を使ってアップグレードまたはパッチを適用するのに必要なソフトウェアを構成します。これらのパッケージには、既存のソフトウェア、新しい機能、およびバグ修正が含まれています。Solaris Live Upgrade を使用する前に、既存パッケージを削除しないで新しいパッケージをシステムにインストールすると、ターゲットリリースへのアップグレードまたはパッチ適用は失敗します。SUMWlucfg パッケージは、Solaris 10 8/07 以降のリリースの新機能です。Solaris 10 8/07 より前のリリースから Solaris Live Upgrade パッケージを使用する場合は、このパッケージを削除する必要はありません。
# pkgrm SUNWlucfg SUNWluu SUNWlur |
新しい Solaris Live Upgrade パッケージをインストールします。
パッケージをインストールするには、インストール DVD または CD にある liveupgrade20 コマンドか、pkgadd コマンドを使用します。liveupgrade20 コマンドを使用する場合は、Java ソフトウェアが必要です。システムに Java ソフトウェアがインストールされていない場合は、pkgadd コマンドを使用してパッケージをインストールする必要があります。詳細については、SunSolve Infodoc を参照してください。
Solaris Operating System DVD を使用する場合は、ディレクトリを変更してインストーラを実行します。
ディレクトリを変更します。
# cd /cdrom/cdrom0/Solaris_10/Tools/Installers |
SPARC ベースのシステムの場合、Solaris 10 10/08 リリースより前のリリースではインストーラへのパスが異なります。
# cd /cdrom/cdrom0/s0/Solaris_10/Tools/Installers |
インストーラを実行します。
# ./liveupgrade20 -noconsole - nodisplay |
-noconsole オプションと -nodisplay オプションを使用すると、キャラクタユーザーインタフェース (character user interface、CUI) が表示されるのを防ぐことができます。
Solaris Live Upgrade CUI はサポートされなくなりました。
Solaris Software – 2 CD を使用する場合は、パスを変更せずにインストーラを実行できます。
% ./installer |
パッケージが正常にインストールされていることを確認します。
# pkgchk -v SUNWlucfg SUNWlur SUNWluu |
Infodoc 206844 に記載されているパッチをインストールします。
ローカルディスクにパッチを保存する場合は、/var/tmp/lupatches などのディレクトリを作成します。
SunSolve の Web サイトから、パッチ一覧を取得します。
この例のようにパッチディレクトリに移動します。
# cd /var/tmp/lupatches |
パッチをインストールします。
# patchadd -M path-to-patchespatch-id patch-id |
path-to-patches は、/var/tmp/lupatches などのパッチディレクトリへのパスです。patch_id はパッチの番号です。複数のパッチ名を指定する場合は、スペースで区切ります。
パッチは、infodoc 206844 で指定された順序で適用する必要があります。
必要に応じてシステムをリブートします。いくつかのパッチは、有効にするためにリブートする必要があります。
x86 のみ: システムをリブートする必要があります。そうしないと Solaris Live Upgrade が失敗します。
# init 6 |
以上で新しいブート環境を正しく作成するために必要なパッケージとパッチがインストールされました。
-c オプションを使用して、ソースブート環境に c0t4d0s0 という名前を付けます。ソースブート環境の名前設定は最初のブート環境を作成するときだけ必要です。-c オプションによる命名の詳細は、「ブート環境をはじめて作成する」の手順 2 を参照してください。
新しいブート環境の名前は c0t15d0s0 です。-A オプションを使用して、このブート環境名に関連付ける説明を作成します。
ルート (/) ファイルシステムを新しいブート環境にコピーします。また、ソースブート環境のスワップスライスは共有せずに、新しいスワップスライスを作成します。
# lucreate -A 'BE_description' -c /dev/dsk/c0t4d0s0 -m /:/dev/dsk/c0t15d0s0:ufs\ -m -:/dev/dsk/c0t15d0s1:swap -n /dev/dsk/c0t15d0s0 |
非アクティブブート環境の名前は c0t15d0s0 です。アップグレードに使用するオペレーティングシステムイメージはネットワークから取得します。
# luupgrade -n c0t15d0s0 -u -s /net/ins-svr/export/Solaris_10 \ combined.solaris_wos |
lustatus コマンドは、ブート環境の作成が完了したかどうかを報告します。lustatus コマンドは、ブート環境がブート可能であるかどうかも報告します。
# lustatus boot environment Is Active Active Can Copy Name Complete Now OnReboot Delete Status ------------------------------------------------------------------------ c0t4d0s0 yes yes yes no - c0t15d0s0 yes no no yes - |
luactivate コマンドを使用して c0t15d0s0 ブート環境をブート可能にします。続いてシステムをリブートします。これで c0t15d0s0 がアクティブブート環境になります。c0t4d0s0 ブート環境は非アクティブになります。
# luactivate c0t15d0s0 # init 6 |
新しいブート環境のアクティブ化の状況に応じて、フォールバックのための手順を次の中から選択します。
この例では、新しいブート環境のアクティブ化が正常に完了したにもかかわらず、元の c0t4d0s0 ブート環境をアクティブブート環境として復元しています。デバイス名は first_disk です。
# /sbin/luactivate first_disk # init 6 |
この例では、新しいブート環境のブートに失敗しています。シングルユーザーモードで元のブート環境 c0t4d0s0 からブートさせるために、OK プロンプトを表示させる必要があります。
OK boot net -s # /sbin/luactivate first_disk Do you want to fallback to activate boot environment c0t4d0s0 (yes or no)? yes # init 6 |
元のブート環境 c0t4d0s0 がアクティブブート環境になります。
この例では、新しいブート環境のブートに失敗しています。元のブート環境からはブートできないためメディアまたはネットインストールイメージを使用する必要があります。デバイスは /dev/dsk/c0t4d0s0 です。元のブート環境 c0t4d0s0 がアクティブブート環境になります。
OK boot net -s # fsck /dev/dsk/c0t4d0s0 # mount /dev/dsk/c0t4d0s0 /mnt # /mnt/sbin/luactivate Do you want to fallback to activate boot environment c0t4d0s0 (yes or no)? yes # umount /mnt # init 6 |
次の例では、Solaris 10 1/06 以降のリリースで、GRUB メニューを使用して戻す手順を示します。
この例では、GRUB メニューは適切に表示されますが、新しいブート環境のブートに失敗します。フォールバックを可能にするため、元のブート環境はシングルユーザーモードでブートされます。
スーパーユーザーになるか、同等の役割を引き受けます。
GRUB メニューを表示するにはシステムをリブートします。
# init 6 |
GRUB メニューが表示されます。
GNU GRUB version 0.95 (616K lower / 4127168K upper memory) +-------------------------------------------------------------------+ |Solaris | |Solaris failsafe | |second_disk | |second_disk failsafe | +-------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. |
GRUB メニューから、元のブート環境を選択します。ブート環境は、GRUB ソフトウェアで作成されている必要があります。Solaris 10 1/06 リリースより前に作成されたブート環境は、GRUB ブート環境ではありません。ブート可能な GRUB ブート環境がない場合は、例 9–5 に進んでください。
次のように入力して、GRUB メニューを編集します。 e。
矢印キーを使用して kernel /boot/multiboot を選択し、e と入力します。GRUB 編集メニューが表示されます。
grub edit>kernel /boot/multiboot |
-s と入力して、シングルユーザーモードでブートします。
grub edit>kernel /boot/multiboot -s |
ブートして、ブート環境をマウントします。次に、それをアクティブにします。
# b # fsck /dev/dsk/c0t4d0s0 # mount /dev/dsk/c0t4d0s0 /mnt # /mnt/sbin/luactivate Do you want to fallback to activate boot environment c0t4d0s0 (yes or no)? yes # umount /mnt # init 6 |
次の例では、Solaris 10 1/06 以降のリリースにおいて DVD または CD を使用して戻す手順を示します。
この例では、新しいブート環境のブートに失敗しています。また、GRUB メニューは表示されません。フォールバックを可能にするため、元のブート環境はシングルユーザーモードでブートされます。
Solaris Operating System DVD (x86 版) または Solaris SOFTWARE - 1 CD (x86 版) を挿入します。
スーパーユーザーになるか、同等の役割を引き受けます。
DVD または CD からブートします。
# init 6 |
GRUB メニューが表示されます。
GNU GRUB version 0.95 (616K lower / 4127168K upper memory) +-------------------------------------------------------------------+ |Solaris 10 10/09 | |Solaris 10 10/09 Serial Console ttya | |Solaris 10 10/09 Serial Console ttyb (for lx50, v60x and v65x | +-------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. Press enter to boot the selected OS, 'e' to edit the commands before booting, or 'c' for a command-line. |
デフォルトのオプションがブートされるまで待機するか、表示されているオプションのどれかを選択します。
インストール画面が表示されます。
+-------------------------------------------------------------------+ |Select the type of installation you want to perform: | | | | 1 Solaris Interactive | | 2 Custom JumpStart | | 3 Solaris Interactive Text (Desktop session) | | 4 Solaris Interactive Text (Console session) | | 5 Apply driver updates | | 6 Single user shell | | | | Enter the number of your choice followed by the <ENTER> key.| | Alternatively, enter custom boot arguments directly. | | | If you wait 30 seconds without typing anything, | | an interactive installation will be started. | +----------------------------------------------------------------- --+ |
「Single user shell」オプションを選択します。
次のメッセージが表示されます。
Do you wish to automatically update the boot archive? y /n |
次のコマンドを入力します。
Starting shell... # |
これでシングルユーザーモードになりました。
ブート環境をマウントします。次に、アクティブにしてリブートします。
# fsck /dev/dsk/c0t4d0s0 # mount /dev/dsk/c0t4d0s0 /mnt # /mnt/sbin/luactivate Do you want to fallback to activate boot environment c0t4d0s0 (yes or no)? yes # umount /mnt # init 6 |
新しいブート環境に RAID-1 ボリューム (ミラー) を作成します
ミラーの一方を切り離し、アップグレードします
ミラー (連結) の他方を新しいミラーに接続します
図 9–1 は、3 つの物理ディスクから成る現在のブート環境を示します。
ミラーを持つ新しいブート環境 second_disk を作成します。
次のコマンドは、次のような処理を実行します。
lucreate コマンドにより、ルート (/) マウントポイントの UFS ファイルシステムが構成されます。d10 というミラーが作成されます。このミラー d10 に、現在のブート環境のルート (/) ファイルシステムがコピーされます。ミラー d10 にあるデータはすべて上書きされます。
2 つのスライス c0t1d0s0 および c0t2d0s0 は、サブミラーとして指定されています。これら 2 つのサブミラーは、ミラー d10 に接続されます。
# lucreate -c first_disk -n second_disk \ -m /:/dev/md/dsk/d10:ufs,mirror \ -m /:/dev/dsk/c0t1d0s0:attach \ -m /:/dev/dsk/c0t2d0s0:attach |
ブート環境 second_disk をアクティブにします。
# /sbin/luactivate second_disk # init 6 |
別のブート環境 third_disk を作成します。
次のコマンドは、次のような処理を実行します。
lucreate コマンドにより、ルート (/) マウントポイントの UFS ファイルシステムが構成されます。d20 というミラーが作成されます。
スライス c0t1d0s0 が現在のミラーから切り離され、ミラー d20 に追加されます。このサブミラーの内容であるルート (/) ファイルシステムは保持され、コピー処理は発生しません。
# lucreate -n third_disk \ -m /:/dev/md/dsk/d20:ufs,mirror \ -m /:/dev/dsk/c0t1d0s0:detach,attach,preserve |
新しいブート環境 third_disk をアップグレードします。
# luupgrade -u -n third_disk \ -s /net/installmachine/export/Solaris_10/OS_image |
アップグレードされたブート環境にパッチを追加します。
# luupgrade -t n third_disk -s /net/patches 222222-01 |
ブート環境 third_disk をアクティブにして、このブート環境からシステムを実行します。
# /sbin/luactivate third_disk # init 6 |
ブート環境 second_disk を削除します。
# ludelete second_disk |
次のコマンドは、次のような処理を実行します。
ミラー d10 を消去します。
c0t2d0s0 の連結の数を調べます。
metastat コマンドで見つけた連結を、ミラー d20 に接続します。metattach コマンドは、新しく接続した連結と、ミラー d20 の連結とを同期します。連結にあるデータはすべて上書きされます。
# metaclear d10 # metastat -p | grep c0t2d0s0 dnum 1 1 c0t2d0s0 # metattach d20 dnum |
metastat コマンドで見つかった連結の数。
これで、新しいブート環境 third_disk がアップグレードされ、この環境からシステムが実行されます。third_disk には、ミラー化されたルート (/) ファイルシステムが含まれています。
図 9–2 は、前の例のコマンドでミラーを切り離してアップグレードする手順の全体を示しています。
Solaris Live Upgrade では、RAID–1 ボリューム (ミラー) 上に新しいブート環境を作成できます。現在のブート環境のファイルシステムは、次のいずれかです。
物理ストレージデバイス
Solaris ボリュームマネージャーの制御下の RAID–1 ボリューム
Veritas VXFS 制御下のボリューム
ただし、新しいブート環境のターゲットは、Solaris ボリュームマネージャー RAID-1 ボリュームでなければなりません。たとえば、ルート(/) ファイルシステムのコピー用に指定するスライスは、/dev/vx/dsk/rootvol となります。rootvol はルート (/) ファイルシステムを含むボリュームです。
この例では、現在のブート環境のルート (/) ファイルシステムは Solaris ボリュームマネージャーボリューム以外のボリューム上にあります。新しいブート環境では、Solaris ボリュームマネージャー RAID-1 ボリュームである c0t2d0s0 上にルート (/) ファイルシステムが作成されます。lucreate コマンドは、現在のボリュームを Solaris ボリュームマネージャーボリュームに移行させるコマンドです。新しいブート環境の名前は svm_be です。lustatus コマンドを使用すると、新しいブート環境のアクティブ化とリブートの準備ができているかどうかがわかります。ブート環境がアクティブにされ、現在のブート環境になります。
# lucreate -n svm_be -m /:/dev/md/dsk/d1:mirror,ufs \ -m /:/dev/dsk/c0t2d0s0:attach # lustatus # luactivate svm_be # lustatus # init 6 |
次の手順を 3 段階に分けて説明します。
空のブート環境を作成する
アーカイブをインストールする
ブート環境をアクティブにし、現在実行中のブート環境にする
lucreate コマンドは、アクティブブート環境内のファイルシステムに基づいてブート環境を作成します。lucreate コマンドに -s - オプションを指定して実行すると、空のブート環境を短時間で作成できます。スライスは、指定のファイルシステム用に予約されていますが、ファイルシステムはコピーされません。このブート環境は、名前が付けられてはいますが、実際には、Solaris フラッシュアーカイブがインストールされる時にはじめて作成されることになります。空のブート環境にアーカイブがインストールされると、ファイルシステムは予約されたスライスにインストールされます。その後、ブート環境をアクティブにします。
最初の手順で、空のブート環境を作成します。指定されたファイルシステム用にスライスが予約されますが、現在のブート環境からファイルシステムがコピーされることはありません。新しいブート環境の名前は second_disk です。
# lucreate -s - -m /:/dev/dsk/c0t1d0s0:ufs \ -n second_disk |
これで、ブート環境に Solaris フラッシュアーカイブを格納する準備ができました。
図 9–3 は、空のブート環境の作成の様子を示しています。
2 番目の手順では、前の例で作成した second_disk ブート環境に、アーカイブをインストールします。アーカイブはローカルシステムに存在します。-s および -a オプションで指定するオペレーティングシステムのバージョンは、どちらも Solaris 10 10/09 リリースです。アーカイブの名前は Solaris_10.flar です。
# luupgrade -f -n second_disk \ -s /net/installmachine/export/Solaris_10/OS_image \ -a /net/server/archive/10.flar |
このようにして、ブート環境をアクティブにする準備が整います。
最後の手順では、luactivate コマンドを使用して、second_disk ブート環境をブート可能な状態にします。続いてシステムをリブートします。これで second_disk がアクティブブート環境になります。
# luactivate second_disk # init 6 |
空のブート環境の詳しい作成手順については、「Solaris フラッシュアーカイブ用の空のブート環境を作成する」を参照してください。
Solaris フラッシュ アーカイブの詳細な作成手順については、『Solaris 10 10/09 インストールガイド (Solaris フラッシュアーカイブの作成とインストール)』の第 3 章「Solaris フラッシュアーカイブの作成 (作業)」を参照してください。
ブート環境をアクティブ化したり、元のブート環境に戻したりする詳細な手順については、第 6 章障害回復: 元のブート環境へのフォールバック (作業)を参照してください。