xen制作半虚拟guestOS的方法不只一种,前面曾经介绍过克隆hostOS的方法(http://liyuan462.iteye.com/blog/679014),现介绍另外一种方法:利用yum和rpm来制作。这种方法适用于用yum和rpm进行软件包管理的linux发行版,包括Fedora、CentOS、Red Hat。
1.建映像文件
#dd if=/dev/zero of=centos5.img bs=2k seek=2048k count=1
上面的例子是创建了大小为4.1G ,名为 centos5.img的映像文件;您可以调整上面命令参数的大小来创建您想要的体积大小的映像文件。
2.格式化映像为linux文件系统
#/sbin/mkfs.ext3 centos5.img
提示Proceed anyway? (y,n) 输入y回车就可以了
3.挂载映像# mkdir /mnt/centos5
#mount -o loop centos5.img /mnt/centos5
这样我们向/mnt/centos5中存放文件,就相当于将文件存到了映像文件中。
(到此前3步与克隆hostOS的方法一致,下面开始有区别了)
4.创建一些目录和文件,以使yum和rpm能够起作用
#mkdir -p /mnt/centos5/var/lib/rpm
#mkdir -p /mnt/centos5/var/log
#touch /mnt/centos5/var/log/yum.log
5.初始化rpm数据库
#rpm --root /mnt/centos5 --initdb
6.下载安装发行版rpm包,去一个你选择的镜像站点下载相应的发行版,即包含-release-的那个rpm文件,比如,最近的centos5(64位版)在163源的地址为:
http://mirrors.163.com/centos/5.5/os/x86_64/CentOS/centos-release-5-5.el5.centos.x86_64.rpm
下载后就可以进行安装了:
#rpm -ihv --nodeps --root /mnt/centos5 centos-release-5-5.el5.centos.x86_64.rpm
7.利用yum将系统的基本包的全部组件装上
#yum --installroot=/mnt/centos5 -y groupinstall Base
为了方便对虚拟机进行管理,可将以下两个组件也一并装上:
#yum --installroot=/mnt/centos5 -y groupinstall "Administration Tools"
#yum --installroot=/mnt/centos5 -y groupinstall "System Tools"
8.拷备/lib/modules下面xen的模块目录到guestOS相应的目录下
#cp -r /lib/modules/xxx-xen /mnt/centos5/lib/modules
9.用chroot对guestOS进行配置
#chroot /mnt/centos5
然后创建一个新的/etc/fstab文件(与xen配置文件的设备设置相符),同时利用这个机会为root用户设置密码,也可以增加一些新用户。
最好将selinux禁掉:/etc/selinux/config文件中将SELINUX置成disabled。
创建/etc/sysconfig/network文件,在文件中加入以下两句:
NETWORKING=yes
HOSTNAME=localhost.localdomain
在使用passwd命令设置密码时,可能会出现权限错误,这时先使用命令pwconv即可。
10.至此基本大功告成,接下来就可以卸载guestOS映像了
#umount /mnt/centos5
最后,用xen配置文件启动你的虚拟机吧!(配置文件的写法及启动虚拟机和进入虚拟机可参考http://liyuan462.iteye.com/blog/679014)
全文参考:http://www.virtuatopia.com/index.php/Building_a_Xen_Guest_Root_Filesystem_using_yum_and_rpm