![]() |
LINUX |
Xenのビルド
*Xenを利用してバーチャルサーバを構成します
*xen-4.0.1-rc1(20100522現在)をソースからインストールし、設定します
*xen本体とlinux-2.6.18-xenを別々にビルドします
*stableなkernelソースは用意されていません
*デフォルトではlinux-2.6-pvopsをビルドします
*ビルドには /usrを含むディレクトリの空き領域が1.5Gバイト程度必要
*ビルド後は (空き容量の確保のため) 必要なファイルを残して、削除します
*make はメンテナンスマシンで行っています
*詳しい内容は Xen 4.0 release notes を参照して下さい
**以降はコメントです
*ソースの取得、削除は省略します
*エディタ、ファイラーの操作は省略します
*ソースを展開したら説明文 (英文) を読みましょう
*Enterキーを省略します
*ログイン端末で "#" はroot、"$" は一般ユーザのプロンプトの記号です
*設定ファイルで "#" で始まる行はコメントとして解釈されます
関連サイト| :xen-4.0-testing.hg | (http://xenbits.xensource.com/) |
| :linux-2.6.18-xen.hg | (http://xenbits.xensource.com/) |
| :mercurial-1.5.3.tar.gz | (http://www.selenic.com/) |
| :acpica-unix-20100428.tar.gz | (http://acpica.org/downloads/) |
参照ファイル
インストール環境| :OS | CentOS 5.5 |
| :selinux | disabled |
| :インストール先 | |
| :作業 | /usr/src |
| :言語 | LANG=en_US.UTF-8 |
| :ユーザー | rootで実行 |
*メンテナンスは一般ユーザから行います
Xenの構築に必要なパッケージ*基本的な、LINUXの起動に必要なパッケージは省きます
*参考 xen-3.0.3-105.el5.src.rpm
xenのmakeに必要libidn-devel, zlib-devel, curl-devel, libX11-devel, gtk2-devel, python-devel, ncurses-devel, libaio-devel, pciutils-devel, udev, dev86, gettext, gnutls-devel, openssl-devel, flex, bison
Xenの実行に必要bridge-utils, hotpllug or udev, iproute, python, zlib, openssl
GUI環境・ドキュメントの作成に必要*ドキュメントを作成しない方針です
SDL-devel, transfig, texi2html, ghostscript, tetex-latex, perl
stubdomの作成に必要*makeの進行中にwgetでソースファイルを取得し、インストールします
*patchを当てているのでプレインストールではうまくいかないと思う
*ioemuを使わないのでstubdomを作成しない方針です
zlib, pciutils, newlib, lwip, grub, ocaml
xenソースファイル*mercurialを利用してダウンロードします
*インターネットに接続できる必要があります
mercurialのインストール# cd /usr/src # tar zxvf mercurial-1.5.3.tar.gz # cd mercurial-1.5.3 # make PREFIX=/usr install
Xenソースのダウンロード# cd /usr/src # hg clone http://xenbits.xensource.com/xen-4.0-testing.hg
*最新パッチを適用するには
# cd /usr/src/xen-4.0-testing.hg
# hg pull -u
kernelソースのダウンロード*デフォルトではgitコマンドでkernel.orgのレポジトリからソースを取得します
*make に KERNELS オプションを指定して変更できます
*本来は、xen-4.0-testing.hgの中にディレクトリが作られます
# cd /usr/src # hg clone http://xenbits.xensource.com/linux-2.6.18-xen.hg
*最新パッチを適用するには
# cd linux-2.6.18-xen.hg
# hg pull -u
iASL compilerのインストール*"tools/firmware/hvmloader/acpi"で要求されます
# cd /usr/src # tar zxvf acpica-unix-20100428.tar.gz # chown -R root:root acpica-unix-20100428 # cd acpica-unix-20100428/compiler # make # cp iasl /usr/local/bin
xen-4.0.1-rc1*xenとkernelを別々にインストールします
*uninstallを実行するとkernel (xen用) まで削除されます
# cd /usr/src # chown -R root:root xen-4.0-testing.hg # cd xen-4.0-testing.hg
*kernelソースへのリンクを作ります
# ln -s /usr/src/linux-2.6.18-xen.hg linux-2.6.18-xen.hg
*ioemu-dirを作成しておくと、ioemu-dir-findでエラーにならない
*ioemu(qemu-dm)を有効にする場合は、作成しない
# mkdir tools/ioemu-dir
*build環境のチェック
# cd tools/check # ./chk build
Checking check_crypto_lib: OK
Checking check_curl: unused, OK
Checking check_openssl_devel: OK
Checking check_python: OK
Checking check_python_devel: OK
Checking check_x11_devel: OK
Checking check_xgettext: OK
Checking check_xml2: unused, OK
Checking check_zlib_devel: OK
Checking check_zlib_lib: OK
*インストール環境のチェック
# cd tools/check # ./chk install
Checking check_brctl: OK
Checking check_crypto_lib: OK
Checking check_curl: unused, OK
Checking check_iproute: OK
Checking check_python: OK
Checking check_python_xml: OK
Checking check_udev: which: no udevadm in (/sbin)
OK
Checking check_xml2: unused, OK
Checking check_zlib_lib: OK
*udevadmまたはudevinfoが必要 (下記参照)
# cd /usr/src/xen-4.0-testing.hg
# vi Makefile # vi config/x86_32.mk # vi tools/blktap2/drivers/libaio-compat.h
# make world
# cd /usr/src/xen-4.0-testing.hg
# make uninstall
# make install
# cd ..
# cp -a xen-4.0-testing.hg xen-4.0.1-rc1
# cd xen-4.0.1-rc1
# rm -rf .hg
# cd ..
# tar cf xen-4.0.1-rc1-100522.tar xen-4.0.1-rc1/
# bzip2 xen-4.0.1-rc1-100522.tar
# rm -rf xen-4.0.1-rc1
*圧縮ファイルを展開して使う場合はオリジナル名に戻す
:xen-4.0-testing.hg/tools/check/check_udev
#!/bin/sh
# CHECK-INSTALL
. ./funcs.sh
case $OS in
OpenBSD|NetBSD|FreeBSD)
has_or_fail vnconfig
;;
Linux)
has /sbin/udevadm && \
udevver=`/sbin/udevadm info -V | awk '{print $NF}'`
[ -z "$udevver" ] && has_or_fail udevinfo && \
udevver=`udevinfo -V | awk '{print $NF}'`
[ "$udevver" -ge 59 ] 2>/dev/null || \
has hotplug || \
fail "udev is too old, upgrade to version 59 or later"
;;
*)
fail "unknown OS"
;;
esac
linux-2.6.18.8-xen*xenとkernelを別々にインストールします
*configファイルの作成に注意してください
*initrdファイルは "make install" の作業で作成されます
*grub.confに起動設定を書き込むので、xenに合わせて修正します
# cd /usr/src # chown -R root:root linux-2.6.18-xen.hg # cd linux-2.6.18-xen.hg # make mrproper
*configファイルの作成とコピー
*xenのディレクトリに戻り、configファイルを作ります
# cd /usr/src/xen-4.0-testing.hg # make linux-2.6-xen-config CONFIGMODE=menuconfig # cd build-linux-2.6.18-xen_x86_32 # cp .config /usr/src/linux-2.6.18-xen.hg
# cd /usr/src/linux-2.6.18-xen.hg
# vi Makefile
# make menuconfig
*config ファイルの修正 (参考)
*デフォルトではほとんどが静的なモデュールになっています
*次回からはこの config ファイルを使って make します
*Exit → Enterキーでセーブ画面
*セーブして終了
# make # make modules_install # make install
*/bootに下記のファイルが作成されているか確認
vmlinuz-2.6.18.8-xen
System.map-2.6.18.8-xen
initrd-2.6.18.8-xen.img
# cd /usr/src
# cp -a linux-2.6.18-xen.hg linux-2.6.18.8-xen
# cd linux-2.6.18.8-xen
# rm -rf .hg
# cd ..
# tar cf linux-2.6.18.8-xen-100522.tar linux-2.6.18.8-xen/
# bzip2 linux-2.6.18.8-xen-100522.tar
# rm -rf linux-2.6.18.8-xen
*圧縮ファイルを展開して使う場合はオリジナル名に戻す
moduleの修正*リンクの切れたシンボリックリンクの削除 (kernelソースを残す場合は省略)
# cd /lib/modules/2.6.18.8-xen # unlink build # unlink source
grub.confの修正
参考 makeのオプション設定# cd /usr/src/xen-4.0.0
*xensource.comのレポジトリからソースを取得してmakeします
# make KERNELS="linux-2.6-xen" world # make install
*xen,toolsを個別にmakeします
# make dist-xen # make install-xen # make dist-tools # make install-tools
*kernelを個別にmakeします
*linux-2.6.18-xen.hgを参照し、build-linux-2.6.18-xen_x86_32が作成され
*config ファイルとビルドされたバイナリファイルが置かれます
# make linux-2.6-xen-config CONFIGMODE=menuconfig # make linux-2.6-xen-build # make linux-2.6-xen-install
*imgファイルを手動で作成します
*オプションは自分の環境に合わせて調整します
# mkinitrd -v -f --with=ahci --with=aacraid --with=sd_mod \ --with=scsi_mod initrd-2.6.18.8.img 2.6.18.8 # cp initrd-2.6.18.8.img /boot
![]() |
Copyright(c) 528p.com All Rights Reserved. |

