changed:
-
= Xenのインストール手順 =
Breezy-jaでXen 2.0.7を使うための手順です。以下のページを参考にしながら実際にインストールしてみた手順をまとめたものです。
* [http://lists.xensource.com/archives/html/xen-users/2005-08/msg00765.html Xen-users Xen packages availible for Ubuntu and Debian]
* [http://cosi.clarkson.edu/knowledge/workshops/sp05/installingxen/xen-tutorial.html Installing Xen]
* [http://www.cl.cam.ac.uk/Research/SRG/netos/xen/readmes/user/user.html Xen User's manual]
* [http://wiki.xensource.com/xenwiki/XenFaq XenFaq]
== 1. Xenが依存するパッケージをインストール ==
以下のパッケージをインストールします。([http://wiki.xensource.com/xenwiki/XenFaq#head-fed1b310b70f97c7691d4cde77d653441dc4eeaf 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行を追加します。[http://lists.xensource.com/archives/html/xen-users/2005-08/msg00765.html 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 24
}}}
inetdを再起動します。
{{{
# /etc/init.d/inetd restart
}}}
一般ユーザを作成します。
{{{
# adduser user
}}}
ID/パスワードは適宜指定します。
{{{
# 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.img
}}}
Fix? <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
}}}