今さらといえば今さらですが、Solaris 10 上で既存の Solaris 8 環境を動かすべく検証してみました。
# flarcreate -n s8_0202 -c /var/tmp/Solaris8.flar※必要に応じて、-x オプションでアーカイブに不要なディレクトリを排除します。
上記の準備が終わったら、両ファイルとも Solaris 10 システムの適当な場所(/var/tmpなど)に置きます。
# pwd /var/tmp # ls Solaris8.flar s8containers-1_0-06-solaris10-sparc.tar.gzs8containers-1_0-06-solaris10-sparc.tar.gzファイルを解凍・展開し、パッケージをインストールします。
# gunzip s8containers-1_0-06-solaris10-sparc.tar.gz # tar xvf s8containers-1_0-06-solaris10-sparc.tar x s8containers-1_0-06, 0 bytes, 0 テープブロック x s8containers-1_0-06/Product, 0 bytes, 0 テープブロック x s8containers-1_0-06/Product/SUNWs8brandr, 0 bytes, 0 テープブロック ...(以下省略) # cd s8containers-1_0-06 # ls Legal Product # cd Product # ls SUNWs8brandr SUNWs8brandu SUNWs8p2v # pkgadd -d . SUNWs8brandr (出力省略) # pkgadd -d . SUNWs8brandu (出力省略) # pkgadd -d . SUNWs8p2v (出力省略)Solaris 8 ゾーンを作成します。IPアドレスはグローバルゾーンと重複しないように適当に割り当てています。
# zonecfg -z s8-zone s8-zone: そのような構成済みゾーンはありません 'create' を使用して、新しいゾーンの構成を開始してください。 zonecfg:s8-zone> create -t SUNWsolaris8 zonecfg:s8-zone> set zonepath=/zones/s8-zone zonecfg:s8-zone> set autoboot=true zonecfg:s8-zone> add net zonecfg:s8-zone:net> set address=172.17.40.202/16 zonecfg:s8-zone:net> set physical=e1000g0 zonecfg:s8-zone:net> end zonecfg:s8-zone> exit # # zoneadm list -cv ID NAME STATUS PATH BRAND IP 0 global running / native shared - s8-zone configured /zones/s8-zone solaris8 shared #あらかじめ準備しておいた Solaris 8 環境のフラッシュアーカイブ /var/tmp/Solaris8.flar を使用して、先ほど構成したゾーンにインストールをかけます。
# zoneadm -z s8-zone install -u -a /var/tmp/Solaris8.flar Log File: /var/tmp/s8-zone.install.850.log Source: /var/tmp/Solaris8.flar Installing: This may take several minutes... Postprocessing: This may take several minutes... Result: Installation completed successfully. Log File: /zones/s8-zone/root/var/log/s8-zone.install.850.log # zoneadm -z s8-zone boot # zlogin -C s8-zone [ゾーン 's8-zone' コンソールに接続しました] (Solaris 8 ゾーンの初期設定は省略。通常のゾーンとほぼ同じ質問に答えるだけです。)上記の設定をした後に、Solaris 8 ゾーンを再起動してログインします。 するとログに以下のようなメッセージがひたすら出ていることが確認できます。
# zlogin s8-zone [ゾーン 's8-zone' pts/3 に接続されました] Last login: Wed Apr 30 14:38:37 on pts/2 Sun Microsystems Inc. SunOS 5.8 Generic Patch October 2001 # # tail /var/adm/messages Apr 30 14:39:57 s8-zone kkcv: AF_UNIX bind(path: /dev/kkcv): Permission denied Apr 30 14:40:02 s8-zone cssd: [ID 602758 daemon.notice] starting ccv.sh (pid#20710) Apr 30 14:40:02 s8-zone cssd: [ID 179970 daemon.error] The process "kkcv.sh" has been exited with retcode#24320 Apr 30 14:40:02 s8-zone ccv: AF_UNIX bind(path: /dev/ccv): Permission denied Apr 30 14:40:07 s8-zone cssd: [ID 602758 daemon.notice] starting kkcv.sh (pid#20711) Apr 30 14:40:07 s8-zone cssd: [ID 179970 daemon.error] The process "ccv.sh" has been exited with retcode#24320 Apr 30 14:40:07 s8-zone kkcv: AF_UNIX bind(path: /dev/kkcv): Permission denied Apr 30 14:40:12 s8-zone cssd: [ID 602758 daemon.notice] starting ccv.sh (pid#20712) Apr 30 14:40:12 s8-zone cssd: [ID 179970 daemon.error] The process "kkcv.sh" has been exited with retcode#24320 Apr 30 14:40:12 s8-zone ccv: AF_UNIX bind(path: /dev/ccv): Permission denied上記エラーは日本語Solaris 8 環境をインストールイメージとして使用した場合に起こります。日本語インプットメソッド kkcv/ccv を利用しない時には、cssd(1M) を以下のように停止することにより、対応することが可能です。
(Solaris 8 ゾーン内で行う) # mv /etc/rc2.d/S90loc.ja.cssd /etc/rc2.d/_S90loc.ja.cssd # init 6今回はSolaris 8 ゾーン内でたいしたアプリを動かしていないので、上記設定でとりあえず問題なく Solaris 8 の稼動を確認できました。
# cat /etc/release Solaris 8 2/02 s28s_u7wos_08a SPARC Copyright 2002 Sun Microsystems, Inc. All Rights Reserved. Assembled 18 December 2001 # uname -a SunOS s8-zone 5.8 Generic_Virtual sun4v sparc SUNW,Sun-Fire-T200以下のように Solaris 10 のグローバルゾーンから Solaris 8 ゾーンのプロセスも通常とゾーンと同じように確認できます。inetd などは当たり前ですが、Solaris 8 のプロセスになっていますね。
# ps -efZ | grep inetd global root 239 1 0 13:55:30 ? 0:02 /usr/lib/inet/inetd start global root 21971 21921 0 16:21:40 pts/2 0:00 grep inetd s8-zone root 21653 1 0 14:44:57 ? 0:00 /usr/sbin/inetd -s # ps -efZ | grep syslogd global root 368 1 0 13:55:35 ? 0:00 /usr/sbin/syslogd s8-zone root 21684 1 0 14:44:57 ? 0:00 /usr/sbin/syslogd global root 21973 21921 0 16:21:53 pts/2 0:00 grep syslogd