nkjmkzk.net

powered by Kazuki Nakajima

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

without comments

Written by 中嶋 一樹

2月 20th, 2010 at 7:13 pm

Posted in Uncategorized

Tagged with ,

Leave a Reply