HOME / コンピュータTips / Solaris / Live Upgrade
Date: 2024/09/07 | | Tags: solaris opensolaris Live Upgrade liveupgrade lu アップグレード アップデート
ここではSXCE70からSXCE87へのアップグレードを行います。
事前準備として
SolarisのLiveUpgradeは、アップデート後、再起動に失敗したときのため、起動セットをもう一つ作成します。
これは、Windowsのサービスパックを当てるときを思い出してもらえば良いと思います。これは古いバージョンのサービスパックは、Windowsディレクトリ以下に圧縮して保存されていますよね?その結果、新しいサービスパックでアプリケーションに問題が出ても、古いバージョンに戻すこと(アンインストール)ができるのですが、この方法はお手軽である一方で、もし、サービスパックがアンインストールできなかったどうしよう?という問題もあります。
Solarisのluは、ブートイメージをもう一つ別に持つことによって、ディスクはよけいに使いますが、ダメならすぐに元の環境に再起動し直すことができるというコンセプトで設計されています。
なお、このLUは今後バージョンアップされず、OpenSolaris OS 2008.05では、beadminという概念によって、ZFSのスナップショット、クローニングの機能を使い、さらに利便性高く実現されていますので、今後、そちらに移行していくのでしょう。
format > ディスク名選択(今回はc0d0を選択) > partition > printで、下記のように出ます。
Part Tag Flag Cylinders Size Blocks
0 root wm 526 - 2565 15.63GB (2040/0/0) 32772600 1 swap wu 3 - 525 4.01GB (523/0/0) 8401995 2 backup wm 0 - 22521 172.53GB (22522/0/0) 361815930 3 unassigned wm 2566 - 4605 15.63GB (2040/0/0) 32772600 4 unassigned wm 0 0 (0/0/0) 0 5 unassigned wm 0 0 (0/0/0) 0 6 unassigned wm 0 0 (0/0/0) 0 7 home wm 4606 - 22521 137.24GB (17916/0/0) 287820540 8 boot wu 0 - 0 7.84MB (1/0/0) 16065 9 alternates wu 1 - 2 15.69MB (2/0/0) 32130
3はアンアサインでブート環境の0と同サイズ、つまりc0d0s3へ、今後LUのイメージを入れようと思っている部分です。
まずは最新のLUをインストールします。
isoファイルのマウント
# lofiadm -a /jpc/tmp/sol-nv-b87-x86-dvd.iso /dev/lofi/1 # mount -F hsfs /dev/lofi/1 /mnt
古いバージョンの消去。依存関係は出ますが、そのまま消去します。
pkgrm SUNWluu SUNWlucfg SUNWlur
次にインストール
cd /mnt/Solaris_11/Product pkgadd -d . SUNWlucfg SUNWlur SUNWluu
現在のブート環境をSXCE70とします。これはc0d0s0に格納されています。再起動後はc0d0s3となり、ブート環境をSXCE87と呼ぶことにします。
私のシステムでは、すべてのs0に入っていたので、次のようなコマンドを実行します。
lucreate -c 'SXCE70' -m '/:/dev/dsk/c0d0s3:ufs' -n 'SXCE87'
この例では、1台のディスクの別のところにブートイメージを作ったわけですが、他にもブート環境(/,/var,/etc,/opt,/usrのこと)のスライスをわっていたり、アップデートついでにソフトミラー化したり、別のディスクにしたり、いろいろできます。
そのほかの環境を知りたい場合は、下記のリンクからたぐってください。
lucreateの実行結果、
Discovering physical storage devices Discovering logical storage devices Cross referencing storage devices with boot environment configurations Determining types of file systems supported Validating file system requests Preparing logical storage devices Preparing physical storage devices Configuring physical storage devices Configuring logical storage devices Analyzing system configuration. No name for current boot environment. Current boot environment is named <SXCE70>. Creating initial configuration for primary boot environment <SXCE70>. The device </dev/dsk/c0d0s0> is not a root device for any boot environment; cannot get BE ID. PBE configuration successful: PBE name <SXCE70> PBE Boot Device </dev/dsk/c0d0s0>. Comparing source boot environment <SXCE70> file systems with the file system(s) you specified for the new boot environment. Determining which file systems should be in the new boot environment. Updating boot environment description database on all BEs. Searching /dev for possible boot environment filesystem devices Updating system configuration files. The device </dev/dsk/c0d0s3> is not a root device for any boot environment; cannot get BE ID. Creating configuration for boot environment <SXCE87>. Source boot environment is <SXCE70>. Creating boot environment <SXCE87>. Checking for GRUB menu on boot environment <SXCE87>. The boot environment <SXCE87> does not contain the GRUB menu. Creating file systems on boot environment <SXCE87>. Creating <ufs> file system for </> in zone <global> on </dev/dsk/c0d0s3>. Mounting file systems for boot environment <SXCE87>. Calculating required sizes of file systems for boot environment <SXCE87>. Populating file systems on boot environment <SXCE87>. Checking selection integrity. Integrity check OK. Populating contents of mount point </>. Copying.
ここでコピーが走るので、猛烈に時間がかかります。
どのぐらいパワーを使ってるかは裏で、iostatを使えば分かります。
Creating shared file system mount points. Creating compare databases for boot environment <SXCE87>. Creating compare database for file system </>. Updating compare databases on boot environment <SXCE87>. Making boot environment <SXCE87> bootable. Updating bootenv.rc on ABE <SXCE87>. Population of boot environment <SXCE87> successful. Creation of boot environment <SXCE87> successful.
これが成功例、もし失敗した場合は、ludeleteで削除する。手で削除するとはまるのでやってはいけない(汗
/mntはSXCE87のISOをmountした場所。DVD-ROMのメディアならばその箇所にする。
luupgrade -u -n SXCE87 -s /mnt
実行結果
Copying failsafe kernel from media. Uncompressing miniroot Uncompressing miniroot archive (Part2) 13364 ブロック Creating miniroot device miniroot filesystem is <ufs> Mounting miniroot at </mnt/Solaris_11/Tools/Boot> Mounting miniroot Part 2 at </mnt/Solaris_11/Tools/Boot> Validating the contents of the media </mnt>. The media is a standard Solaris media. The media contains an operating system upgrade image. The media contains <Solaris> version <11>. Constructing upgrade profile to use. Locating the operating system upgrade program. Checking for existence of previously scheduled Live Upgrade requests. Creating upgrade profile for BE <SXCE87>. Checking for GRUB menu on ABE <SXCE87>. Checking for x86 boot partition on ABE. Determining packages to install or upgrade for BE <SXCE87>. Performing the operating system upgrade of the BE <SXCE87>. CAUTION: Interrupting this process may leave the boot environment unstable or unbootable. Upgrading Solaris: 10% completed
書いてあるとおり、ここでインタラプトしてはいけない。それをすると、ludeleteをして最初からやり直しである。
そして、ここで100%になるまで時間がかかる。
Upgrading Solaris: 100% completed Installation of the packages from this media is complete. Deleted empty GRUB menu on ABE <SXCE87>. Adding operating system patches to the BE <SXCE87>. The operating system patch installation is complete. ABE boot partition backing deleted. Configuring failsafe for system. Failsafe configuration is complete. INFORMATION: The file </var/sadm/system/logs/upgrade_log> on boot environment <SXCE87> contains a log of the upgrade operation. INFORMATION: The file </var/sadm/system/data/upgrade_cleanup> on boot environment <SXCE87> contains a log of cleanup operations required. WARNING: <1> packages failed to install properly on boot environment <SXCE87>. INFORMATION: The file </var/sadm/system/data/upgrade_failed_pkgadds> on boot environment <SXCE87> contains a list of packages that failed to upgrade or install properly. INFORMATION: Review the files listed above. Remember that all of the files are located on boot environment <SXCE87>. Before you activate boot environment <SXCE87>, determine if any additional system maintenance is required or if additional media of the software distribution must be installed. The Solaris upgrade of the boot environment <SXCE87> is partially complete. Installing failsafe Failsafe install is complete.
まずは状況を確認する
lustatus
結果
Boot Environment Is Active Active Can Copy Name Complete Now On Reboot Delete Status -------------------------- -------- ------ --------- ------ ---------- SXCE70 yes yes yes no - SXCE87 yes no no yes -
ls Completeがyesであることを確認する。
SXCE87の準備ができたのでアクティブにする
luactivate SXCE87
結果
WARNING: <1> packages failed to install properly on boot environment <SXCE87>. INFORMATION: </var/sadm/system/data/upgrade_failed_pkgadds> on boot environment <SXCE87> contains a list of packages that failed to upgrade or install properly. Review the file before you reboot the system to determine if any additional system maintenance is required. Saving latest GRUB loader. Generating partition and slice information for ABE <SXCE87> Boot menu exists. Generating direct boot menu entries for ABE. Generating xVM menu entries for ABE. Generating direct boot menu entries for PBE. ********************************************************************** The target boot environment has been activated. It will be used when you reboot. NOTE: You MUST NOT USE the reboot, halt, or uadmin commands. You MUST USE either the init or the shutdown command when you reboot. If you do not use either init or shutdown, the system will not boot using the target BE. ********************************************************************** In case of a failure while booting to the target BE, the following process needs to be followed to fallback to the currently working boot environment: 1. Do *not* change *hard* disk order in the BIOS. 2. Boot from the Solaris Install CD or Network and bring the system to
Single User mode.
3. Mount the Parent boot environment root slice to some directory (like
/mnt). You can use the following command to mount:
mount -Fufs /dev/dsk/c0d0s0 /mnt
4. Run <luactivate> utility with out any arguments from the Parent boot environment root slice, as shown below: /mnt/sbin/luactivate 5. luactivate, activates the previous working boot environment and
indicates the result.
6. Exit Single User mode and reboot the machine. ********************************************************************** Modifying boot archive service GRUB menu is on device: </dev/dsk/c0d0s0>. Filesystem type for menu device: <ufs>. Activation of boot environment <SXCE87> successful.
成功したらしいが、最初に、1のパッケージが失敗しているというのが気になるので、書いてあるとおりにする
CDROMがマウントされてたらアンマウント
umount /mnt lofiadm -d /dev/lofi/1
新しいブートパーティションをマウント
mount /dev/dsk/c0d0s3 /mnt cat /mnt/var/sadm/system/data/upgrade_failed_pkgadds
結果
SUNWscmu
なにそれ?
pkginfo SUNWscmu system SUNWscmu Sun StorageTek Availability Suite Cache Management (usr)
関係がなさそうなので消そうとおもったら、依存関係がいろいろあるのでそのままリブート
init 6