先日のUbuntu 7.04 XenでCentOS 4.3を導入した件は、その後、xm create -c /etc/xen/xen113.cfg を実行してみるものの、「Device 0 (vif) could not be connected. Hotplug scripts not working.」というエラーを出し続けたのでした。
その後で順調に動いていた他のdomUも停止後、同じメッセージを表示して起動しなくなった事がわかったので、dom0含めてマシンの再起動をかけて回復しました。
その後、.cfgファイルの"arch=i386"をコメントアウトして"arch=x86_64"な状態で"xen-create-image"を実行した直後も同じ状態になり、いまのところ原因がわからず対処療法的にCentOSなイメージを作成した後にマシンの再起動をしています。
"arch=i386"で作成したdomUは、起動してログインできるものの、"yum update"を実行した際に /usr/lib/python2.3/site-packages/rpmmodule.so を探しにいって見つからないとエラーになってしまいました。ログをみると、最初はi386なRPMファイルを導入して作ったイメージに最後でx86_64なアップデートを適用してしまったらしく、i386とx86_64のファイルが混在するという結果になってしまったようです。今回はCentOSを起動する事を優先して、i386はあきらめて、"arch=x86_64"で進めてみます。
前回までと同じように作成したarch=x86_64なイメージは、起動してログインできますが、"yum"コマンドすらみつからず、"rpm -qa"を実行しても何も表示されない動きをしていて、挙動がi386の時と少し違います。
うーん、これはどう理解すればいいのだろう。arch=x86_64で作ったイメージについて/var/log/xen-tools/のログをみると、RPMの導入で"failed"と表示されているところがあります。
....
python-elementtree is needed by yum-2.4.2-2.centos4.noarch
python-sqlite is needed by yum-2.4.2-2.centos4.noarch
urlgrabber is needed by yum-2.4.2-2.centos4.noarch
+ die 'command "rpm --install --root /tmp/rqcJeEXkQO --dbpath /tmp/rqcJeEXkQO/var/lib/rpm centos-yumconf-4-4.5
.noarch.rpm yum-2.4.2-2.centos4.noarch.rpm"' failed
+ echo 'rpmstrap: critical error: command "rpm --install --root /tmp/rqcJeEXkQO --dbpath /tmp/rqcJeEXkQO/var/l
ib/rpm centos-yumconf-4-4.5.noarch.rpm yum-2.4.2-2.centos4.noarch.rpm" failed'
rpmstrap: critical error: command "rpm --install --root /tmp/rqcJeEXkQO --dbpath /tmp/rqcJeEXkQO/var/lib/rpm c
entos-yumconf-4-4.5.noarch.rpm yum-2.4.2-2.centos4.noarch.rpm" failed
....
これは依存関係に少し問題がありそうです。
/usr/lib/rpmstrap/scripts/centos4 を少し編集して、依存関係のあるモジュールを追加しました。さらに"vault.centos.org"は遅いので、理研のミラーサイトに古い4.3のイメージをみつけたので、このURLを追加して、依存関係のあるRPMの情報を追加しています。
$ diff centos4.20070910 centos4
37a38,39
> http://ftp.riken.jp/Linux/centos/4.3/os/i386/CentOS/RPMS/
> http://vault.centos.org/4.3/os/i386/CentOS/RPMS/
46a49,50
> http://ftp.riken.jp/Linux/centos/4.3/os/x86_64/CentOS/RPMS/
> http://vault.centos.org/4.3/os/x86_64/CentOS/RPMS/
262a267,271
> 52:sqlite-3.2.2-1.x86_64.rpm
> 52:expat-1.95.7-4.x86_64.rpm
> 52:python-urlgrabber-2.9.6-2.noarch.rpm
> 52:python-elementtree-1.2.6-4.x86_64.rpm
> 52:python-sqlite-1.1.6-1.x86_64.rpm
さて何とか起動しましたが、やっぱりうまく起動しない。
何かがエラーだと思ったら、/home/xen/domains 以下にある disk.img のサイズがおかしい。
"ls -l"でみると4GBの設定どおり表示されるのは良いとして、du -ks disk.img の結果が 0KBになっていました。うーん、これはわからない。"xen-delete-image"コマンドを実行してから同じ名前で作り直しているから、古いdisk.imgをXenがつかんだままだったりとかしたのか…。いまとなっては状況証拠しかみつからないので、"xen-delete-image"で作成したイメージを消してからマシンを再起動して、再びイメージの作成をやりました。
結果は…、無事にdomUでCentOSが起動して、yumコマンドも存在するし、"rpm -qa"の結果も正しそうです。"yum install gcc"でgccが導入できました。
vif周りのHotplugがちゃんと動かなくてイメージ作る度に、再起動が必要になるし、何かする前にちゃんと"xm destory "でdomUを停止したり、面倒な事が多いから、まだまだ実用には気をつける事が多いかな。…、だからXenSourcesがXen v4.0を売るのか…。うまく使いこなさないとだなぁ。