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

OpenSolaris 2008.11 install @Atomでバックアップしておいた
Solaris snv_107 を OpenSolaris の rpool に戻して、デュアルブートにしてみます。

現在のrpool/ROOTは
# zfs list -r -t all rpool/ROOT
NAME                             USED  AVAIL  REFER  MOUNTPOINT
rpool/ROOT                      10.1G   128G    18K  legacy
rpool/ROOT/opensolaris          2.48G   128G  2.35G  /
rpool/ROOT/opensolaris@install   132M      -  2.21G  -

バックアップを戻します
# gunzip < rpool_ROOT_snv_107.backup.gz | zfs recv -vn rpool/ROOT/snv_107
receiving full stream of rpool/ROOT/snv_107@backup into rpool/ROOT/snv_107@backup
# gunzip < rpool_ROOT_snv_107_var.backup.gz | zfs recv -vn rpool/ROOT/snv_107/var
receiving full stream of rpool/ROOT/snv_107/var@backup into rpool/ROOT/snv_107/var@backup
# zfs list -r -t all rpool/ROOT
NAME                             USED  AVAIL  REFER  MOUNTPOINT
rpool/ROOT                      10.1G   128G    18K  legacy
rpool/ROOT/opensolaris          2.48G   128G  2.35G  /
rpool/ROOT/opensolaris@install   132M      -  2.21G  -
rpool/ROOT/snv_107              7.58G   128G  7.44G  legacy
rpool/ROOT/snv_107@backup       8.72M      -  7.44G  -
rpool/ROOT/snv_107/var           141M   128G   140M  legacy
rpool/ROOT/snv_107/var@backup   1.01M      -   140M  -

beadm list をしてみると、勝手に BE として認識してくれました。
# beadm list
BE          Active Mountpoint Space Policy Created
--          ------ ---------- ----- ------ -------
opensolaris NR     /          2.61G static 2009-02-13 22:27
snv_107     -      -          7.73G static 2009-02-20 22:37

GRUB boot menu (/rpool/boot/grub/menu.lst) は更新されてないようなので、
beadm activate で切り替えます。そうすると menu.lst にも追加されました。
# beadm activate snv_107
# beadm list
BE          Active Mountpoint Space Policy Created
--          ------ ---------- ----- ------ -------
opensolaris N      /          2.61G static 2009-02-13 22:27
snv_107     R      -          7.73G static 2009-02-20 22:37
# cat /rpool/boot/grub/menu.lst
splashimage /boot/grub/splash.xpm.gz
background 215ECA
timeout 30
default 2
#---------- ADDED BY BOOTADM - DO NOT EDIT ----------
title OpenSolaris 2008.11 snv_101b_rc2 X86
findroot (pool_rpool,0,a)
splashimage /boot/solaris.xpm
foreground d25f00
background 115d93
bootfs rpool/ROOT/opensolaris
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS,console=graphics
module$ /platform/i86pc/$ISADIR/boot_archive
#---------------------END BOOTADM--------------------

title OpenSolaris 2008.11 snv_101b_rc2 X86 text boot
findroot (pool_rpool,0,a)
bootfs rpool/ROOT/opensolaris
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive

title snv_107
bootfs rpool/ROOT/snv_107
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
#============ End of LIBBE entry =============

これで reboot すれば、無事 snv_107 が起動しました。
# uname -a
SunOS atom 5.11 snv_107 i86pc i386 i86pc
# df -h /
Filesystem             size   used  avail capacity  Mounted on
rpool/ROOT/snv_107     147G   7.4G   128G     6%    /
# zfs list -r -t all rpool/ROOT
NAME                             USED  AVAIL  REFER  MOUNTPOINT
rpool/ROOT                      10.1G   128G    18K  legacy
rpool/ROOT/opensolaris          2.48G   128G  2.35G  /
rpool/ROOT/opensolaris@install   132M      -  2.21G  -
rpool/ROOT/snv_107              7.59G   128G  7.44G  /
rpool/ROOT/snv_107@backup       14.5M      -  7.44G  -
rpool/ROOT/snv_107/var           141M   128G   140M  /var
rpool/ROOT/snv_107/var@backup   1.01M      -   140M  -

zpool status すると、「zpool upgrade できるよ!」って言われますが、
これをしたら OpenSolaris に戻れなくなります。GRUB も rpool を見つけられなくなるかも。
# zpool status
  pool: rpool
 state: ONLINE
status: The pool is formatted using an older on-disk format.  The pool can
        still be used, but some features are unavailable.
action: Upgrade the pool using 'zpool upgrade'.  Once this is done, the
        pool will no longer be accessible on older software versions.
 scrub: none requested
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          mirror    ONLINE       0     0     0
            c1d0s0  ONLINE       0     0     0
            c2d0s0  ONLINE       0     0     0

errors: No known data errors

残念ながら、snv_107 側ではOpenSolaris側をBEとして認識はされないようです。
# lustatus
Boot Environment           Is       Active Active    Can    Copy
Name                       Complete Now    On Reboot Delete Status
-------------------------- -------- ------ --------- ------ ----------
snv_107                    yes      yes    yes       no     -

OpenSolaris 側に戻すには、起動メニューで選んで、beadm activate すればOK。
このやり方で、BEのsnapshotを保存しておけば、簡単に戻せることにもなります。

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