ubuntu10.04-x86_64-LTS-Lucid安装xen4.0.1
===============================================
author:yejingx
Sat, Jan 29, 2011
===============================================
#说明:
与ubuntu9.10上安装xen的方法不同,ubuntu10.04不再官方维护xen软件包,没有相应的xen-tools,
即使用第三方的也没有现成的Dom0内核。因此只能由源代码安装。
以下操作全部在超级用户下进行。
#安装步聚:
1.安装需要的包
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 python-dev
若是 Debian/Ubuntu 64bit 所需另外安裝套件
apt-get install gcc-multilib
2.下源Dom0内核源代码(大约350M)
cd /usr/src
git clone git://git.kernel.org/pub/scm/linux/kernel/git/jeremy/xen.git linux-2.6-xen
cd linux-2.6-xen
git checkout -b xen/stable-2.6.32.x origin/xen/stable-2.6.32.x
3.编译Dom0内核
change 'EXTRAVERSION' in Makefile to what you want.
make menuconfig # Enabled the dom0 support and the Xen backend as usual on Ubuntu 9.10
make -j(x)number_of_kernels
make modules_install install
chmod g-s /usr/src -R
make deb-pkg
dpkg -i ../linux-image*2.6.32.27*.deb
depmod 2.6.32.27
update-initramfs -c -k 2.6.32.27
4.下载xen4.0.1源代码并编译安装
cd /usr/src
hg clone http://xenbits.xensource.com/xen-4.0-testing.hg
cd xen-4.0-testing.hg
make xen tools stubdom
make install-xen
make install-tools PYTHON_PREFIX_ARG=
5.加入到自动启动脚本中
update-rc.d xend defaults 20 21
update-rc.d xendomains defaults 21 20
6.修改grub2 entry, reboot
menuentry "Xen 4.0.1 / Ubuntu 10.04 kernel 2.6.32.27" {
insmod ext2
set root='(hd0,7)'
multiboot (hd0,7)/boot/xen-4.0.1.gz dummy=dummy dom0_mem=1024M
module (hd0,7)/boot/vmlinuz-2.6.32.27 dummy=dummy nopat root=UUID=013228f1-cae3-4f2f-aa52-b025785d3aa6 ro console=tty0
module (hd0,7)/boot/initrd.img-2.6.32.27
}
注意:
-在grub2中必需加上dummy=dummy参数才能正常启动。
-dom0_mem必需足够大才能使Dom0正常启动,否则Dom0将不断自动重启。
7.检查是否安装成功
$ sudo xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 3713 4 r----- 6.4
8.安装DomU
8.1.HVM
DomU磁盘文件:
mkdir -p /xens/burkesys/
dd if=/dev/zero of=/xens/burkesys/diskimage.img bs=1024k count=1 seek=4000
dd if=/dev/zero of=/xens/burkesys/swapimage.img bs=1024k count=1 seek=512
mkfs.ext3 /xens/burkesys/diskimage.img
mkswap /xens/burkesys/swapimage.img
DomU配置文件:
kernel = "/usr/lib/xen/boot/hvmloader"
builder = 'hvm'
memory = 512
name = "LucidSRV"
vcpus = 1
#vif = [ 'type=ioemu, bridge=eth0' ]
disk = [ 'file:/xens/burkesys/diskimage.img,ioemu:hda,w',
'file:/home/yejingx/TomatoWinXP_SP3_V1.1.ISO,ioemu:hdc:cdrom,r']
device_model = '/usr/lib/xen/bin/qemu-dm'
vnc=1
vncviewer=1
sdl=0
boot='d'
#把boot='d'改为boot='c'就不会从光盘启动
8.2.利用vnc进行图形化管理
在/etc/xen/xend-config.sxp中开启
(vnc-listen '192.168.0.xxx')
(vncpasswd '')
开启vnc服务
#vnc4server start
vncviewer 127.0.0.1:590x #远程
8.3.Paravirtualization-Linux
8.3.1.分配磁盘空间
LVM方式:
pvcreate /dev/sda7
vgcreate vmlinux01 /dev/sda7
lvcreate -n twister --size 2g vmlinux01
lvcreate -n twisterswp --size 512m vmlinux01
文件方式:
mkdir -p /xens/burkesys/
dd if=/dev/zero of=/xens/burkesys/diskimage.img bs=1024k count=1 seek=1000
dd if=/dev/zero of=/xens/burkesys/swapimage.img bs=1024k count=1 seek=512
格式化磁盘:
mkfs.ext3 /dev/vmlinux01/twister
mkswap /dev/vmlinux01/twisterswp
mount -o loop /dev/main-vol2/twister /mnt
//mount -o loop ubuntu-10.04.1-server-amd64.iso /tmp/ubuntu
//debootstrap --arch amd64 lucid /mnt file:/tmp/ubuntu/ubuntu/
debootstrap --arch amd64 lucid /mnt http://archive.ubuntu.com/ubuntu
mv /mnt/lib/tls /mnt/lib/tls.disabled
cp /etc/apt/sources.list /mnt/etc/apt/
vi /mnt/etc/apt/sources.list
cp -a /lib/modules/2.6.32.24-xen-domU /mnt/lib/modules
cp /etc/resolv.conf /mnt/etc/
cp /etc/network/interfaces /mnt/etc/network/
vi /mnt/etc/network/interfaces
#To use Specific IP address - edit the /mnt/etc/network/interfaces manually.
#To use DHCP, edit and include the following:
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet dhcp
vi /mnt/etc/hostname # echo 'hostname' > /mnt/etc/hostname
vi /mnt/etc/fstab
proc /proc proc defaults 0 0
/dev/xvda1 / ext3 defaults,errors=remount-ro 0 1
/dev/xvda2 none swap sw 0 0
umount /mnt
8.3.2.创建DomU配置文件
vi /etc/xen/burkesys
kernel = "/boot/vmlinuz-2.6.16-1-xen-k7"
ramdisk = "/boot/initrd.img-2.6.16-1-xen-k7"
memory = 192
name = "Domain-1"
vif = ['bridge=xenbr0']
#File Based:# disk = ['file:/xens/burkesys/diskimage.img,sda1,w','file:/xens/burkesys/swapimage.img,sda2,w']
disk = ['phy:/dev/main-vol2/twister,xvda1,w', 'phy:/dev/main-vol2/twisterswp,xvda2,w']
#DHCP - remove the ip, gateway and netmask lines, and include:# dhcp = "dhcp"
ip = "ip add"
gateway = "ip add"
netmask = "255.255.0.0"
root = "/dev/xvda1 ro"
extra = 'console=hvc0 xencons=tty'
ln -s /etc/xen/Domain-1 /etc/xen/auto/Domain-1
//link in the config file so that the Virtal Machine starts on Bootup of Dom0
xm create Domain-1 -c vmid=1
#注意:
1. 如果安装过旧版的xen3.3,则需要装它删除,否则xen4.0与xen3.3的tools可能不匹配而出错:
ERROR (SrvDaemon:347) Exception starting xend ((13, 'Pemission denied'))
2. 如果grub2不能成功引导Dom0,可以将grub2删除,改用grub。
$ sudo apt-get purge grub-pc
$ sudo rm /boot/grub/*
$ sudo apt-get install grub
$ sudo grub-install --recheck /dev/sda
$ sudo update-grub
$ sudo vi /boot/grub/menu.lst
但是如果你是双系统,grub装识别不出windows,此时需要手动在menu.lst中添加windows的引导:
title Windows Vista/Longhorn (loader)
root (hd0,0)
savedefault
makeactive
chainloader +1
#附
// Debian5.06 lenny下创建DomU
# vi /etc/apt/sources.list
deb http://http.us.debian.org/debian stable main contrib non-free
#deb http://non-us.debian.org/debian-non-US stable/non-US main contrib non-free
deb http://security.debian.org stable/updates main contrib non-free
# apt-get install xen-hypervisor-3.2-1-amd64 /
xen-linux-system-2.6.26-2-xen-amd64 xen-utils-3.2-1 /
xenstore-utils xenwatch xen-shell xen-tools
# vi /etc/modules
loop max_loop=64
# vi /etc/xen/xend-config.sxp
#(network-script network-dummy)
(network-script network-bridge)
# vi /boot/grub/menu.lst
...
title Xen 3.2-1-amd64 / Debian GNU/Linux, kernel 2.6.26-2-xen-amd64
root (hd0,0)
kernel /xen-3.2-1-amd64.gz dom0_mem=256M
module /vmlinuz-2.6.26-2-xen-amd64 root=/dev/mapper/vpsee-root ro console=tty0
module /initrd.img-2.6.26-2-xen-amd64
...
# reboot
# uname -r
2.6.26-2-xen-amd64
# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 256 2 r----- 9.3
# mkdir /vm
# xen-create-image --hostname=vm01 --size=10Gb --swap=512Mb --ide /
--ip=172.16.39.121 --netmask=255.255.254.0 --gateway=172.16.38.1 --force /
--dir=/vm --memory=512Mb --arch=amd64 /
--kernel=/boot/vmlinuz-2.6.26-2-xen-amd64 /
--dist=lenny --mirror=http://ftp2.de.debian.org/debian/ --passwd
# vi /etc/xen/vm01
kernel = '/boot/vmlinuz-2.6.26-2-xen-amd64'
ramdisk = '/boot/initrd.img-2.6.26-2-xen-amd64'
memory = '256'
root = '/dev/xvda2 ro'
disk = [
'file:/vm/domains/vm01/swap.img,xvda1,w',
'file:/vm/domains/vm01/disk.img,xvda2,w',
]
name = 'vm01'
vif = [ 'bridge=eth0' ]
dhcp = "dhcp"
on_poweroff = 'destroy'
on_reboot = 'restart'
on_crash = 'restart'
extra = 'console=hvc0 xencons=tty'
# xm create vm01
# xm console vm01
ln -s /etc/xen/vm01 /etc/xen/auto
#常见问题
1. ifdown: interface eth0 not configured
在/etc/network/interface中添加
auto eth0
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
network 192.168.1.0
gateway 192.168.1.1
/etc/init.d/networking stop
/etc/init.d/networking start
xend stop
xend start
#参考:
http://www.vpsee.com/2010/04/install-xen-on-ubuntu-from-source/
http://bderzhavets.wordpress.com/2010/04/24/set-up-ubuntu-10-04-server-pv-domu-at-xen-4-0-dom0-pvops-2-6-32-10-kernel-dom0-on-top-of-ubuntu-10-04-server/
http://wiki.kartbuilding.net/index.php/Create_DomU