| # zonecfg -z test_zone test_zone: そのような構成済みゾーンはありません
 'create' を使用して、新しいゾーンの構成を開始します。
 | 
        
      
      ここでプロンプトが変わります。
      
      
3.test_zoneの作成
      
      
        
          
            | zonecfg:test_zone> create | 
        
      
       
      
      4.zone pathの設定
      簡単に説明すると、どこのディレクトリ配下にインストールするかということ。ZONEを作った後でdfコマンドで比較すると、最低150Mはあったほうが良さそうです。
      
      
        
          
            | # df -h
ファイルシステム     サイズ 使用済み 使用可能 容量      マウント先
/dev/md/dsk/d1         940M   282M   602M    32%    /
/devices                 0K     0K     0K     0%    /devices
ctfs                     0K     0K     0K     0%    /system/contract
proc                     0K     0K     0K     0%    /proc
mnttab                   0K     0K     0K     0%    /etc/mnttab
swap                   612M   984K   611M     1%    /etc/svc/volatile
objfs                    0K     0K     0K     0%    /system/object
/dev/md/dsk/d3         4.8G   3.3G   1.5G    70%    /usr
fd                       0K     0K     0K     0%    /dev/fd
/dev/md/dsk/d5         7.3G   964M   6.3G    14%    /var
swap                   611M   264K   611M     1%    /tmp
swap                   611M    56K   611M     1%    /var/run
/dev/md/dsk/d4         2.1G    32M   2.0G     2%    /opt
/dev/md/dsk/d6         658M   1.0M   598M     1%    /export/home
なので、/optにでも作ってみる。
zonecfg:test_zone> set zonepath=/opt/test_zone
*:/opt領域が余っているのでここで作ってみる。 | 
        
      
       
      
      5.共有ファイルシステムの設定
      デフォルトだと/lib、/platform、/sbin、/usrが大元のglobal zoneのディレクトリを共有するようです。指定はadd
      inherit-pkg-dirということらしい。例えば/optのExplorerというのも共有したい場合
      
      
        
          
            | zonecfg:test_zone> add inherit-pkg-dir
zonecfg:test_zone:inherit-pkg-dir> set dir=/opt/SUNWexplo
zonecfg:test_zone:inherit-pkg-dir> end | 
        
      
       
      です。後で気づいたのですが、/optも共有しておりました。ということで個人的にはZONEが全て終わってから共有ファイルを検討していったほうが良さそうです。
      
      ちなみに注意事項が書いてあって、「inherit-pkg-dir に登録された packaged
      software を保持するので、zoneadm で non-global zone がインストールされた後には、これらの
      packaged software を修正したり、削除することはできません」とのこと。ということはKJPなどのパッチ当てたらどうなるのだろう??という疑問が残った今日この頃。まあ、次に進む。
      
      
6.ファイルシステムの登録
      ちょっと理解しにくいので、手順にある通り実行(あとで調べる)。
      
      
        
          
            | zonecfg:test_zone> add fs
zonecfg:test_zone:fs> set dir=/usr/local
zonecfg:test_zone:fs> set special=/opt/local
「新たに仮想ファイルシステムとしてloopback file system(lofs)を設定します。」
って書いてある。よく分からんけどやってみる。
zonecfg:test_zone:fs> set type=lofs
zonecfg:test_zone:fs> end | 
        
      
       
      
      7.autoboot valueの設定
      global zone がブートしたら test_zoneもブートするか?の設定をする。デフォルトはfalseのよう。とりあえずtrueに設定してみる。
      
      
        
          
            | zonecfg:test_zone> set autoboot=true | 
        
      
       
      
      8.IPアドレスなどネットワークの設定
      後でもできると思いますが・・・NICのLANのポートが1つしかないのだが・・・仮想IPみたいなのでいけるのかな?って思いつつやってみる!
      
      
        
          
            | (ちなみにglobal zoneは)
# ifconfig -a
lo0: flags=2001000849<UP,LOOPBACK,RUNNING,MULTICAST,IPv4,VIRTUAL> mtu 8232 index 1
        inet 127.0.0.1 netmask ff000000
hme0: flags=1000843<UP,BROADCAST,RUNNING,MULTICAST,IPv4> mtu 1500 index 2
        inet 100.8.36.176 netmask ffffff00 broadcast 10.8.36.255
        ether 8:0:20:a7:e8:68
zonecfg:test_zone> add net
zonecfg:test_zone:net> set address=100.8.36.173
zonecfg:test_zone:net> set physical=hme0
zonecfg:test_zone:net> end | 
        
      
       
      
      9.リソースプールとの関連づけ
      これは難しそうなので、デフォルトで・・・
      
      
        
          
            | zonecfg:test_zone> set pool=pool_default | 
        
      
       
      
      10.Zone 環境での FSS の設定
      CPU の Share 数の指定?CPU1個しかないのに設定いるのか??試しにやってみる。
      
      
        
          
            | zonecfg:test_zone> add rctl
zonecfg:test_zone:rctl> set name=zone.cpu-shares
zonecfg:test_zone:rctl> add value (priv=privileged,limit=3,action=none)
zonecfg:test_zone:rctl> end | 
        
      
       
      
      11.コメントの登録
      これはいらないでしょう・・・。でもやっておくか・・・。
      
      
        
          
            | zonecfg:test_zone> add attr
zonecfg:test_zone:attr> set name=test_zone_comment
zonecfg:test_zone:attr> set type=string
zonecfg:test_zone:attr> set value="This System is Test Zone !!"
zonecfg:test_zone:attr> end
attr name test_zone_comment は無効です: 含めることができるのは、英数字、'-'、および '.' だけです。
zonecfg:test_zone:attr> set name=test-zone-comment
zonecfg:test_zone:attr> end | 
        
      
       
      やってみるもんですな。nameで「_」は使えないのか・・・。
      
      
12.設定内容の確認
      
      
        
          
            | zonecfg:test_zone> export
省略 | 
        
      
       
      
      13.整合性の検証、stable storage への書き込み、で終わり
      
      
        
          
            | zonecfg:test_zone> verify
zonecfg:MyZone:> commit
zonecfg:MyZone:> exit | 
        
      
       
      
      14.設定内容の確認とインストール
      さて、わくわくドキドキする瞬間ですね!!
      
      
        
          
            | # zoneadm list -vc
  ID NAME             STATUS         PATH
   0 global           running        /
   - test_zone        configured     /opt/test_zone
いるね!!では、インストール!!
# zoneadm -z test_zone install
zoneadm: zone 'test_zone': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default' 
に結合されません。
Preparing to install zone <test_zone>.
ERROR: Read-only file system: cannot create mount point </opt/test_zone/root/usr/local>
ERROR: cannot setup zone <test_zone> inherited and configured file systems
ERROR: cannot setup zone <test_zone> file systems inherited and configured from the global zone
ERROR: cannot create zone boot environment <test_zone>
zoneadm: zone 'test_zone': '/usr/lib/lu/lucreatezone' が終了コード 74 で失敗しました。
失敗したじゃん!! | 
        
      
      「cannot create mount point」がエラーなんでしょ?設定してよく分からなかったから(^^;)
      ということで、設定削除します。
      
      
      
        
          
            | zonecfg:test_zone> remove fs dir=/usr/local
zonecfg:test_zone> export
zonecfg:test_zone> verify
zonecfg:test_zone> commit
zonecfg:test_zone> exit
# zoneadm -z test_zone install
zoneadm: zone 'test_zone': ゾーンは incomplete です; uninstall が必要です。
???ゴミが残っているのか??アンインストールしてから再度してみる
# zoneadm -z test_zone uninstall
ゾーン test_zone を uninstall してよろしいですか (y/[n])? y | 
        
      
       
      
      
      
        
          
            | # zoneadm -z test_zone install
zoneadm: zone 'test_zone': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default'
 に結合されません。
Preparing to install zone <test_zone>.
Creating list of files to copy from the global zone.
Copying <2701> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1020> packages on the zone.
Initializing package <647> of <1020>: percent complete: 63%
順調に行ってるよう・・・・
Zone <test_zone> is initialized.
The file </opt/test_zone/root/var/sadm/system/logs/install_log> contains a log of the zone installat
ion.
とりあえず終わったようだ。だいたい10分くらいだったかな。
# zoneadm list -vc
  ID NAME             STATUS         PATH
   0 global           running        /
   - test_zone        installed      /opt/test_zone | 
        
      
       
      
      15.test_zoneの起動
      とりあえず動かしてみるしかないよね
      
      
        
          
            | # zoneadm -z test_zone boot
zoneadm: zone 'test_zone': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default' 
に結合されません。
zoneadm: zone 'test_zone': 警告: プール機能がアクティブではありません; ゾーンはプール 'pool_default' 
に結合されません。
# zoneadm list -vc
  ID NAME             STATUS         PATH
   0 global           running        /
   1 test_zone        running        /opt/test_zone
なんか警告(WARNING)は出たけど、起動できた。pingも通る。
 | 
        
      
       
      なんか、あっけないな・・・・とりあえずtelnetでログインしてみようっか・・・ってrootユーザしかないから、/opt/test_zone/root/etc/default/loginを編集してrootがtelnetでログインできるようにする。globalで編集したが、ログインできず。なんで????pingはOKだが、ftpができん。
      で、いろいろ調べてみると・・・・zlogin コマンドというを発見!tip接続イメージみたい(~.で抜けれる)
どうやら起動中のようです。
      しばらくすると・・・・インストールっぽい画面が・・・
      
      
      
        
          
            | *******************************************
Select a Language
  0. English
  1. Japanese
Please make a choice (0 - 1), or press h or ? for help:1
*******************************************
Select a Locale
  0. Japanese EUC (ja)
  1. Japanese EUC (ja_JP.eucJP)
  2. Japanese PC Kanji (ja_JP.PCK)
  3. Japanese UTF-8 (ja_JP.UTF-8)
  4. Go Back to Previous Screen
Please make a choice (0 - 4), or press h or ? for help:
*******************************************
省略
: | 
        
      
       
      
      
      
      
        
          
            | rebooting system due to change(s) in /etc/default/init
[NOTICE: Zone rebooting]
リブートしているみたいです・・・。
SunOS Release 5.10 Version Generic_118833-17 64-bit
Copyright 1983-2005 Sun Microsystems, Inc.  All rights reserved.
Use is subject to license terms.
Hostname: test-zone
:
起動完了!!さてdf打ってみますか!
 | 
        
      
       
      
      とりあえずdfコマンド実行
      
      
        
          
            | # df -h
ファイルシステム     サイズ 使用済み 使用可能 容量      マウント先
/                      2.1G   164M   1.9G     8%    /
/dev                   2.1G   164M   1.9G     8%    /dev
/lib                   940M   282M   602M    32%    /lib
/opt/SUNWexplo         2.1G   164M   1.9G     8%    /opt/SUNWexplo
/platform              940M   282M   602M    32%    /platform
/sbin                  940M   282M   602M    32%    /sbin
/usr                   4.8G   3.3G   1.5G    70%    /usr
proc                     0K     0K     0K     0%    /proc
ctfs                     0K     0K     0K     0%    /system/contract
swap                   558M   248K   558M     1%    /etc/svc/volatile
mnttab                   0K     0K     0K     0%    /etc/mnttab
fd                       0K     0K     0K     0%    /dev/fd
swap                   558M     0K   558M     0%    /tmp
swap                   558M    16K   558M     1%    /var/run | 
        
      
       
      
      ということで、ZONE(コンテナ)のインストールは、終わった。いろいろ実験してみたい気もするが、それは次回に!!