Fedora Core 5.0 用Xen虚拟Slackware
提要:目前xen虚拟 Linux、BSD及其它类Unix系统正火之时,趁热打铁,本人也在Fedora Core 5.0 上虚拟安装了Slackware 10.2;Xen 是一种基于内核的虚拟程序,所以Xen虚拟的操作系统占用资源更少,是极为轻量级的操作系统虚拟程序;本文以Fedora Core 5.0为基础平台,通过Xen虚拟Slackware 10.2 为例,来解说Xen的一般应用;
1、什么是Xen;
Xen 是一个基于操作系统内核的虚拟程序,是遵循GPL发行;她能在一套物理硬件上虚拟多个操作系统,其虚拟的操作系统是最接近原汁原味。由于她是基于内核的虚拟机,能和操作系统联系的更加紧密,能大大减少系统资源的占用率;Xen 是从事跨平台开发,网络测试的利器;
Xen 兼容操作系统,请参见:《Current OS Compatibility》
目前Xen 还不能对Windows的支持还在开发之中,对Linux、BSD等的支持没有太大的问题;
2、运行Xen的平台选择;
大多Linux发行版本及BSD的版本都有支持Xen,所以Xen目前是比较成熟的技术,因其遵循GPL发布,使得Xen在开源操作系统占用率只高不下。我这次选用的是Fedora Core 5.0;当然您也可以用其它操作系统,自己来编译安装Xen;
2.1 Xen的运行平台Fedora Core 5.0
Fedora Core 5.0的好处是在线就能升级安装支持Xen的内核软件包,所以就省却了自己编译安装Xen的麻烦;
2.2 为Fedora Core 5.0 安装支持Xen的内核;
安装支持Xen的内核比较简单,用yum 就可以在线安装,请参见:《关于Fedora Core 5.0 通过Yum在线升级说明》,先设置好yum的源,然后在线安装支持Xen的内核,您可以用yumex来点鼠标完成,当然也可以用命令行模式来安装,看自己的喜欢吧;
[root@localhost ~]# yum install kernel-xen0-2.6.16-1.2080_FC5
[root@localhost ~]# yum install kernel-xenU-2.6.16-1.2080_FC5
其中kernel-xen0-2.6.16-1.2080_FC5是虚拟机运行环境的内核,这个内核可以为虚拟的操作系统提供一个基础的虚拟硬件环境,比如虚拟网卡、显示卡等;而kernel-xenU-2.6.16- 1.2080_FC5内核是客户机所用的内核,也就是被虚拟的操作系统,要通过这个内核来引导;
安装好后,在/etc/grub.conf中以有类似如下一段(看看就行);
title Fedora Core (2.6.16-1.2080_FC5xen0)
root (hd0,6)
kernel /boot/xen.gz-2.6.16-1.2080_FC5
module /boot/vmlinuz-2.6.16-1.2080_FC5xen0 ro root=LABEL=/ rhgb quiet
module /boot/initrd-2.6.16-1.2080_FC5xen0.img
当我们重新引导系统时,要在GRUB的菜单上选择以这个内核来启动系统;
2.3 为Fedora Core 5.0 安装Xen;
我们可以在线通过yum来安装,请参考 :《关于Fedora Core 5.0 通过Yum在线升级说明》,先设置好yum的源,然后在线安装或升级Xen,您可以用yumex来点鼠标完成,当然也可以用命令行模式来安装,看自己的喜欢吧;我所用的Xen版本是xen-3.0.1-4;
[root@localhost ~]# yum install xen
2.31 确认Xen服务器的运行级别;
[root@localhost ~]# chkconfig --list |grep xend
xend 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
xendomains 0:关闭 1:关闭 2:关闭 3:启用 4:启用 5:启用 6:关闭
通过chkconfig 命令,我们得知xend和xendomains两个守护程序都在3(文本运行模式)和5(图形运行模式)都能自动运行;请详细看上面的输出。如果我们看到 xend和xendomains在3和5运行模式下关闭的,则要打开;您可以通过system-config-services或ntsysv来打开这两个守护程序;也可以用下面的简单办法 ;
[root@localhost ~]# chkconfig --level 35 xend on
[root@localhost ~]# chkconfig --level 35 xendomains on
2.32 Xen服务器的启动、停止的方法;
上面我们提到了当系统启动时,xend服务器会自动打开。如果我们修改配置文件或 xend有问题时,我们可能需要重启xend和xendomains服务器;下面是一个简单的说明,其它服务器的启动和停止也类似;对于Fedora Core 来说,我们经常用的服务器守护程序(也就是服务器程序的开关),大多都在/etc/init.d目录中;自己看看就好,如果您不懂。
[root@localhost ~]# /etc/init.d/xend start 注:启动
[root@localhost ~]# /etc/init.d/xend restart 注:重启
[root@localhost ~]# /etc/init.d/xend stop 注:停止
同理xendomains的启动、停止和重启也是相似的;
2.33 Xen和防火墙的关系的处理;
防火墙包括iptables和SELinux,我是建议把他们关掉,如果您是新手,就关了吧;
[root@localhost ~]# system-config-securitylevel
全都Disable掉;
2.34 查看Xen是否运行起来了xm list;
[root@localhost ~]# xm list
Name ID Mem(MiB) VCPUs State Time(s)
Domain-0 0 586 1 r----- 696.6
如果看到上面的Domain-0的输出,就可以证明xend和xendomains已经在正常运行;
值得注意的是:这时系统所用的内核是vmlinuz-2.6.16-1.2080_FC5xen0 在/boot中有,您可以通过下面的命令来查看;
[root@localhost ~]# uname -r -p
2.6.16-1.2080_FC5xen0 i686
[root@localhost ~]#
3、 在Fedora Core 5.0中安装Slackware 10.2的方法;
目前安装操作系统的主要方法是通过chroot来实现,就Slackware 10.2的在Fedora 环境下的安装,自然也超不出这个方法;不过对于Xen的虚拟Slackware 10.2已经有人写了一个脚本,然后通过脚本在Fedora Core 5.0中安装Slackware 10.2,采用的方法也是chroot 的方法;
为了使大家明白一点怎么在一个操作系统下安装另一个操作系统,我看有必要简单的写一写chroot的要点;
3.1 通过chroot 命令来构建Slackware 10.2;(仅供参考)
大多开源操作系统都可以通过chroot的方法来安装,在这方面Gentoo 和LFS用的比较多,如果您懂得Gentoo 或LFS,您应该明白如何chroot安装一个操作系统;一个操作系统可以写进一个实际的物理硬盘分区,也可以写在一个映像文件中,主要做什么用了。如果