2009年11月15日日曜日

Installation of Xen 3.4.2 with Ubuntu as Dom0

そうだXenをインストールしよう。

ということで、仮想化の流行に追随(今更・・・)し、Xenを使ってみることにしました。「Ubuntuだからパッケージが揃ってるだろう」と思っていたら、Ubuntu 9.10には今のところパッケージは無く、ソースから入れることに。

Xen 3.4.2のtar ballをダウンロードし、READMEを読みます。ずいぶんいろいろprerequisitesが必要なようですが、「make world → 失敗 → 足りないものをインストール → make world → ...」戦略でやってみます。

結局、
  • gawk
  • gettext
  • bin86
  • bcc
  • python2.6-dev
  • texinfo
が必要でした。これでビルドは成功。
続いてinitrdを作成します。これもREADMEの通り・・・ですが、出力ファイル名(initrd.img-...)を既存のinitrdに合わせます。Debian系(だけ?)はmkinitrdではなくてmkinitramfsを使うので注意しましょう。
# depmod 2.6.18.8-xen
# mkinitramfs -o initrd.img-2.6.18.8-xen 2.6.18.8-xen
ここまででインストールは終了。

さて、次はXenカーネルを起動するために、GRUBの設定をいじります。そしてここに小さな罠が。Ubuntu 9.10からGRUB2になったらしく、フォーマットが分からない・・・。
GRUB2ドキュメントなどを調べつつ、/etc/grud.d/40_customに
menuentry "Xen 3.4" {
        recordfail=1
        if [ -n ${have_grubenv} ]; then save_env recordfail; fi
        set quiet=1
        insmod ext2
        set root=(hd0,5)
        search --no-floppy --fs-uuid --set af7c21bf-XXX
        multiboot /boot/xen-3.4.gz dom0_mem=512000
        module /boot/vmlinuz-2.6.18.8-xen root=UUID=af7c21bf-XXX ro console=tty0 rootdelay=90
        module /boot/initrd.img-2.6.18.8-xen
}
と書いてから、
# grub-mkconfig > /boot/grub/grub.cfg
でOKと判明。grub-mkconfigスクリプトは、/boot以下にあるカーネルをチェックして勝手にgrub.cfgに追加するみたいで、Dom0用のカーネル (vmlinuz-2.6.18.8-xen) も登録されてしまいましたが気にしない。

で、再起動し、GRUBメニューでXenを選べばOK・・・のはず・・・、
  1. udevdの起動で、"error getting signalfd" というエラーが出る
  2. ルートファイルシステムが見つからない、マウントできない
  3. initramfsのシェル(多分)に落ちる
となってしまいます。残念。
とりあえずここまで。続きはまた。

0 件のコメント:

コメントを投稿