如何从Ubuntu 6.06 LTS(Dapper Drake)中的二进制文件设置Xen 3.0
版本1.0
作者:ÁsgeirBjarni Ingvarsson <istari AT hlekkir DOT com>
最后编辑:2006年6月13日
安装和配置Xen的这种特殊方式只是我的阻力最小的路径。 还有许多其他可能的方式来配置系统。
1安装一个干净的基本服务器系统。
通常会像你一样安装Ubuntu。 我已经在hda上创建了3个分区,但是你可以用任何你喜欢的方式来完成。 当您编辑配置文件时,请牢记您的差异。
- hda1是交换
- hda2是2 GB,安装在/
- hda3是磁盘的其余部分,并安装为/ xen-images
2更新系统并安装Xen
2.1安装Xen并进行配置
打开一个根shell,所以你不必为每个命令键入sudo。
sudo -s
更新系统并安装nececary包。
apt-get update
apt-get upgrade
apt-get install iproute python python-twisted bridge-utils debootstrap
从XenSource下载并解压缩Xen 3.0压缩包。
tar xvf xen-3.0.1-install-x86_32.tgz
cd xen-3.0.1-install
./install.sh
检查错误消息 - 它应该对所有人说好。
接下来我们为新内核创建modules.dep和map文件。 (有关正确的内核版本,请参阅/ lib / modules
)
/sbin/depmod -a 2.6.16-xen
编辑/ etc / mkinitramfs / modules
并追加以下行:
loop max_loop=64
如果稍后用尽循环设备,只需增加max_loop并重建initrd。
创建一个initrd映像。 使用与以前相同的版本号。
cd /boot
mkinitramfs -o initrd.img-2.6.16-xen 2.6.16-xen
编辑/boot/grub/menu.lst
在Automagic部分之前放置以下行
title Xen 3.0 / XenLinux 2.6
kernel /boot/xen-3.gz
module /boot/vmlinuz-2.6-xen root=/dev/hda2 ro
module /boot/initrd.img-2.6.16-xen
使Xen启动并在系统启动时自动启动所选的guest虚拟机。 xend必须从之前开始,并且必须在xendomains之后停止。
update-rc.d xend start 30 2 3 4 5 . stop 31 0 1 6 .
update-rc.d xendomains start 31 2 3 4 5 . stop 30 0 1 6 .
禁用线程本地存储(请记住在每次更新后检查)
mv /lib/tls /lib/tls.disabled
2.2以后的解决方法可能不需要,但是我不得不这样做。
重命名xen-backend.rules
mv /etc/udev/rules.d/xen-backend.rules /etc/udev/rules.d/92-xen-backend.rules
确保/ var / run / xenstored
和/ var / run / xend
存在。 编辑/etc/init.d/xend
并在检查/ proc / xen / capabilities
之后插入以下行
if [ ! -d /var/run/xend ] ; then
mkdir -p /var/run/xend
fi
if [ ! -d /var/run/xenstored ] ; then
mkdir -p /var/run/xenstored
fi
编辑/etc/init.d/xendomains
并将LOCKFILE行更改为读取
LOCKFILE=/var/lock/xendomains
2.3为此部分完成所有重新启动。
当系统备份时,尝试以下命令来验证一切正常。
xm list
你应该看到类似的东西:
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 463 1 r----- 42.3
3配置来宾域
3.1创建磁盘映像并引导它们
为图像创建一个挂载点。
mkdir -p /xen-images/mnt
创建1 GB图像文件和500 MB交换文件,对于较大的图像增加计数。
dd if=/dev/zero of=/xen-images/guest_base.img bs=1024k count=1000
dd if=/dev/zero of=/xen-images/guest_base-swap.img bs=1024k count=500
更改映像文件的权限。 没有人可以访问您的Domain-0计算机,因为这将危及所有来宾域的安全性,但这是一个好主意,不影响Xen。
chmod 640 /xen-images/guest_base*
将guest_base.img
格式设置
为ext3,然后将guest_base-swap.img
格式化为swap。 当它说“/xen-images/guest_base.img不是块专用设备”时。 回答是,继续。
mkfs.ext3 /xen-images/guest_base.img
mkswap /xen-images/guest_base-swap.img
挂载客户映像并引导它。 您应该使用更接近您的镜像替换http://archive.ubuntu.com/ubuntu/。
mount -o loop /xen-images/guest_base.img /xen-images/mnt
debootstrap --arch i386 dapper /xen-images/mnt http://archive.ubuntu.com/ubuntu/
将您的/etc/apt/sources.list
复制到新映像
cp /etc/apt/sources.list /xen-images/mnt/etc/apt/
复制内核模块。
cp -dpR /lib/modules/2.6.16-xen /xen-images/mnt/lib/modules/
禁用线程本地存储。
mv /xen-images/mnt/lib/tls /xen-images/mnt/lib/tls.disabled
通过编辑/ xen-images / mnt / etc / network / interfaces
配置guest虚拟机的网络
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
# Uncomment this and configure after the system has booted for the first time
#auto eth0
#iface eth0 inet static
# address 192.168.0.101
# netmask 255.255.255.0
# broadcast 192.168.0.255
# gateway 192.168.0.1
# dns-nameservers 192.168.0.1
创建/ xen-images / mnt / etc / hosts
并使其看起来像这样。
127.0.0.1 localhost localhost.localdomain
127.0.0.1 guest
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
创建/ xen-images / mnt / etc / hostname
echo guest > /xen-images/mnt/etc/hostname
编辑/ xen-images / mnt / etc / fstab
这样看起来像这样。
proc /proc proc defaults 0 0
/dev/hda1 / ext3 defaults,errors=remount-ro 0 1
/dev/hda2 none swap sw 0 0
卸载图像。
umount /xen-images/mnt
如果你收到这个警告“umount:/ xen-images / mnt:设备忙”不用担心,这并不重要。
3.2启动基本映像以完成配置
为guest / etc / xen / baseimage
创建配置文件
# -*- mode: python; -*-
kernel = "/boot/vmlinuz-2.6.16-xen"
ramdisk = "/boot/initrd.img-2.6.16-xen"
memory = 128
name = "baseimage"
vif = ['bridge=xenbr0']
disk = ['file:/xen-images/guest_base.img,hda1,w','file:/xen-images/guest_base-swap.img,hda2,w']
ip = "192.168.0.101"
netmask = "255.255.255.0"
gateway = "192.168.0.1"
hostname = "baseimage"
root = "/dev/hda1 ro"
extra = "4"
开始客人
xm create baseimage -c
以root身份登录,并设置root密码。
启用影子密码。
shadowconfig on
创建/ etc / network / interfaces的备份
cp /etc/network/interfaces /etc/network/interfaces.bak
编辑/ etc / network / interfaces
并输入正确的值,以便您可以访问Internet
开始网络
ifup -a
安装软件包(如果需要,可以添加ubuntu-desktop等)。
apt-get update
apt-get install ubuntu-base configure-debian openssh-server
如果已更新,则禁用线程本地存储。
mv /lib/tls /lib/tls.disabled
以任何您喜欢的方式配置系统,我建议您尝试每个菜单项。 您应该在utils-> console-common之前使用utils-> console-data。
configure-debian
将您创建的新用户添加到/ etc / sudoers
visudo
停止网络
ifdown -a
将/ etc / network / interfaces
替换为备份副本。
mv /etc/network/interfaces.bak /etc/network/interfaces
您现在已经完成了设置基本图像,使其关闭。
4创建您的第一个来宾域
制作基本客人图片的副本。
cp /xen-images/guest_base.img /xen-images/guestdom1.img
cp /xen-images/guest_base-swap.img /xen-images/guestdom1-swap.img
为新客人制作一份/ etc / xen / baseimage
副本。
cp /etc/xen/baseimage /etc/xen/guestdom1
编辑/ etc / xen / guestdom1
并将名称,磁盘和主机名更改为以下值。
name = "guestdom1"
disk = ['file:/xen-images/guestdom1.img,hda1,w','file:/xen-images/guestdom1-swap.img,hda2,w']
hostname = "guestdom1"
您将要为您创建的每个新客人更改以下文件。
-
/ etc / hostname
-
/ etc / hosts
-
/ etc / network / interfaces
让客户端自动启动,并使Domain 0等待,然后再关闭。
ln -s /etc/xen/guestdom1 /etc/xen/auto/
或者如果要手动启动和停止客户机。
xm create guestdom1
有关更多信息,请查看Xen文档
参考文献:
https://www.youcl.com/info/7340
https://wiki.ubuntu.com/XenOnUbuntuBinaryInstall
http://www.ubuntuforums.org/showthread.php?t=178027
其他兴趣点:
https://wiki.ubuntu.com/XenVirtualMachine/XenOnUbuntuDapper
http://www.shorewall.net/Xen.html
http://www.shorewall.net/XenMyWay.html