📄 xen 初学者指南.htm
字号:
fc5vm.cfg</CODE></DIV>
<P></P>
<P><FONT id=5.33 size=2><B><BR>5.33
从终端或控制台登录正在运行的虚拟操作系统;<BR></B></FONT></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm console
正在运行的虚拟操作系统的Name或ID;</CODE></DIV>
<P></P>
<P><B>举例:</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm list<BR>Name
ID Mem(MiB) VCPUs State Time(s)<BR>Domain-0 0 512 1 r----- 5561.9<BR>fc5 4
256 1 -b---- 0.2<BR>[root@localhost ~]# /usr/sbin/xm console
fc5</CODE></DIV>
<P></P>
<P><FONT id=5.33 size=2><B><BR>5.34
存储正在运行的虚拟操作系统的状态及唤醒虚拟操作系统;<BR></B></FONT></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm save
<DomId> <File><BR>[root@localhost ~]# /usr/sbin/xm restore
<File></CODE></DIV>
<P></P>
<P><B>举例:</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm list<BR>Name
ID Mem(MiB) VCPUs State Time(s)<BR>Domain-0 0 458 1 r----- 260.3<BR>fc5 2
256 1 ------ 6.5<BR>[root@localhost ~]# /usr/sbin/xm save 2
fc5run.save<BR>[root@localhost ~]# /usr/sbin/xm restore
fc5run.save<BR>[root@localhost ~]# /usr/sbin/xm console fc5</CODE></DIV>
<P></P>
<P><FONT id=5.35 size=2><B><BR>5.35
停止正在运行的虚拟操作系统/激活停止的虚拟操作系统<BR></B></FONT></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm pause
<DomId><BR>[root@localhost ~]# /usr/sbin/xm unpause
<DomId></CODE></DIV>
<P></P>
<P><B>举例:</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm list<BR>Name
ID Mem(MiB) VCPUs State Time(s)<BR>Domain-0 0 458 1 r----- 260.3<BR>fc5 2
256 1 ------ 6.5<BR>[root@localhost ~]# /usr/sbin/xm pause
2<BR>[root@localhost ~]# /usr/sbin/xm unpause 2 </CODE></DIV>
<P></P>
<P><FONT id=5.36 size=2><B><BR>5.36 调整虚拟平台/虚拟操作系统的占用内存<BR></B></FONT></P>
<P>我们可以调整正在运行中的虚拟平台(Domain-0)所占内存大小及虚拟操作系统所占用的内存大小;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm mem-set
<DomId> <Mem></CODE></DIV>
<P></P>
<P><B>举例:</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm list<BR>Name
ID Mem(MiB) VCPUs State Time(s)<BR>Domain-0 0 458 1 r----- 260.3<BR>fc5 2
256 1 ------ 6.5<BR>[root@localhost ~]# /usr/sbin/xm mem-set 2
128</CODE></DIV>
<P></P>
<P><FONT id=5.37 size=2><B><BR>5.37 关闭被虚拟的系统<BR></B></FONT></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm shutdown
虚拟操作系统的Name或DomID<BR>[root@localhost ~]# /usr/sbin/xm destroy
<DomId> 立即停止虚拟的系统 (重要);</CODE></DIV>
<P></P>
<P><B>举例:</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm list<BR>Name
ID Mem(MiB) VCPUs State Time(s)<BR>Domain-0 0 458 1 r----- 260.3<BR>fc5 2
256 1 ------ 6.5<BR>[root@localhost ~]# /usr/sbin/xm shutdown
fc5<BR>或<BR>[root@localhost ~]# /usr/sbin/xm shutdown
2<BR>或<BR>[root@localhost ~]# /usr/sbin/xm destroy 2</CODE></DIV>
<P></P>
<P><FONT id=5.38 size=2><B><BR>5.38
调整虚拟平台及虚拟操作系统的虚拟CPU个数;<BR></B></FONT></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm vcpu-set
<DomId> <VCPUs></CODE></DIV>
<P></P>
<P><B>举例:</B></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm list<BR>Name
ID Mem(MiB) VCPUs State Time(s)<BR>Domain-0 0 458 1 r----- 260.3<BR>fc5 2
256 1 ------ 6.5<BR>[root@localhost ~]# /usr/sbin/xm vcpu-set 2
4</CODE></DIV>
<P></P>
<P><FONT id=5.39 size=2><B><BR>5.39 查看虚拟系统运行的状态;<BR></B></FONT></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# xm
top<BR>或<BR>[root@localhost ~]# xentop</CODE></DIV>
<P></P>
<P><FONT id=6 size=4><B><BR>6、虚拟操作系统的文件存储系统;<BR></B></FONT></P>
<P>我们虚拟的系统应该有一个存储的地方,也就是文件系统。被虚拟的系统能安装和运行在哪些文件系统上呢?能安装和运行在一个实际的物理分区上,一个映像文件中,或NFS等网络文件系统中;</P>
<P><FONT id=6.1 size=3><B><BR>6.1 以实际物理硬盘做为虚拟操作系统文件系统;<BR></B></FONT></P>
<P>以实际物理硬盘分区做为虚拟操作系统的文件系统,要经过硬盘分区,创建文件系统流程;</P>
<P><B>请参考:</B><A href="http://www.linuxsir.org/main/?q=node/83">《Linux
创建文件系统及挂载文件系统流程详解》</A></P>
<P><FONT id=6.11 size=2><B><BR>6.11 准备物理分区及创建文件系统;<BR></B></FONT></P>
<P><A href="http://www.linuxsir.org/main/?q=node/41">《Linux
查看磁盘分区、文件系统、使用情况的命令和相关工具介绍》</A><BR><A
href="http://www.linuxsir.org/main/?q=node/81">《实例解说 fdisk 使用方法》</A><BR><A
href="http://www.linuxsir.org/main/?q=node/80">《合理规划您的硬盘分区》</A><BR><A
href="http://www.linuxsir.org/main/?q=node/83">《Linux
创建文件系统及挂载文件系统流程详解》</A></P>
<P><FONT id=6.22 size=3><B><BR>6.12 在物理分区上构建操作系统;<BR></B></FONT></P>
<P>构建操作系统,目前在一个Linux操作系统中构建另一个操作系统,主要是通过chroot工具和软件包提取工具来构建。基础的东西还是需要一点的,请参考:<A
href="http://www.linuxsir.org/main/?q=node/182">《通过chroot
构建Linux操作系统概要》</A> </P>
<P>目前在开源社区中,已经有人把一些常用的发行版的基础系统做好了。我们能拿过来直接用。呵。。。。。只要有基础系统,我们就能chroot进入,我们就能用相应发行版软件包管理器来构建操作系统了。
</P>
<P><B>操作系统之基础系统资源:</B></P>
<P><A href="http://jailtime.org/">http://jailtime.org/</A></P>
<P>您可以直接下载您喜欢的操作系统,解压后,然后挂载映像文件,然后把映像文件的内容都拷到物理分区中就好了。不过还得做一点小小的修改,比如您下载系统映像文件中的/etc/fstab等文件。要根据您的引导的虚拟操作系统中定义的虚拟映射点来改。</P>
<P><FONT id=6.13 size=2><B><BR>6.13
虚拟操作系统的引导文件中关于文件系统的定义;<BR></B></FONT></P>
<P>如果您的硬盘有一定的空间,就可以把被虚拟的操作系统安装在硬盘的实际物理分区中,当然您首先得准备一个硬盘分区。然后格式化成Linux的文件系统,比如ext3或reiserfs
等;然后是在这个分区上构建您想要虚拟的操作系统,最后才是写虚拟操作系统的引导配置文件,在配置文件中,要用phy:来指定。</P>
<P>比如:<BR>
<DIV class=codeblock><CODE>disk = ['phy:hda7,sda1,w']
<BR>中文意思就是:<BR>disk=['phy:分区,映射点,w']</CODE></DIV>
<P></P>
<P>这行是什么意思呢?就是表示被虚拟的操作系统安装在/dev/hda3,我们要把hda3硬盘分区虚拟映射到/dev/sda1,并且是可读可写的;在这里要值得注意的是虚拟平台正在使用中的分区不能做为是映射点。</P>
<P>比如我在Slackware是位于/dev/hda6的虚拟平台,也就是真实运行的操作系统,我想用它来虚拟位于/dev/hda7分区的Fedora。所以我不能把/dev/hda6做为hda7的映射点。也就是下面一行是错误的:</P>
<P>
<DIV class=codeblock><CODE>disk = ['phy:hda7,hda6,w']</CODE></DIV>
<P></P>
<P>如何定义映射点,其实也比较好办,只要符合Linux设备的规则就可以;比如下面的也可以;</P>
<P>
<DIV class=codeblock><CODE>disk = ['phy:hda7,sda2,w']<BR>disk =
['phy:hda7,sda3,w']<BR>disk = ['phy:hda7,sdb1,w']<BR>disk =
['phy:hda7,sdb2,w']<BR>... ...</CODE></DIV>
<P></P>
<P>什么是映射点呢?也就是说通过phy定义后,被虚拟的操作系统的位于的真实的物理分区,在虚拟平台中,被映射到另一个分区;可能这样说有点不太明白。呵。。。。。。</P>
<P>举个例子吧:比如我们在Slackware虚拟Fedora ,而Fedora
位于/dev/hda7中。我们在引导Fedora的配置文件中定义Fedora所用的物理分区被映射到/dev/sda1;</P>
<P>
<DIV class=codeblock><CODE>disk = ['phy:hda7,sda1,w']<BR>root = "/dev/sda1
ro"</CODE></DIV>
<P></P>
<P>当我们把Fedora引导起来的时候,Fedora的文件系统就是用被虚拟后的分区,也就是/dev/sda1。在Fedora中,我们通过df -h
查看到Fedora是位于/dev/sda1。</P>
<P>所以在引导Fedora的配置文件中,还要有一行来指定Fedora的root在哪里,就在/dev/sda1上;因为/dev/hda7已经被虚拟到了/dev/sda1。这回明白了吧;</P>
<P><FONT id=6.2 size=3><B><BR>6.2 以映像文件做虚拟操作系统的文件系统;<BR></B></FONT></P>
<P>以映像文件做为虚拟操作系统的文件系统,这种方法是比较常用。也是比较方便和易于操作的,也就是说被虚拟的操作系统是放在了一个文件中。</P>
<P><FONT id=6.21 size=3><B><BR>6.21 创建映像文件;<BR></B></FONT></P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# dd if=/dev/zero
of=fedora50.img bs=2k seek=2048k count=1<BR>读入了 1+0 个块<BR>输出了 1+0
个块<BR>[root@localhost ~]# ls -lh fedora50.img<BR>-rw-r--r-- 1 root root
4.1G 2006-04-13 01:27 fedora50.img</CODE></DIV>
<P></P>
<P>我们可以用dd来创建映像文件,上面的例子是创建了大小为4.1G的体积的,名为fedora50.img的映像文件;您可以调整上面命令参数的大小来创建您想要的体积大小的映像文件。</P>
<P><FONT id=6.22 size=3><B><BR>6.22 格式化映像为Linux文件系统;<BR></B></FONT></P>
<P>Linux文件系统,比如ext3或reiserfs,看自己喜欢吧;您可以用mkfs.ext3或mkfs.reiserfs命令来创建文件系统,请参考:</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /sbin/mkfs.ext3
fedora50,img<BR>mke2fs 1.38 (30-Jun-2005)<BR>fedora50,img is not a block
special device.<BR>Proceed anyway? (y,n) y
注:在这里输入y就时行格式化了,然后遇到提示之处,都是用回车。</CODE></DIV>
<P></P>
<P>这样fedora50.img就是ext3文件系统了,你可以用mount -o loop 来挂载使用它,在它上面存储文件等。</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# mkdir
/mnt/fedora50<BR>[root@localhost ~]# mount -o loop fedora50.img
/mnt/fedora50<BR>[root@localhost ~]# df -h<BR>root@localhost:/opt# df
-lh<BR>Filesystem 容量 已用 可用 已用% 挂载点<BR>/dev/hda6 12G 8.5G 3.3G 73%
/<BR>/root/fedora50,img 4.0G 129M 3.7G 4% /mnt/fedora</CODE></DIV>
<P></P>
<P>上面的一系列命令执行下去后,说明fedora50.img已经挂载到了/mnt/fedora目录中,我们可以向/mnt/fedora中存放文件。这样就写到了fedora50.img映像文件中。写完后,我们可以卸载fedora50.img;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# umount
/mnt/fedora</CODE></DIV>
<P></P>
<P><FONT id=6.23 size=3><B><BR>6.23 在映像文件上构建操作系统;<BR></B></FONT></P>
<P>在映像文件上构建操作系统,目前在一个Linux操作系统中构建另一个操作系统,主要是通过chroot工具和软件包提取工具来构建。基础的东西还是需要一点的,请参考:</P>
<P>目前在开源社区中,已经有人把一些常用的发行版的基础系统做好了。我们能拿过来直接用。呵。。。。。只要有基础系统,我们就能chroot进入,我们就能用相应发行版软件包管理器来构建操作系统了。
</P>
<P><B>操作系统之基础系统资源:</B></P>
<P><A href="http://jailtime.org/">http://jailtime.org/</A></P>
<P><FONT id=6.24 size=3><B><BR>6.24
虚拟操作系统的引导文件中关于文件系统的定义;<BR></B></FONT></P>
<P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -