热门关键字:  ubuntu  分区  Fedora  linux系统进程  函数

当前位置 :| 主页>Linux教程>Linux入门>

Linux上的虚拟化技术 Xen 初学者指南

来源: 作者: 时间:2008-09-10 Tag: 点击:

一旦我们在Linux操作系统安装好Xen后,这样的系统应该被称为XenLinux。如何才能引导拥有Xen的Linux呢?这时我们要用到GRUB系统引导管理器。我们修改一下GRUB的配置文件menu.lst或grub.conf就行了。此文件位于/boot/grub目录中;
4.1 判断系统所在的分区;
[root@localhost ~]# df -h
Filesystem 容量 已用 可用 已用% 挂载点
/dev/hda6 12G 6.9G 4.9G 59% /
4.2 查看/boot目录中xen相关的配置文件;
[root@localhost ~]# ls /boot
注意:我们前面已经说过了,xen提供了两个内核,一个是虚拟平台用的,也就是文件名带有xen0字样的;另一个带有xenU字样的,这是用于引导和支持虚拟操作系统用的。
什么虚拟平台,比如我们想用Slackware 的Xen虚拟Fedora、Gentoo .... 。那么Slackware就是虚拟平台,而Fedora、Gentoo... .. 是被虚拟的操作系统。Slackware是一个真实安装在您的机器上的操作系统,它提供的是一个运行xen的环境。为了让Slackware能支持xen ,所以必须用于支持Xen的内核,也就是在/boot中有xen0字样的文件。
如果您安装了Xen,会在/boot中有两个文件vmlinuz-2.6.12.6-xen0和vmlinuz-2.6.12.6-xenU,
4.3 禁掉 TLS Libraries ;
[root@localhost ~]#mv /lib/tls /lib/tls.disabled
禁掉的理由,请查看: 《Xen v3.0 用户手册》
4.4 引导XenLinux的GRUB内容;
title SlackXen
kernel /boot/xen-3.0.gz
module /boot/vmlinuz-2.6-xen0 root=/dev/hda6 ro console=tty0
如果有inintrd-2.xxxx-xen.img或initrd.gz之类的文件才能引导起来系统,还要加一行;要以/boot中的initrd相关的文件为准;
modules /boot/initrd.gz
有关GRUB的文档:《系统引导管理器GRUB,为初学者指南》
注意:与传统GRUB的定义有点不同,就是kernel 是用来定义Xen的,而Linux的内核及initrd映像是通过module 指令定义的;要仔细看好;
5、Xen的配置和管理工具;
5.1 Xen的相关文件存放位置;
xen安装后,文件放在什么地方了呢?主要放在以下几个目录;
5.11 内核及xen自身存放于 /boot
安装有xen的操作系统下的/boot目录中,存放xen本身及支持xen的内核文件。比如文件名带有xen0和xenU相关的文件;
5.12 内核模块存放于 /lib/modules
内核模块包括虚拟平台支持xen的内核xen0的模块,及支持虚拟操作系统所用的xenU的模块,一般的情况下是在 /lib/modules下有两个xen相关的目录存放。一个是文件夹名带有xen0字样的,另一个是xenU字样的;
5.13 xen的配置文件及守护程序的存放位置;
一般的情况下,Xen的配置文件存放于/etc/xen目录。 比如 xend-config.sxp是用于配置网络的,不过我们不必更改,用其默认的就能完成我们的需要。xmexample1 xmexample2是两个示例性的配置文件。我们在配置引导被虚拟的操作系统时,这两个文件可供参考;
Xen的服务器xend和xendomains启动脚本,一般是位于/etc/init.d/目录中,也就是/etc/init.d/xend ;/etc/init.d/xend负责启动xend服务器,而/etc/init.d/xendomains负责第一个虚拟的系统及其它的Domains,也就是Domain 0 。
5.14 可执行命令存放于/usr/sbin
[root@localhost ~]#ls /usr/sbin/xen*
/usr/sbin/xen-bugtool /usr/sbin/xenconsoled /usr/sbin/xenmon.py /usr/sbin/xenstored
/usr/sbin/xenbaked /usr/sbin/xend /usr/sbin/xenperf /usr/sbin/xentop
[root@localhost ~]#ls /usr/sbin/xm
5.2 Xen服务器的启动;
xend服务器的启动/停止/重启/状态查询,请用下面的命令;
[root@localhost ~]# /etc/init.d/xend start 启动xend,如果 xend没有运行)
[root@localhost ~]# /etc/init.d/xend stop 停止xend,如果xend正在运行)
[root@localhost ~]# /etc/init.d/xend restart 重启正在运行的 xend,如果xend没有运行,则启动
[root@localhost ~]# /etc/init.d/xend status 查看xend状态
启动xendomains 服务器的启动/停止/重启/状态查询,请用下面的命令;一般的情况下,xend服务器启动了,xendomains也会自动启动。所以这个只是掌握一下就行了;
[root@localhost ~]# /etc/init.d/xend start 启动xend,如果 xend没有运行)
[root@localhost ~]# /etc/init.d/xend stop 停止xend,如果xend正在运行)
[root@localhost ~]# /etc/init.d/xend restart 重启正在运行的 xend,如果xend没有运行,则启动
[root@localhost ~]# /etc/init.d/xend status 查看xend状态
[root@localhost ~]# /etc/init.d/xendomains start
[root@localhost ~]# /etc/init.d/xendomains stop
[root@localhost ~]# /etc/init.d/xendomains restart
[root@localhost ~]# /etc/init.d/xendomains status
5.3 Xen 管理工具xm;
我们前面提到Xen的可执行命令中,我们可能看到了一些以xen开头的命令,您不妨尝试一个一个的尝试一下他们是做什么用的;比如xend是服务器的开启运行命令 ... ....
其中xm命令,就是管理Xen的最基本的工具;您可以通过xm --help 来获得帮助;
6、虚拟操作系统的文件存储系统;
我们虚拟的系统应该有一个存储的地方,也就是文件系统。被虚拟的系统能安装和运行在哪些文件系统上呢?能安装和运行在一个实际的物理分区上,一个映像文件中,或NFS等网络文件系统中;
6.1 以实际物理硬盘做为虚拟操作系统文件系统;
以实际物理硬盘分区做为虚拟操作系统的文件系统,要经过硬盘分区,创建文件系统流程;
请参考:《Linux 创建文件系统及挂载文件系统流程详解》
6.11 准备物理分区及创建文件系统;
《Linux 查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》
《实例解说 fdisk 使用方法》
《合理规划您的硬盘分区》
《Linux 创建文件系统及挂载文件系统流程详解》
6.12 在物理分区上构建操作系统;
构建操作系统,目前在一个Linux操作系统中构建另一个操作系统,主要是通过chroot工具和软件包提取工具来构建。基础的东西还是需要一点的,请参考:《通过chroot 构建Linux操作系统概要》
目前在开源社区中,已经有人把一些常用的发行版的基础系统做好了。我们能拿过来直接用。呵。。。。。只要有基础系统,我们就能chroot进入,我们就能用相应发行版软件包管理器来构建操作系统了。
操作系统之基础系统资源:
http://jailtime.org
您可以直接下载您喜欢的操作系统,解压后,然后挂载映像文件,然后把映像文件的内容都拷到物理分区中就好了。不过还得做一点小小的修改,比如您下载系统映像文件中的/etc/fstab等文件。要根据您的引导的虚拟操作系统中定义的虚拟映射点来改。
6.13 虚拟操作系统的引导文件中关于文件系统的定义;
如果您的硬盘有一定的空间,就可以把被虚拟的操作系统安装在硬盘的实际物理分区中,当然您首先得准备一个硬盘分区。然后格式化成Linux的文件系统,比如ext3或reiserfs 等;然后是在这个分区上构建您想要虚拟的操作系统,最后才是写虚拟操作系统的引导配置文件,在配置文件中,要用phy:来指定。
比如:
disk = ['phy:hda7,sda1,w']
中文意思就是:
disk=['phy:分区,映射点,w']
这行是什么意思呢?就是表示被虚拟的操作系统安装在/dev/hda3,我们要把hda3硬盘分区虚拟映射到/dev/sda1,并且是可读可写的;在这里要值得注意的是虚拟平台正在使用中的分区不能做为是映射点。
比如我在Slackware是位于/dev/hda6的虚拟平台,也就是真实运行的操作系统,我想用它来虚拟位于/dev/hda7分区的Fedora。所以我不能把/dev/hda6做为hda7的映射点。也就是下面一行是错误的:


相关文章:
linux U盘启动盘制作
Linux设置启动程序
free -m
多核技术与并发多线程技术介绍
理解Linux的性能
section.2 booting and shutting down 引导与关机
Linux — 目录的读权限与执行权限
Linux — 硬链接与符号链接
Linux裸设备总结
linux系统文件综述
Linux下硬盘数据恢复与分区表恢复
./configure命令常用选项详解
浅谈如何学习linux
grub双系统启动顺序更改
Linux 下实现远程开机
Linux系统清除Grub的几种方法
AIX如何才能看出网线是否插好?
vxvm 逻辑卷管理中遇到的问题
linux系统文件认识
Linux守护进程列表
关于/dev/null
FreeBSD学习笔记
Linux简明教程
linux任重道远
在Linux里设置环境变量的方法(export PATH)
关于.bashrc和.vimrc不能自动被执行的问题
linux优秀网站列表
关于swap,虚拟内存和page的区别
Linux系统下系统目录详解
Cooperative Linux