참고사이트: xen wiki http://wiki.xen.org/xenwiki/Xen4.1
Linux Kernel 3.0 버전부터는 Xen이 통합되어 있어 별도의 수정된 커널 소스 코드를 받지 않아
도 됩니다.
Linux kernel 3.1 버전은 아직 stable이 아닌 관계로 (GUI 환경으로 부팅 실패) 3.0 버전을 사용하였습니다.
설치환경
OS: Ubuntu 10.04 Desktop
Linux Kernel version: 3.0.8
Xen version: 4.1.2
필요한 패키지 설치
# sudo apt-get install libcurl4-openssl-dev xserver-xorg-dev mercurial gitk \
build-essential libncurses5-dev uuid-dev gawk gettext texinfo bcc \
libncurses5-dev dpkg-dev debhelper iasl texinfo bridge-utils bison flex
# sudo apt-get build-dep xen-3.3
Linux Kernel 3.0 source 다운로드
# sudo wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.8.tar.bz2
# sudo tar xvf linux-3.0.8.tar.bz2
커널 빌드 환경설정이 xen에 맞게 이루어져있으나 몇가지를 수정하여야 합니다.
.config 파일 중 아래 항목을 수정합니다.
CONFIG_XEN_BLKDEV_BACKEND=m
CONFIG_XEN_NETDEV_BACKEND=m
커널 빌드 (X : CPU core 개수)
# sudo make menuconfig
"Load an Alternate Configuration File"을 선택한 후 다운로드 받은 환경설정 파일 입력
# sudo make -jX
# sudo apt-get install kernel-package fakeroot
# export CONCURRENCY_LEVEL=(number_of_cores) +1
# sudo make-kpkg clean
# sudo fakeroot make-kpkg --initrd kernel-image kernel-headers
# sudo dpkg -i ../linux-image-3.0.8_3.0.8-10.00.Custom_amd64.deb
/etc/modules 수정 - 다음 내용 추가
# Added these lines
xen-evtchn
xen-gntdev
xen-netback
xen-blkback
xenfs
blktap
initrd 이미지 생성
# sudo update-initramfs -c -k 3.0.8
Xen 4.1.2 다운로드
# cd /usr/src
# sudo wget http://bits.xensource.com/oss-xen/release/4.1.2/xen-4.1.2.tar.gz
# sudo tar xvf xen-4.1.2.tar.gz
# cd xen-4.0.3
패치 적용 - tools/hotplug/Linux/xen-backend.rules 파일에 다음 내용 추가
KERNELS=="xen", KERNEL=="xvd*", SUBSYSTEM=="block", OPTIONS+="last_rule"
Xen 컴파일 (X : CPU core 개수)
# sudo make -jX xen
# sudo make -jX tools
# sudo make -jX install-xen
# sudo make -jX install-tools PYTHON_PREFIX_ARG=
xencommons, xend, xendomains 설치
# update-rc.d xencommons defaults 19 18
# sudo update-rc.d xend defaults 20 21
# sudo update-rc.d xendomains defaults 21 20
부트로드로 Grub1과 Grub2를 선택할 수 있습니다. 두 가지 중 하나를 선택하시면 됩니다.
Ubuntu 10 버전에서는 기본적으로 Grub2가 채택되어 있습니다.
Grub1 사용 시 - Grub2 제거 및 Grub1 설치
# apt-get purge grub-pc
# apt-get install grub
# grub-install /dev/sda (ubuntu가 설치된 device)
# update-grub
# echo "grub hold" | sudo dpkg --set-selections
/boot/grub/menu.lst 수정 - 엔트리 추가
엔트리 제일 위에 추가하여 자동으로 xen이 부팅되도록 합니다. (default: 0)
uuid는 다른 엔트리를 참고하여 똑같이 작성합니다.
title Xen 4.1.2 / Ubuntu 10.04, kernel 3.0.8
uuid 0b623110-2136-4111-9e03-a8d58d6d13de
kernel /boot/xen-4.1.2.gz
module /boot/vmlinuz-3.0.8 root=UUID=0b623110-2136-4111-9e03-a8d58d6d13de ro console=tty0
module /boot/initrd.img-3.0.8
quiet
Grub2 사용 시
/etc/grub.d/40_custom 마지막 부분에 다음 내용 추가
(hd0,1) 부분에는 자신의 리눅스가 설치된 하드디스크로 변경합니다.
menuentry "Xen 4.1.2 / Ubuntu 10.04 kernel 3.0.8" {
insmod ext2
set root='(hd0,1)'
multiboot (hd0,1)/boot/xen-4.1.2.gz dummy=dummy dom0_mem=1024M
module (hd0,1)/boot/vmlinuz-3.0.8 dummy=dummy root=/dev/sda1 ro console=tty0
module (hd0,1)/boot/initrd.img-3.0.8
}
수정한 grub 내용 반영
재부팅 - 추가한 엔트리 선택
/etc/default/grub 수정
(grub2 관련 설정을 변경하여 추가한 엔트리가 자동으로 부팅하도록 변경하면 편리합니다.)
xen 설치 확인