2008年06月25日

ubuntu on Gentoo

Xen環境にて、

・Domain0はGentoo
・DomainUにubuntu


という組み合わせがやっと実現できました!
苦労話はチラシの裏にでも書くとして、さっそく手順を。
GentooでのXen環境は完成しているという前提で話を進めます。

まずは下準備。
ubuntuのカーネルはPAE対応なので、XenおよびGentooのカーネル(Dom0/DomU両方)もPAE対応にしておく必要があります。XenはUSEフラグにpaeを指定して、
USE="pae" emerge -av app-emulation/xen

とすればOK。
カーネルに関しては、CONFIG_HIGHMEM64Gを有効にします。
Processor type and features --->
  High Memory Support --->
    (X) 64GB

カーネルの再構築をして、再起動すれば準備完了です。
(既にPAE対応の環境であれば上記作業は不要です)

それでは、いよいよubuntuの導入です。
基本的には以下のサイトを参考にさせていただきました。

Domain-Uの導入(Ubuntu 8.04) - MRK Laboratory
http://www.mrk.jp/wiki/index.php/Domain-U%E3%81%AE%E5%B0%8E%E5%85%A5(Ubuntu_8.04)

まずはubuntuで使うファイルシステムを作成します。
構成はあまり深く考えず、/ に6GB、swap に512MBとしました。
私の場合はLVMを使っているので以下のコマンドで作成します。
lvcreate -L6G -ndomU_ubuntu_root rootvg
mkfs.ext3 /dev/rootvg/domU_ubuntu_root
lvcreate -L512M -ndomU_ubuntu_swap rootvg
mkswap /dev/rootvg/domU_ubuntu_swap

続いてdebootstrapをインストールします。
emerge -av dev-util/debootstrap

debootstrapでベースとなるシステムのセットアップをします。
mount /dev/rootvg/domU_ubuntu_root /mnt
debootstrap --arch=i386 hardy /mnt http://archive.ubuntulinux.org/ubuntu/ /usr/share/debootstrap/scripts/gutsy

うまくいったらubuntuの環境にchrootします。
chroot /mnt

この時、
id: cannot find name for group ID 11

というエラーが表示されますがとりあえず気にしないことにします。
/etc/apt/sources.listを以下のとおり修正します。(太字が追加部分です)
deb http://archive.ubuntulinux.org/ubuntu hardy main universe

そうしたらwgetをインストールします。
apt-get update
apt-get install wget

次にXen対応のカーネルをインストールします。
公式リポジトリのカーネルだとネットワーク接続がうまく行かないので、以下のサイトで公開されているカーネルをインストールします。

Index of /~hiranotaka
http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/
wget http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb
dpkg --install linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb

Xenでパフォーマンスの問題を引き起こすtlsはOFFっておきましょう。
mv /lib/tls /lib/tls.disabled

Xenの仮想コンソールに対してgettyが立ち上がるようにしておきます。
sed 's/tty1/xvc0/' /etc/event.d/tty1 > /etc/event.d/xvc0

ついでにネットワークの設定もしておきます。
編集すべきファイルは/etc/network/interfacesです。
auto lo
iface lo inet loopback

auto eth0
iface eth0 inet static
address 192.168.0.10
netmask 255.255.255.0
gateway 192.168.0.1
あとはホスト名関連。とりあえずホスト名をhogehostとします。
まずは/etc/hostname。(ファイルは新規作成になるので注意)
hogehost.local

続いて/etc/hosts。(これも新規作成になります。不思議)
127.0.0.1 hogehost localhost

以上3つの内容は環境に合わせて適当に変更してください。

タイムゾーンは日本に変更しておきます。
cp /usr/share/zoneinfo/Japan /etc/localtime

/etc/fstabも書いておきましょう。
/dev/sda1 / ext3 noatime 0 1
/dev/sda2 none swap sw 0 0
完了したら、ubuntuの環境から出ます。
exit

そうしたらubuntuのカーネルとinitramfsをDom0のファイルシステムにコピーします。
cp /mnt/boot/vmlinuz-2.6.24-16-xen /boot/ubuntu.vmlinuz-2.6.24-16-xen
cp /mnt/boot/initrd.img-2.6.24-16-xen /boot/ubuntu.initrd.img-2.6.24-16-xen

そしてubuntu用のファイルシステムをumountします。
umount /mnt

Xenの設定ファイルを記述します。
kernel = "/boot/ubuntu.vmlinuz-2.6.24-16-xen"
ramdisk = "/boot/ubuntu.initrd.img-2.6.24-16-xen"
memory = 512
name = "xen-ubuntu"
vif = ['mac=00:16:3e:00:00:01, bridge=xenbr0']
disk = ['phy:rootvg/domU_ubuntu_root,sda1,w', 'phy:rootvg/domU_ubuntu_swap,sda2,w']
root = "/dev/sda1 ro"

ファイル名は/etc/xen/ubuntuとしましょう。(何でもいいんですが)

全ての準備が整いました。ubuntuを起動しましょう。
xm create -c ubuntu

"ubuntu on gentoo"環境のできあがり♪

文中でご紹介したサイトの他、以下のサイトも参考にさせていただきました。
(ありがとうございました!)

一人前のプログラマを目指す日記:xen - livedoor Blog(ブログ)
http://blog.livedoor.jp/matssaku/archives/cat_10014130.html

Yoichi's diary(2008-05-24)
http://yoichi.geiin.org/d/?date=20080524

Bug #204010 in xen-3.2 (Ubuntu): “networking not working”
https://bugs.launchpad.net/ubuntu/+source/xen-3.2/+bug/204010
posted by 月水和尚 (とも) at 16:57 | Comment(0) | TrackBack(0) | Xen/仮想化全般
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。