Solaris,ZFSでいろいろ試してます

OpenSolaris 2009.06 がリリースされてからかなり経ちますが、
遅ればせながらいつもの pkg image-update をしたら起動時にpanicが出て
全く使えません。

しょうがないので updateは諦めて、空の boot environment に
新規インストールすることにしました。
参考にしたのは以下のblogです。ほぼそのまんまやっただけですが。
Nevada (SXCE) 環境から、OpenSolaris への移行について

zfs create で2009.06環境を入れるfilesystemを作成します。
作成したら beadm でBEとして認識されています。
# pkg set-authority -P opensolaris.org
# zfs create -o canmount=noauto rpool/ROOT/opensolaris_111
# zfs set mountpoint=/ rpool/ROOT/opensolaris_111
# beadm list
BE              Active Mountpoint Space  Policy Created
--              ------ ---------- -----  ------ -------
opensolaris     -      -          82.14M static 2009-02-13 22:27
opensolaris-1   NR     /          14.04G static 2009-03-13 20:37
opensolaris_111 -      -          19.0K  static 2009-10-25 00:10

/mnt にmountして、ここにpkg install します。
このあたりは参考にしたブログの通りです。
# beadm mount opensolaris_111 /mnt
# pkg image-create -f -F -p opensolaris.org=http://pkg.opensolaris.org/release/ /mnt
# pkg -R /mnt install SUNWcsd
DOWNLOAD                                    PKGS       FILES     XFER (MB)
Completed                                    1/1       15/15     0.01/0.01

PHASE                                        ACTIONS
Install Phase                                  53/53
PHASE                                          ITEMS
Reading Existing Index                           8/8
Indexing Packages                                1/1
# pkg -R /mnt install SUNWcs
DOWNLOAD                                    PKGS       FILES     XFER (MB)
Completed                                  20/20   3556/3556   58.44/58.44

PHASE                                        ACTIONS
Install Phase                              6412/6412
PHASE                                          ITEMS
Reading Existing Index                           8/8
Indexing Packages                              20/20
Optimizing Index...
PHASE                                          ITEMS
Indexing Packages                              21/21

# pkg -R /mnt install slim_install
DOWNLOAD                                    PKGS       FILES     XFER (MB)
Completed                                544/544 73781/73781 652.41/652.41

PHASE                                        ACTIONS
Install Phase                            104202/104202
PHASE                                          ITEMS
Reading Existing Index                           8/8
Indexing Packages                            544/544
Optimizing Index...
PHASE                                          ITEMS
Indexing Packages                            565/565
# pkg -R /mnt install entire
PHASE                                        ACTIONS
Install Phase                              1368/1368
PHASE                                          ITEMS
Reading Existing Index                           8/8
Indexing Packages                                1/1
その後、足りないpkgは "pkg list"(現在インストールされてるpkg)と
"pkg -R /mnt list" (新しいインストールしたpkg)の差分を見て、
インストールしておきます。

後は必要な設定を行います。
このあたりも参考にしたブログ参照のこと。
ある程度試行錯誤が必要な項目ですので、自力でやるには大変ですね。ありがたや。
# pkg -R /mnt set-authority --reset-uuid --no-refresh opensolaris.org
# cp /mnt/lib/svc/seed/global.db /mnt/etc/svc/repository.db   
# chmod 0600 /mnt/etc/svc/repository.db
# chown root.sys /mnt/etc/svc/repository.db

# cd /mnt/var/svc/profile
# ln -s ns_files.xml name_service.xml
# ln -s generic_limited_net.xml generic.xml
# ln -s inetd_generic.xml inetd_services.xml
# ln -s platform_none.xml platform.xml

# touch /mnt/etc/.UNCONFIGURED
# devfsadm -R /mnt -C
# bootadm update-archive -R /mnt

現在使ってる設定をコピーしておきます。
/var の下も必要なものがあればコピーしておきましょう。
新しいの起動してから、古いBEをmountしてコピーしてもいいです。
# cd /etc
# cp passwd shadow group rtc_config nodename hosts defaultrouter  /mnt/etc/
# cp power.conf resolv.conf nsswitch.conf hostname.rge0 vfstab  /mnt/etc/
# cp -pr ssh /mnt/etc/
# cp -pr /root /mnt/

最後に、/rpool/boot/grub/menu.lst を編集して新BE用のエントリを追加。
default 行も変更すれば次回自動起動がこのエントリになります。
title OpenSolaris 2009.06 snv_111 X86 text boot
findroot (pool_rpool,0,a)
bootfs rpool/ROOT/opensolaris_111
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive

以下のようになりました。
# beadm list
BE              Active Mountpoint Space  Policy Created
--              ------ ---------- -----  ------ -------
opensolaris     -      -          82.14M static 2009-02-13 22:27
opensolaris-1   N      /          14.04G static 2009-03-13 20:37
opensolaris_111 R      /mnt       3.38G  static 2009-10-25 00:10

# zfs list -r rpool/ROOT
NAME                         USED  AVAIL  REFER  MOUNTPOINT
rpool/ROOT                  24.5G  99.4G    18K  legacy
rpool/ROOT/opensolaris      82.1M  99.4G  4.45G  /
rpool/ROOT/opensolaris-1    13.4G  99.4G  11.5G  /
rpool/ROOT/opensolaris_111  3.38G  99.4G  3.38G  /

起動後の問題点として
  • 起動時 boot-archive で停止、svcadm clear boot-archive が必要だった
  • timezoneがPDTになっていた(JSTに設定後再起動してOK)
がありましたが、それ以外は問題なく起動しました。

参考にさせていただいたブログの作者さとうさんにこの場を借りて感謝いたします。
タグ

管理人/副管理人のみ編集できます