Personal tools
You are here: Home Wiki HowToUseXen
Views

Edit history

Log note :
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
}}}

Powered by Plone, the Open Source Content Management System

This site conforms to the following standards: