📄 xen 初学者指南.htm
字号:
<DIV class=codeblock><CODE>disk = ['file:/opt/vmos/vmos.img,sda1,w',
'file:/opt/vmos/vmos.swap,sda2,w']<BR>root = "/dev/sda1 ro"</CODE></DIV>
<P></P>
<P>我们还是以实例解说,把装有vmos.img的映像映射到/dev/sda1
分区,vmos.img就是虚拟操作系统root存放地。vmos.swap是被虚拟文件系统的交换分区,这个交换分区也是一个文件,被映射到了/dev/sda2
。然后通过root= 行来指定虚拟操作系统所处的分区,这个位置就是被虚拟后的分区。</P>
<P>定义时要注意自己的这些文件存放在哪了?上面的例子表示vmos.img和vmos.swap是存放在/opt/vmos目录中。要看好了。。</P>
<P><FONT id=7 size=4><B><BR>7、实例应用:用Slackware+Xen虚拟Fedora
5.0<BR></B></FONT></P>
<P><FONT id=7.1 size=3><B><BR>7.1 Fedora 安装运行于一个物理分区中;<BR></B></FONT></P>
<P><FONT id=7.11 size=2><B><BR>7.11 下载Fedora 5.0的基础系统;<BR></B></FONT></P>
<P><B>请到:</B> <A href="http://jailtime.org/"
target=_blank>http://jailtime.org/</A></P>
<P><FONT id=7.11 size=2><B><BR>7.12 解压和提取相应文件;<BR></B></FONT></P>
<P>我们把下载下来的Fedora 5 基础系统,存放到/opt/fedora5vm目录中;然后解压; </P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# mkdir
/opt/fedora5vm<BR>[root@localhost ~]# mv fedora.fc5.20060401.img.tgz
/opt/fedora5vm<BR>[root@localhost ~]# cd /opt/fedora5vm<BR>[root@localhost
fedora5vm]# tar zxvf fedora.fc5.20060401.img.tgz<BR>[root@localhost
fedora5vm]# ls <BR>fedora.fc5.20060401.img.tgz fedora.fc5.img
fedora.fc5.xen.cfg fedora.swap</CODE></DIV>
<P></P>
<P><FONT id=7.13 size=2><B><BR>7.13 规划硬盘的物理分区并创建文件系统;<BR></B></FONT></P>
<P>您可以在您的硬盘上创建一个物理分区,如果有空闲的物理分区可用也行。然后创建一下文件系统。分区工具用fdisk 工具就行。</P>
<P>分区工具,请参考:<A href="http://www.linuxsir.org/main/?q=node/81">《实例解说 fdisk
使用方法》</A><BR>创建文件系统,请参考:<A
href="http://www.linuxsir.org/main/?q=node/83">《Linux
创建文件系统及挂载文件系统流程详解》</A></P>
<P>比如我们想把Fedora 放在/dev/hda5上,我们可以用mkfs.ext3来格式化/dev/hda5。</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /sbin/mkfs.ext3
/dev/hda5</CODE></DIV>
<P></P>
<P><FONT id=7.14 size=2><B><BR>7.14 构建Fedora 5 的基础系统;<BR></B></FONT></P>
<P>因为我们已经下载了,Fedora Core 5的基础系统的映像文件,也做了解压。会看到 fedora.fc5.img这个映像文件;
我们把这个映像挂载,然后把它的内容复制到我们刚才创始的文件系统的分区中,也就是/dev/hda5;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# mkdir
/mnt/tmp<BR>[root@localhost ~]# mkdir /mnt/fedora<BR>[root@localhost ~]#
mount -o loop /opt/fedora5vm/fedora.fc5.img /mnt/tmp<BR>[root@localhost
~]# mount /dev/hda5 /mnt/fedora</CODE></DIV>
<P></P>
<P>复制fedora.fc5.img中的内容,到/dev/hda5中;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# cp -rp /mnt/tmp/*
/mnt/fedora<BR>[root@localhost ~]# umount /mnt/tmp</CODE></DIV>
<P></P>
<P>然后是chroot 到/mnt/fedora目录中,实际就是操作Fedora 5系统,我们要创建Fedora 5的root密码;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# chroot
/mnt/fedora/<BR>root@localhost:/#<BR>root@localhost:/# passwd
root<BR>Changing password for user root.<BR>New UNIX password:<BR>Retype
new UNIX password:<BR>passwd: all authentication tokens updated
successfully.<BR>root@localhost:/# exit</CODE></DIV>
<P></P>
<P>然后我们卸载/dev/hda5分区;</P>
<P>[root@localhost ~]# umount /dev/hda5 </P>
<P><FONT id=7.15 size=2><B><BR>7.15 创建Fedora 5 引导文件;<BR></B></FONT></P>
<P>我们在解压 fedora.fc5.20060401.img.tgz 时看到一个文件fedora.fc5.xen.cfg ,这个就是Fedora
5的引导文件,人家洋人都为我们写好了。我们只是改一改就能用了;</P>
<P>我们要回到fedora.fc5.xen.cfg的存放目录/opt/fedora5vm中;复制fedora.fc5.xen.cfg名为fc5vm.cfg的文件。然后我们把fc5vm.cfg作为被虚拟的Fedora
5的引导文件;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# cd
/opt/fedora5vm<BR>[root@localhost fedora5vm]# cp fedora.fc5.xen.cfg
fc5vm.cfg</CODE></DIV>
<P></P>
<P>我们要对fc5vm.cfg做一下修改;</P>
<P>在fc5vm.cfg中,我们会看到如下的内容:</P>
<P>
<DIV class=codeblock><CODE>kernel = "/boot/vmlinuz-2.6-xenU"<BR>memory =
128<BR>name = "fedora.fc5"<BR>nics = 1<BR>dhcp = "dhcp"<BR>disk =
['file:/xen/fedora/fedora.fc5.img,sda1,w',
'file:/xen/fedora/fedora.swap,sda2,w']<BR>root = "/dev/sda1
ro"</CODE></DIV>
<P></P>
<P>首先我们看kernel
这行,这行是定义虚拟操作系统内核的,我们要用到我们安装xen是所安装的内核。要在虚拟平台/boot目录中找。比如我用Slackware虚拟
Fedora
。那虚拟平台就是Slackware。我应试在Slackware的/boot中找文件名中包含vmlinuz和xenU字样的文件。比如我找以的是:</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# ls -lh
/boot/vmlinuz*xenU*<BR>lrwxrwxrwx 1 root root 21 2006-04-12 07:49
/boot/vmlinuz-2.6-xenU -> vmlinuz-2.6.12.6-xenU<BR>lrwxrwxrwx 1 root
root 21 2006-04-12 07:49 /boot/vmlinuz-2.6.12-xenU ->
vmlinuz-2.6.12.6-xenU<BR>-rw-r--r-- 1 root root 1.1M 2006-04-12 07:49
/boot/vmlinuz-2.6.12.6-xenU</CODE></DIV>
<P></P>
<P>我们看到有类似的三个文件,实际上只有一个,也就是
vmlinuz-2.6.12.6-xenU,其它的都是他的链接文件。所以我们在kernel行中指定内核时,可以用这三个中的任何一个;比如我们用
vmlinuz-2.6-xenU;</P>
<P>memory是指定内存大小的,我们设置被虚拟的Fedora 5的虚拟内存大小是 128M;<BR>name
是定义虚拟操作系统的名字的,可以通过xm list中显示出来,我们也改简单点,改为fc5<BR>nics=1 不变<BR>dhcp
这行,是用来指定获取Fedora 5系统的IP是通过DHCP获取的,不过您也可以指定IP。可以不要这行;</P>
<P>vif = ['mac=aa:00:00:00:00:11'] 用来指定Fedora 5的网卡的物理地址;可以自己定义。<BR>ip =
"192.168.1.144" 用来指定虚拟网卡的IP<BR>netmask="255.255.255.0" 用来指定掩码</P>
<P>disk这行是用来定义Fedora所处的物理分区映射点,及物理交换分区及映射点的;因为物理分区是通过phy:来指定的。所以我们得改一改。因为我们已经把Fedora放在了/dev/hda5了。另外交换分区在哪呢?可以通过swapon
-s来查看物理交换分区,要在虚拟平台中查看;比如我得到的是/dev/hda8是交换分区。所以disk这行就应该这样写:</P>
<P>disk = ['phy:hda5,sda1,w','phy:hda8,sda2,w']</P>
<P>不过真实物理分区的映射点,比如/dev/hda5映射到了/dev/sda1,交换分区/dev/hda8映射到了/dev/sda2。映射过后,Fedora的root文件系统就用映射后的/dev/sda1。慢慢理解;物理分区的映射点是可以在Linux系统设备定义的许可范围内进行。自己尝试着换一换映射点。如果Fedora的root所处的物理分区的映射点改变后,Fedora的root=的值也得跟着改变。另外还要改Fedora系统中的/etc/fstab文件;</P>
<P>root一行,来指定Fedora的所有的虚拟物理分区(就是映射点)。映射到哪里了呢?Fedora
安装到了/dev/hda5,映射后虚拟到了/dev/sda1。所以Fedora系统引导时就寻找/dev/sda1做为文件系统。</P>
<P>所以root这行可写为:</P>
<P>
<DIV class=codeblock><CODE>root = "/dev/sda1 ro"</CODE></DIV>
<P></P>
<P>所以我们可以这样写Fedora 5的引导配置文件;</P>
<P><B>第一种:如果是用DHCP来获取IP:</B></P>
<P>
<DIV class=codeblock><CODE>kernel = "/boot/vmlinuz-2.6-xenU"<BR>memory =
128<BR>name = "fc5"<BR>nics = 1<BR>vif = ['mac=aa:00:00:00:00:11']<BR>dhcp
= "dhcp"<BR>disk = ['phy:hda5,sda1,w','phy:hda8,sda2,w']<BR>root =
"/dev/sda1 ro"</CODE></DIV>
<P></P>
<P><B>第二种:如果是指定IP的话:</B></P>
<P>
<DIV class=codeblock><CODE>kernel = "/boot/vmlinuz-2.6-xenU"<BR>memory =
128<BR>name = "fc5"<BR>nics = 1<BR>vif = ['mac=aa:00:00:00:00:11']<BR>disk
= ['phy:hda5,sda1,w','phy:hda8,sda2,w']<BR>root = "/dev/sda1 ro"<BR>ip =
"192.168.1.144"<BR>netmask="255.255.255.0"</CODE></DIV>
<P></P>
<P><B>再举一例:</B></P>
<P>比如Fedora
被安装在了/dev/hda5分区,物理交换分区为/dev/hda8。通过DHCP获得IP。我想映射/dev/hda5到/dev/hda5,并且想映射/dev/hda8到/dev/hda8。我们应该如何修改一些配置文件呢?</P>
<P>Fedora的引导文件内容应该是:</P>
<P>
<DIV class=codeblock><CODE>kernel = "/boot/vmlinuz-2.6-xenU"<BR>memory =
128<BR>name = "fc5"<BR>nics = 1<BR>vif = ['mac=aa:00:00:00:00:11']<BR>dhcp
= "dhcp"<BR>disk = ['phy:hda5,hda5,w','phy:hda8,hda8,w']<BR>root =
"/dev/hda5 ro"</CODE></DIV>
<P></P>
<P>然后我们应该再把装有Fedora的/dev/hda5分区挂载,然后修改Fedora系统的/etc/fstab。<FONT
color=red><B>注意:</B></FONT>不是修改虚拟平台的/etc/fstab。不要弄混了!!!!</P>
<P>应该先挂载Fedora 5所处的分区:</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# mount /dev/hda5
/mnt/fedora/</CODE></DIV>
<P></P>
<P>然后修改Fedora 5的/etc/fstab文件,也就是/mnt/fedora/etc/fstab文件:找到如下两行:</P>
<P>
<DIV class=codeblock><CODE>/dev/sda1 / ext3 defaults 1 1<BR>/dev/sda2 none
swap sw 0 0</CODE></DIV>
<P></P>
<P>改为:</P>
<P>
<DIV class=codeblock><CODE>/dev/hda5 / ext3 defaults 1 1<BR>/dev/hda8 none
swap sw 0 0</CODE></DIV>
<P></P>
<P>接着再umount /mnt/fedora</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# umount
/mnt/fedora</CODE></DIV>
<P></P>
<P><FONT id=7.16 size=2><B><BR>7.16 引导Fedora 5 ;<BR></B></FONT></P>
<P>引导运行Fedora 5.0就好办了,就是用xm 工具来引导;首先要确认你的Fedora
5的配置文件放在哪里。比如我是放在了/opt/fedora5vm中。并且文件名为fc5vm.cfg。所以我就可以这样来引导Fedora 5。</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# /usr/sbin/xm create -c
/opt/fedora5vm/fc5vm.cfg</CODE></DIV>
<P></P>
<P><FONT id=7.17 size=2><B><BR>7.17 虚拟操作系统网卡不能激活的处理方法 ;<BR></B></FONT></P>
<P>
<DIV class=codeblock><CODE>modprobe: FATAL: Could not load
/lib/modules/2.6.12.6-xenU/modules.dep:<BR>No such file or
directory</CODE></DIV>
<P></P>
<P>如果出现类似上面的现象,请复制虚拟平台的中的/lib/modues/下的2.6.12.6-xenU 到Fedora系统中;</P>
<P>方法是先挂载Fedora 所处的物理分区,然后用cp -rp 来复制;</P>
<P>首先要关掉Fedora,然后再复制;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# xm list<BR>Name ID Mem(MiB)
VCPUs State Time(s)<BR>Domain-0 0 462 1 r----- 2192.9<BR>fc5 2 128 1
-b---- 6.4</CODE></DIV>
<P></P>
<P>以上面虚拟操作系统的ID为准,比如fc5的ID是 2,就要运行如下命令;</P>
<P>
<DIV class=codeblock><CODE>[root@localhost ~]# xm destroy 2</CODE></DIV>
<P></P>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -