OpenSolaris b133をOracle VM上でPVMとして作成する
OpenSolaris b133をPVM(準仮想マシン)64bitとしてOracle VM上にクリーンインストールする方法を紹介します。
リファレンス:Starting At The C
*最初にお断りしておきますがソコソコ面倒です。
まずはOpenSolaris b133のisoをダウンロードし、VM Serverの/OVS/iso_poolあたりに置いておきます。
[root@vmserver]# cd /OVS/iso_pool
[root@vmserver]# wget http://www.genunix.org/dist/indiana/osol-dev-133-x86.iso
まずVM ServerでこのVMを格納するためのディレクトリを任意の名前で作成しそのディレクトリに移動します。ここではosolとしています。
[root@vmserver]# mkdir /OVS/running_pool/osol [root@vmserver]# cd /OVS/running_pool/osol
次に仮想ハードディスクをファイルで作成します。Sparse形式で良いでしょう。ここでは推奨値の10GBにしています。(実際は9.8GBくらいになりちょっと足りないのでインストール時に警告がでる。が、無視。)
[root@vmserver]# dd if=/dev/zero of=system.img bs=1M count=1 seek=10000
VMの設定ファイルを作成します。この設定ファイルはインストール用で、インストール後には新しく作り直します。
[root@vmserver]# vi vm_install.cfg bootloader = '/usr/bin/pygrub' bootargs = '--kernel=/platform/i86xpv/kernel/amd64/unix --ramdisk=/platform/i86pc/amd64/boot_archive' name = 'osol' memory = 1024 on_reboot = destroy vif = [ 'type=netfront,bridge=xenbr0,mac=00:16:3e:00:00:52', ] disk = [ 'file:/OVS/iso_pool/osol-dev-133-x86.iso,xvdc:cdrom,r', 'file:/OVS/running_pool/osol/system.img,xvda,w', ]
VMを起動し、コンソールに接続します。
[root@vmserver]# xm create -c vm_install.cfg
言語とキーボード配列を選び、username:jack, password:jackでログインします。
DHCPサーバが動いている環境であればそのうちIPが割り当てられるのでしばらく待ってからifconfig等でIPを確認します。DHCPがない場合は自分で静的IPを割り当てます。IPが設定されたらコンソールを抜け、VNCのポート番号とパスワードを確認します。これは自動的に設定されているものです。
まずxm listコマンドでVMのdomain IDを確認し、次にxenstore-readコマンドでVNCの情報を取得します。
[root@vmserver]# xm list osol Name ID Mem VCPUs State Time(s) osol 15 1024 1 -b---- 32.3 [root@vmserver]# xenstore-read /local/domain/15/guest/vnc/port 5900 [root@vmserver]# xenstore-read /local/domain/15/guest/vnc/password bxukNvkb
ここまでで得たVMのIPアドレス、VNC Port番号、VNCパスワードをもって任意のVNCクライアントから接続します。すると通常OpenSolarisのインストールCDから起動したときと同じ画面にログインできます。画面左のショートカットから通常通りインストールウィザードを起動してインストールを進めてます。そして注意しなければいけないのは、インストールが「Finished」となってもすぐにRebootをしないことです。リブートの前にOpenSolaris上でターミナルを開いて以下の作業を行います。
[jack@osol]$ vi update-dom0.sh #/bin/bash dom0=$1 dompath=$2 unixfile=/platform/i86xpv/kernel/amd64/unix root=`pfexec beadm list -H | grep ';N*R;' | cut -d \; -f 1` mkdir /tmp/root pfexec beadm mount $root /tmp/root 2>/dev/null mount=`pfexec beadm list -H $root | cut -d \; -f 4` pfexec bootadm update-archive -R $mount scp $mount/$unixfile root@$dom0:$dompath/kernel.$root scp $mount/platform/i86pc/amd64/boot_archive root@$dom0:$dompath/ramdisk.$root pfexec beadm umount $root 2>/dev/null echo "Kernel and ramdisk for $root copied to $dom0:$dompath" echo "Kernel cmdline should be:" echo "$unixfile -B zfs-bootfs=rpool/ROOT/$root,bootpath=/xpvd/xdf@51712:a" [jack@osol]$ chmod 755 update-dom0.sh [jack@osol]$ ./update-dom0.sh vmserver1 /OVS/running_pool/osol (dom0のパスワードを訊かれるので入力する)
これが完了したらRebootボタンを押してリブートしてください。ただし実際にはリブートではなくシャットダウンされます。シャットダウンされたらvm.cfgを作成・編集します。
[root@vmserver]# vi vm.cfg name='osol' kernel='/OVS/running_pool/osol/kernel.opensolaris' ramdisk='/OVS/running_pool/osol/ramdisk.opensolaris' extra='/platform/i86xpv/kernel/amd64/unix -B zfs-bootfs="rpool/ROOT/opensolaris",bootpath="/xpvd/xdf@51712:a"' memory=1024 vif= [ 'type=netfront,bridge=xenbr0,mac=00:16:3e:00:00:52', ] disk= [ 'file:/OVS/running_pool/osol/system.img,xvda,w', ]
これでインストールは完了です。vm_install.cfgは削除してしまって構いません。新しく作成した設定ファイルで起動してみてください。
[root@vmserver]# xm create -c vm.cfg
GUIにログインしたい場合は以下のようにVM上でVNC Serverを起動してから任意のVNCクライアントで接続すればOKです。適切なIPアドレス設定を忘れずに。
[nkjm@osol]$ vncserver