Views
Xenのインストール手順
Breezy-jaでXen 2.0.7を使うための手順です。以下のページを参考にしながら実際にインストールしてみた手順をまとめたものです。
1. Xenが依存するパッケージをインストール
以下のパッケージをインストールします。( XenFaq? - 6.1. What Debian packages do I need for Xen?を参照)
-
grub
-
bridge-utils
-
iproute
-
python
-
python-twisted
-
gcc-3.4
-
libcurl3
-
libcurl3-dev
-
zlib1g
-
zlib1g-dev
2. aptlineを追加してxenパッケージをインストール
/etc/apt/sources.listに以下の1行を追加します。 Xen-users Xen packages availible for Ubuntu and Debianのメールに書かれているaptlineは間違っていますので以下のをお使いください。
deb http://mirror.clarkson.edu/pub/distributions/xenophilia/xen-debs/ubuntu xen-stable mainその後
# apt-get update # apt-get install xenを実行して、xenパッケージをインストールします。
3. /boot/grub/menu.lstでホストOSの使用メモリ容量を適宜編集
debパッケージだけあって/boot/grub/menu.lstへのエントリ追加もやってくれるのですが dom0_memの値が65536と小さいので、例えば512MBにするなら524288などと書き換えます。
Linuxを再起動させてgrubのブートメニューで 「Xen(2.0.7)/Linux(2.6.11)--」を選択し、Xen対応カスタムカーネルで 起動します。
4. ゲストOSとしてttyLinuxを使う
ttyLinuxはとりあえずゲストOSが起動するかの動作確認をするための コンパクトなファイルシステムイメージになっています。
http://sourceforge.net/project/showfiles.php?group_id=86024 からttylinux-xen.bz2 をダウンロードして、解凍します。
# mkdir /etc/xen/images # bzip2 -cd ttylinux-xen.bz2 > /etc/xen/images/ttylinux-xenゲストOSの設定を以下の内容で/etc/xen/ttylinuxというファイルに作成します。
kernel = "/boot/xen/domU/vmlinuz-2.6.11.12-xenU" memory = 64 name = "ttylinux" nics = 1 ip = "1.2.3.4" disk = ['file:/etc/xen/images/ttylinux-xen,sda1,w'] root = "/dev/sda1 ro"memoryの値はゲストOSに割り当てるメモリ容量をMB単位で指定してください。
Xenのデーモンを起動
# /etc/init.d/xend startゲストOSを起動
# xm create /etc/xen/ttylinux -cすると起動した端末上でゲストOSが起動します。 しばらくするとログインプロンプトが出るのでroot/rootでログインします。
tty.local login: root Password: Chop wood, carry water. root@tiny ~ # ls /usr/bin ar dos2unix ldd openvt strings uudecode awk du lddlibc4 passwd tail uuencode basename env length patch tee wc bundle expr loadfont pkg telnet wget bunzip2 fdformat logger ppp-down tftp which bzcat find logname ppp-up top who cal free lsattr readlink tr whoami chattr ftp makeweb realpath traceroute xargs chvt head md5sum renice tty yes clear hexdump mesg reset unbundle cmp id mkfifo retawq uniq dc install nc seq unix2dos deallocvt killall nslookup setkeycodes unzip dirname last od sort uptime root@tiny ~ # ... (ゲストOS上でいろいろ操作) ...
ゲストOSを強制終了 (ホストOSの端末で実行)
# xm destroy ttylinuxそのあとゲストOSの端末に戻ってENTERを押すと以下のように表示されて、 ホストOSのプロンプトに戻ります。
************ REMOTE CONSOLE EXITED ***************** $
5. ゲストOSとしてDebian GNU/Linux sargeを使う
http://cosi.clarkson.edu/knowledge/workshops/sp05/installingxen/xen-tutorial.html#Installing%20Debian%20Linux あたりを参考に作業します。
1GBのルートパーティションイメージファイルと 512MBのスワップパーティションイメージファイルを作成します。
# dd if=/dev/zero of=/etc/xen/images/sarge-root.img bs=1024k count=1024 # dd if=/dev/zero of=/etc/xen/images/sarge-swap.img bs=1024k count=512 # mkfs.ext3 /etc/xen/images/sarge-root.img # mkswap /etc/xen/images/sarge-swap.img # mkdir /mnt/sarge # mount -o loop /etc/xen/images/sarge-root.img /mnt/sarge # apt-get install debootstrap # debootstrap --arch i386 sarge /mnt/sarge ftp://ftp.jp.debian.org/debianこれで、ゲストOSのルートパーティションイメージファイル /etc/xen/images/sarge-root.img にsargeがインストールされます。
さらにゲストOSとして動かすために以下のファイルについて設定を行います。
-
/etc/fstab
-
/etc/hostname
-
/etc/hosts
-
/etc/network/interfaces
-
/etc/apt/sources.list
# cd /mnt/sarge # vi etc/fstab以下のように書き換え。
/dev/sda1 / ext3 defaults 0 1 /dev/sda2 swap swap defaults 0 0 proc /proc proc defaults 0 0
# vi etc/hostname以下のように書き換え。
sarge-xen-guest
# vi etc/hosts以下の内容で作成。
127.0.0.1 localhost sarge-xen-guest
# vi etc/network/interfaces以下のように書き換え。
auto lo iface lo inet loopback auto eth0 iface eth0 inet dhcp
# vi etc/apt/sources.list以下の内容で作成。
deb ftp://ftp.jp.debian.org/debian sarge main contrib non-free deb http://security.debian.org/ sarge/updates main contrib non-free
lib/tlsを使われないようにします。 http://wiki.xensource.com/xenwiki/XenFaq#head-31ebe1eb6c34c5d4044559364d1048bf8ea1cae7 参照。
# mv lib/tls lib/tls.disabled
ttyを作成します。
# cd /mnt/sarge/dev # ./MAKEDEV tty1 tty2 tty3 tty4 tty5 tty6
一通り作業が終わったので、ゲストOSのルートパーティションイメージファイル /etc/xen/images/sarge-root.imgをアンマウントします。
# cd / # umount /mnt/sarge
XenのゲストOS用設定ファイルを作成します。
# vi /etc/xen/sarge
name="sarge" memory=256 kernel="/boot/vmlinuz-2.6.11-xenU" nics=1 disk=['file:/etc/xen/images/sarge-root.img,sda1,w','file:/etc/xen/images/sarge-swap.img,sda2,w'] root="/dev/sda1 ro"
sargeをゲストOSとして起動します。
# xm create /etc/xen/sarge -c以下のようにログインプロンプトが表示されたらroot(パスワードなし)でログインします。
Debian GNU/Linux 3.1 sarge-xen-guest tty1 sarge-xen-guest login:
なお、ゲストOSはDHCPでホストOSが見ているDHCPサーバーからIPアドレスを取得するようになっています。 IPアドレス取得後は、LAN上の別のマシンからゲストOSにもpingが通ります。
6. ゲストOSにgnomeとvncserverをインストールしてホストOSからvncviewerで接続。
ゲストOSにて。
# apt-get update # apt-get install x-window-system gnome-core gdm途中でデフォルトのディスプレイマネージャを選択する際はxdmではなくgdmを選択。 解像度の選択では1024x768を追加。
# vi /etc/gdm/gdm.conf以下の2箇所を変更
[xdmcp] Enable=true(falseをtrueに)
[servers] #0=Standard(コメントアウト)
gdmを起動
# /etc/init.d/gdm start
VNCサーバのインストール
# apt-get install vncserver
inetdからVNCサーバを起動するため以下の設定を行います。
# vi /etc/services
以下の行を追加
vnc 5900/tcp
# vi /etc/inetd.conf以下の行を追加
vnc stream tcp nowait nobody /usr/bin/Xvnc Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 24inetdを再起動します。
# /etc/init.d/inetd restart
一般ユーザを作成します。
# adduser userID/パスワードは適宜指定します。
# ifconfigを実行してゲストOSのIPアドレスを確認。
ホストOSにてvncviewerをインストールし起動します。
# apt-get install vncviewer # vncviewer
接続先入力ダイアログが表示されたらゲストOSのIPアドレスを入力します。 するとvncviewerのウィンドウが開きゲストOSのgdmのログイン画面が 表示されるのでさきほどゲストOSで作成したユーザID/パスワードを入力します。 これでゲストOSにログインできます。
XenのゲストOSルートパーティションイメージのサイズ拡張手順
ゲストOSにいろいろパッケージをインストールしたりしているとファイルシステムに空きがなくなってきます。そんなときは、以下の手順でパーティションイメージを拡張します。
1GBのルートパーティションイメージを2GBに拡張する例を示します。 ゲストOSを起動していない状態で作業します。
まず、イメージファイルの後にファイルを連結して、希望のサイズのイメージファイルを作成します。
# cd /etc/xen/images # mv sarge-root.img sarge-root.img.old # dd if=/dev/zero of=zero-1gb.img bs=1024k count=1024 # cat sarge-root.img.old zero-1gb.img > sarge-root.img
ファイルシステムのチェックを実行します。
# e2fsck -fv sarge-root.imgFix? <y>が出たらyを押しておきます。 ファイルシステムのリサイズを実行し、念のためファイルシステムのチェックを再度実行して問題が無いことを確認します。
# resize2fs sarge-root.img # e2fsck -fv sarge-root.img
新しいルートパーティションイメージでゲストOSを起動してみます。
# xm create /etc/xen/sarge -c
新しいルートパーティションイメージが問題なく使用できることを確認後、 ホストOSにて旧イメージと作業用ファイルを削除します。
# rm sarge-root.img.old zero-1gb.img