Xen インストール · 3 min read · Oct 08, 2025

Ubuntu 8.04 (Hardy Heron) サーバーに Ubuntu リポジトリから Xen をインストールする

Ubuntu 8.04 (Hardy Heron) サーバーに Ubuntu リポジトリから Xen をインストールする

バージョン 1.0
著者: Falko Timme

このチュートリアルでは、Ubuntu Hardy Heron (Ubuntu 8.04) サーバーシステム (i386) に Xen をインストールする手順を説明します。ここで使用するすべてのソフトウェアは Ubuntu リポジトリにあるため、外部ファイル(仮想マシンのネットワークを有効にするための固定 Ubuntu Xen カーネルを除く)やコンパイルは必要ありません。

Xen を使用すると、ホストオペレーティングシステム (dom0) の下にゲストオペレーティングシステム(Linux や FreeBSD などの *nix オペレーティングシステム)を作成できます。これらは「仮想マシン」または domU と呼ばれます。Xen を使用すると、アプリケーションを完全に独立した異なる仮想マシンに分離できます(例: メールサーバー用の仮想マシン、高トラフィックのウェブサイト用の仮想マシン、顧客のウェブサイトを提供する別の仮想マシン、DNS 用の仮想マシンなど)。これにより、同じハードウェアを使用しながらコストを削減でき、さらに重要なことに、より安全です。DNS サーバーの仮想マシンがハッキングされても、他の仮想マシンには影響がありません。さらに、仮想マシンを1つの Xen サーバーから別のサーバーに移動することもできます。

ホスト OS (dom0) には Ubuntu Hardy Heron (i386) を使用し、ゲストオペレーティングシステム (domU) には Ubuntu Hardy Heron と Ubuntu Gutsy Gibbon (7.10) を使用します。xen-tools を使用してインストールできる他の Debian ベースのディストリビューションには、Debian Etch、Debian Lenny、Debian Sid、Debian Sarge、Ubuntu Dapper Drake、Ubuntu Edgy Eft、Ubuntu Feisty Fawn があります。

このハウツーは実用的なガイドとして意図されています。理論的な背景については、他の多くの文書で扱われています。

この文書にはいかなる種類の保証もありません!これはこのようなシステムを設定する唯一の方法ではないことを言いたいです。この目標を達成する方法はたくさんありますが、これは私が取る方法です。これがあなたにとって機能するという保証はありません!

1 Ubuntu Hardy Heron ホストシステム (dom0) のインストール

ホストシステム (dom0) は、このチュートリアルの第1章から第10章に示されているようにインストールできます: https://www.howtoforge.com/perfect-server-ubuntu8.04-lts (もちろん、すでに使用したい Ubuntu 8.04 ホストシステムがある場合は、これを行う必要はありません)。

root としてログインしていることを確認してください(root になるには

sudo su

と入力します)。このチュートリアルのすべてのステップを root ユーザーとして実行する必要があります。また、このチュートリアルで推奨されているように vi をテキストエディタとして使用したい場合は、次のコマンドを実行してください。

apt-get install vim-full

vim-full パッケージは、vi テキストエディタが期待通りに動作することを保証します(vim-full がないと、vi テキストエディタで奇妙な動作が発生する可能性があります)。

AppArmor を無効にするのは良いアイデアです:

/etc/init.d/apparmor stop  
update-rc.d -f apparmor remove

dom0 の FQDN はこの例では server1.example.com になります。server1.example.com の IP アドレスはこのチュートリアルでは 192.168.0.100 で、使用するゲートウェイは 192.168.0.1 ですので、仮想マシンもそれを使用する必要があります。

2 Xen のインストール

Xen とすべての必要な依存関係をインストールするには、次のコマンドを実行するだけです:

apt-get install ubuntu-xen-server

これにより、後で仮想マシンを作成するために使用する xen-tools パッケージもインストールされます。

