SXCE 終了のお知らせが出てしまったわけですが、現在、SXCE を使っているが OpenSolaris への移行も考えなきゃ。という方、いらっしゃいますか?
さとうも SXCE 使いなのですが、OpenSolaris への移行方法を色々と考えていたりしますが、なんかうまい方法を考えられず。。。
思考錯誤した結果、SXCE 上で OpenSolaris の領域を確保し、そこに OpenSolaris をインストールして起動させる事ができましたので、どなたかこの方法をテストしてくださるという方がいるとうれしいです。
この方法なら、SXCE と OpenSolaris を dual boot させることができるので、ちょっとずつ OpenSolaris 側へ移行するが楽になったりと思っているのですが。。。
やってることは、単純で、
1. すでに SXCE が動作していることが前提
2. そこに rpool/ROOT/opensolaris を zfs create し IPS から、必要なファイルを流し込む
3. ゴニョゴニョして、rpoo/ROOT/opensolaris から起動させる
という流れとなります。
以下、手順となります。
#さとうは、SXCE b118 を使っていたので zpool version 16 となっているため 2009.06 は諦め、dev repository を参照するようにしました。
* 1. Nevada bxxx がインストールされたマシンを用意。十分な空き領域があることを確認する。
また、zpool version には注意すること。
現在の zpool version は、zpool get version rpool で確認できますが、表示
された version と同等か新しい version をサポートする OpenSolaris しか
インストールできません。
たとえば、rpool が version 16 になっていると、2009.06 はインストール
できても起動させることができません。
* 2. Nevada に pkg(5) 一式をインストールする。
pkg(5) のインストール方法は別項目を参照(一番下)
あるいは、以下から package を入手し pkgadd してください。
pkg コマンドが使えるようになります。
http://solaris.sunfish.suginami.tokyo.jp/blog/patch/pkg5-a12f41da2189.pkg.bz2
$ bzip2 -d pkg5-a12f41da2189.pkg.bz2
# pkgadd -d pkg5-a12f41da2189.pkg
* 3. OpenSolaris の領域を作成する
# zfs create -o canmount=noauto rpool/ROOT/opensolaris
* 4. 作成した領域を /mnt に手動 mount する
# mount -F zfs rpool/ROOT/opensolaris /mnt
* 5. pkg コマンドを使用できるようにするためのおまじない。
この処理では、/var/pkg に必要な directory や file を作成し、repository の登録を行っています。
pkg.opensolaris.org の dev repository を利用する場合
# pkg image-create -f -F -p opensolaris.org=http://pkg.opensolaris.org/dev /mnt
※この例は、dev repository を利用することを前提とする
* 6. pkg コマンドを実行した、IPS から、rpool/ROOT/opensolaris に必要な package をインストールする。
トータル 800MB くらいのデータ転送が発生するので、
お茶でも用意してマテ( ・∀・)っ旦
# pkg -R /mnt install SUNWcsd
# pkg -R /mnt install SUNWcs
# pkg -R /mnt install slim_install
# pkg -R /mnt install entire
※ きちんと、この 4 つをインストールすること。
SUNWcsd, SUNWcs だけだとダメ。足りないものが多すぎる。
install された package の確認は、
# pkg -R /mnt list
で、確認できる。
* 7. 5 で登録された repository の uuid 情報を新しいものに変更。
(この作業が絶対必要かどうかわかんない。。。)
# pkg -R /mnt set-authority --reset-uuid --no-refresh opensolaris.org
* 8. 続いて、rpool/ROOT/opensolaris に展開されたものを起動可能にする作業
* 8-1. SMF を起動できるように、下記の作業を行う
* 8-1-1. SMF repository の準備
SMF repository は、restore 時に用いる default の global.db から生成する
# 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
* 8-1-2. SMF を動かすために細工をする
# 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
* 8-2. device node が作成されるようにお掃除
※ファイルがないかもしれない。なければ、この部分はスルーで。
# rm /mnt/dev/null /mnt/dev/msglog
--
msglog と null がファイルとして存在しているため、devfsadm -C で skip
されてしまう。消しておくことで、正常な device node が作成される。
--
これがされていないと・・・起動時に起きる現象:
/lib/svc/method/svc-sysevented が /dev/msglog: cannot create [No such
file or directory] を出力して停止する。
--
* 8-3. OpenSolaris 起動時に、sys-unconfig が実行されるようにする。
初期設定は、sys-unconfig を使った方がよい。
# touch /mnt/etc/.UNCONFIGURED
* 8-3. /devices, /dev 配下の device node の link を作成
# devfsadm -R /mnt -C
* 8-4. boot archive の更新
# bootadm update-archive -R /mnt
※ この作業をする前に、必要な driver とかをあらかじめインストールして
おくのもアリ。だが、初めての場合は。余計なことはしないに限る。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※ふつーの人はすっ飛ばしてください※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
* 8-5. Nvidia chipset 搭載の MacBook, MacBook Pro only
ahci driver を利用する為の satokaz 専用作業
※ nevada でも ahci を使うように設定されている必要があるため
一般的ではないので解説は省略。
この作業をおこなったら、8-3, 8-4 を実行しておくこと。
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
※※※ふつーの人はすっ飛ばしてください※※※※※※※※※※※※※※※※※
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
* 9. grub の menu 登録
Nevada 側の grub を使う必要があるため、/rpool/boot/grub/menu.lst の最後に
下記のエントリを追加する。
title には、好きな文字列を。
findroot に記載される数字(パーティション)は、環境により異なるが、起動に利用
するパーティションは、すでに、インストールされた Nevada と同じ場所を利用する
ことになるので Nevada のエントリから流用するとよい。
pool_rpool の部分は、boot sign と呼ばれるが pool_rpool にしておけば rpool を
意味することになるのでこのままで。
bootfs には、3 で作成した dataset を指定する。
kernel$ と module$ は、このままでおk。
--
title opensolaris
findroot (pool_rpool,3,a)
bootfs rpool/ROOT/opensolaris
kernel$ /platform/i86pc/kernel/$ISADIR/unix -B $ZFS-BOOTFS
module$ /platform/i86pc/$ISADIR/boot_archive
--
* 10. /mnt を umount し、再起動
* 11, GRUB から、9 で作成したエントリを選択し起動。
作業に問題なければ、OpenSolaris が起動する。
X の起動は、少し時間がかかる場合があるかもしれないので根気よく待つべし。
--
・pkg の作り方
--
最新の pkg-gate は、curl-7.19.4 が必要なため、b111 以前の build では
make できない。
b111 or later な環境を用意するか、b111 or later な iso から SUNWcurl を抜き出し入れ替えるのが workaround。
* OpenSolaris 2009.06 or later であれば問題ない
--
まず、pkg コマンド一式を手に入れる必要がある。pkg コマンド一式は、pkg-gate repository から source を入手し build する必要がある。
1. Get pkg-gate from mercurial
$ hg clone ssh://anon@hg.opensolaris.org/hg/pkg/gate pkg-gate
続いて、build と install。
build 時は、network 経由でいくつかのファイルを取得するので注意。
2. Build pkg
$ PATH=/opt/SUNWspro/bin:$PATH; export PATH
$ cd pkg-gate/src
$ dmake
$ dmake packages
$ ../packages/i386
# su
# pkgadd -d pkg5.pkg
--
以下、おまけ
--
・pkg のテスト環境構築方法
# mkdir /test
とかして、
# pkg image-create -f -F -p opensolaris.org=http://pkg.opensolaris.org/dev /test
とすると、/test/var/pkg に情報が作成される
あとは、
# packagemanager -R /test
を実行すると、/test 配下を target にした packagemanager が起動