blogに書いたように、OpenSolaris 2009.06からOpenIndianaのimage-updateを行いましたが、
Gnomeまわりでトラブルがあり(metacityがcoreはいて落ちる等)、諦めてクリーンインストールの
形を取ることにしました。ただし、ディスク内のデータを消すわけにはいきませんので、
別のディスクにインストールして、そのROOTイメージをコピーする手法を取ります。
eSATAに接続した別のディスクにOpenIndiana Build 148を普通にインストールします。
特別なことは何もしません。その後、元々動いているOpenIndiana Build 148側で起動し、
インストールしたディスクを接続、名前を変えてimportします。
opool側はoi_148で作成されたためZPOOL version 28なのですが、
rpoolはかなり前からupgradeせずにversion 13のままだったので
このままではzfs version 5のzfs snapshotをコピーできません。
以前のversionから起動できなくなりますが、rpoolをupgradeします。
また、念のためgrubも最新のものを書きこんでおきます。
これで準備ができましたので、opool/ROOT/openindiana をrpoolにコピーします。
起動パーティション、ファイルシステムの確保を考えないでいいZFSだからできることです。
/rpool/boot/grub/menu.lst を編集して、oi_148を追加しておきます。
これで、beadmで見えるようになります。もはや起動しないのがほとんどですが。
あとは今使っている環境に関するファイルをコピーしておきます。
これで完了です。beadm activate oi_148 でoi_148から起動しました。
Gnomeまわりでトラブルがあり(metacityがcoreはいて落ちる等)、諦めてクリーンインストールの
形を取ることにしました。ただし、ディスク内のデータを消すわけにはいきませんので、
別のディスクにインストールして、そのROOTイメージをコピーする手法を取ります。
eSATAに接続した別のディスクにOpenIndiana Build 148を普通にインストールします。
特別なことは何もしません。その後、元々動いているOpenIndiana Build 148側で起動し、
インストールしたディスクを接続、名前を変えてimportします。
# zpool import pool: rpool id: 2464591733513819817 state: ONLINE status: The pool was last accessed by another system. action: The pool can be imported using its name or numeric id the '-f' flag. see: http://www.sun.com/msg/ZFS-8000-EY config: rpool ONLINE c25d1s0 ONLINE # zpool import -f 2464591733513819817 opool cannot mount '/export': directory is not empty cannot mount '/export/home': directory is not empty # zpool list NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT opool 37G 7.40G 29.6G 19% 1.00x ONLINE - rpool 149G 102G 46.7G 68% 1.00x ONLINE -^
opool側はoi_148で作成されたためZPOOL version 28なのですが、
rpoolはかなり前からupgradeせずにversion 13のままだったので
このままではzfs version 5のzfs snapshotをコピーできません。
以前のversionから起動できなくなりますが、rpoolをupgradeします。
また、念のためgrubも最新のものを書きこんでおきます。
# zpool upgrade rpool This system is currently running ZFS pool version 28. Successfully upgraded 'rpool' from version 13 to version 28 # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c23d0s0 stage2 written to partition 0, 275 sectors starting at 50 (abs 16115) stage1 written to partition 0 sector 0 (abs 16065) # installgrub /boot/grub/stage1 /boot/grub/stage2 /dev/rdsk/c24d0s0 stage2 written to partition 0, 275 sectors starting at 50 (abs 16115) stage1 written to partition 0 sector 0 (abs 16065)
これで準備ができましたので、opool/ROOT/openindiana をrpoolにコピーします。
起動パーティション、ファイルシステムの確保を考えないでいいZFSだからできることです。
# zfs snapshot opool/ROOT/openindiana@snap0 # zfs list -r -t all opool/ROOT/openindiana NAME USED AVAIL REFER MOUNTPOINT opool/ROOT/openindiana 3.47G 25.1G 3.45G / opool/ROOT/openindiana@install 18.3M - 3.38G - opool/ROOT/openindiana@snap0 0 - 3.45G - # zfs send opool/ROOT/openindiana@install | zfs recv -v rpool/ROOT/openindiana receiving full stream of opool/ROOT/openindiana@install into rpool/ROOT/openindiana@install received 3.49GB stream in 340 seconds (10.5MB/sec) # zfs send -I opool/ROOT/openindiana@install opool/ROOT/openindiana@snap0 | zfs recv -v rpool/ROOT/openindiana receiving incremental stream of opool/ROOT/openindiana@snap0 into rpool/ROOT/openindiana@snap0 received 123MB stream in 20 seconds (6.14MB/sec) # zfs set mountpoint=/ rpool/ROOT/openindiana cannot mount '/': directory is not empty property may be set but unable to remount filesystem # zfs rename rpool/ROOT/openindiana rpool/ROOT/oi_148
/rpool/boot/grub/menu.lst を編集して、oi_148を追加しておきます。
これで、beadmで見えるようになります。もはや起動しないのがほとんどですが。
# beadm list BE Active Mountpoint Space Policy Created -- ------ ---------- ----- ------ ------- oi_148 - - 3.49G static 2011-07-30 16:18 openindiana-148 NR / 15.71G static 2011-07-03 14:46 opensolaris - - 82.14M static 2009-02-13 22:27 opensolaris-1 - - 14.10G static 2009-03-13 20:37 opensolaris-134 - - 16.60M static 2011-07-03 00:11 opensolaris_111 - - 2.20M static 2009-10-25 00:10 snv_107 - - 7.76G static 2009-02-20 22:37
あとは今使っている環境に関するファイルをコピーしておきます。
# beadm mount oi_148 /mnt # 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/ # beadm umount oi_148
これで完了です。beadm activate oi_148 でoi_148から起動しました。
タグ