ubuntu-xen-server パッケージは Ubuntu カーネル 2.6.24-16-xen をインストールしますが、残念ながらこのカーネルには仮想マシンのネットワークが機能しないという厄介なバグがあります(https://bugs.launchpad.net/ubuntu/+source/xen-3.2/+bug/204010 および https://bugs.launchpad.net/ubuntu/+source/linux/+bug/218126 を参照)。幸いなことに、平野貴仁氏がこのカーネルをパッチし、修正されたバージョン(i386 および amd64 用)を http://www.il.is.s.u-tokyo.ac.jp/~hiranotaka/ で公開しています(元のリンクがいつか機能しなくなった場合に備えて、これらのパッケージのミラーを http://downloads.howtoforge.com/ubuntu_8.04_server_xen_from_repositories/ に作成しました)。自分のアーキテクチャに合った linux-image パッケージをダウンロードします(i386 または amd64)、例:

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

次に、Ubuntu 2.6.24-16-xen カーネルを次のように置き換えます:

dpkg -i linux-image-2.6.24-16-xen_2.6.24-16.30zng1_i386.deb

次に、次のようにします:

mv /lib/tls /lib/tls.disabled

システムを起動するたびにループモジュールをカーネルに追加する必要があるため、/etc/modules を編集します。すでにループ行がある場合は、次のようにしてください。そうでない場合は追加します:

vi /etc/modules

| [...] loop max_loop=64 [...] |

/boot ディレクトリを見て、どのカーネルと ramdisk がインストールされているかを確認します:

ls -l /boot/
root@server1:~# ls -l /boot/  
total 34380  
-rw-r--r-- 1 root root  426444 2008-04-10 18:55 abi-2.6.24-16-server  
-rw-r--r-- 1 root root   80203 2008-04-10 18:55 config-2.6.24-16-server  
-rw-r--r-- 1 root root   85149 2008-04-19 23:17 config-2.6.24-16-xen  
drwxr-xr-x 2 root root    4096 2008-05-06 15:19 grub  
-rw-r--r-- 1 root root 7323503 2008-04-24 11:47 initrd.img-2.6.24-16-server  
-rw-r--r-- 1 root root 7047843 2008-04-24 11:45 initrd.img-2.6.24-16-server.bak  
-rw-r--r-- 1 root root 7056979 2008-05-06 15:19 initrd.img-2.6.24-16-xen  
-rw-r--r-- 1 root root 7062168 2008-05-06 15:09 initrd.img-2.6.24-16-xen.bak  
-rw-r--r-- 1 root root  103204 2007-09-28 12:06 memtest86+.bin  
-rw-r--r-- 1 root root  933296 2008-04-10 18:55 System.map-2.6.24-16-server  
-rw-r--r-- 1 root root  883544 2008-04-19 23:17 System.map-2.6.24-16-xen  
-rw-r--r-- 1 root root 1987288 2008-04-10 18:55 vmlinuz-2.6.24-16-server  
-rw-r--r-- 1 root root 1730344 2008-04-19 23:17 vmlinuz-2.6.24-16-xen  
-rw-r--r-- 1 root root  370610 2008-04-11 03:16 xen-3.2.gz  
root@server1:~#

/boot/vmlinuz-2.6.24-16-xen カーネルは新しい修正された Xen カーネルであり、/boot/initrd.img-2.6.24-16-xen はその ramdisk です。これらはすぐに必要になります。

次に、/usr/lib/xen-tools ディレクトリを見て、xen-tools でどのディストリビューションが仮想マシンにインストールできるかを確認します:

ls -l /usr/lib/xen-tools
root@server1:~# ls -l /usr/lib/xen-tools  
total 36  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-4.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 centos-5.d  
-rwxr-xr-x 1 root root 4409 2008-04-06 03:12 common.sh  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 dapper.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 debian.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 edgy.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 etch.d -> debian.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-4.d -> fedora-core-6.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-5.d -> fedora-core-6.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 fedora-core-6.d  
lrwxrwxrwx 1 root root   15 2008-05-06 15:08 fedora-core-7.d -> fedora-core-6.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 feisty.d -> edgy.d  
drwxr-xr-x 2 root root 4096 2008-05-06 15:08 gentoo.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 gutsy.d -> edgy.d  
lrwxrwxrwx 1 root root    6 2008-05-06 15:08 hardy.d -> edgy.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 lenny.d -> debian.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 sarge.d -> debian.d  
lrwxrwxrwx 1 root root    8 2008-05-06 15:08 sid.d -> debian.d  
root@server1:~#

ご覧のとおり、次のディストリビューションをインストールできます:

  • Debian: Etch、Lenny (テスト)、Sid (不安定)、Sarge
  • Ubuntu: Dapper Drake、Edgy Eft、Feisty Fawn、Gutsy Gibbon、Hardy Heron
  • CentOS 4、CentOS 5
  • Fedora Core 4、5、6、Fedora 7
  • Gentoo

(CentOS、Fedora、Gentoo を xen-tools でインストールすることはまだ試していないので、どのように動作するかはわかりません。)

仮想マシンを /home/xen ディレクトリに保存したいので、今作成します:

mkdir /home/xen

仮想マシンを作成するために xen-tools を使用します。xen-tools は仮想マシンを作成するのを非常に簡単にします - 詳細についてはこのチュートリアルをお読みください: https://www.howtoforge.com/xen_tools_xen_shell_argo。前述のように、xen-tools パッケージは ubuntu-xen-server パッケージと一緒にインストールされました。

次に、/etc/xen-tools/xen-tools.conf を編集します。このファイルには、xen-create-image スクリプトで使用されるデフォルト値が含まれており、コマンドラインで他の値を指定しない限り使用されます。次の値を変更し、残りはそのままにしました:

vi /etc/xen-tools/xen-tools.conf

| [...] dir = /home/xen [...] dist = hardy # インストールするデフォルトのディストリビューション。 [...] gateway = 192.168.0.1 netmask = 255.255.255.0 broadcast = 192.168.0.255 [...] passwd = 1 [...] mirror = http://archive.ubuntu.com/ubuntu/ [...] |

dist 行には、仮想マシンにインストールしたいデフォルトのディストリビューションが含まれています。/usr/lib/xen-tools ディレクトリの内容は、どのディストリビューションが利用可能かを示しています(上記参照)。

kernel 行には、私たちの Xen カーネルを含める必要があり、initrd 行にはその ramdisk を含める必要があります。デフォルトの /etc/xen-tools/xen-tools.conf ファイルには、kernel = /boot/vmlinuz-uname -r と initrd = /boot/initrd.img-uname -r という値があり、これにより自動的に正しいカーネルと ramdisk に変換されるため、これらの行を変更する必要はありません。

passwd = 1 行により、新しいゲストドメインを作成する際に root パスワードを指定できます。mirror 行には、近くの Ubuntu ミラーを指定してください。

ゲートウェイとネットマスクを指定することを確認してください。指定しない場合、xen-create-image を使用する際にコマンドラインでゲートウェイとネットマスクを指定しないと、IP アドレスを指定してもゲストドメインにはネットワークがありません!

システムを再起動します:

reboot

システムが問題なく再起動すれば、すべてが正常です!

次のコマンドを実行します:

uname -r

新しい Xen カーネルが表示されるはずです:

root@server1:~# uname -r  
2.6.24-16-xen  
root@server1:~#
Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。