Fedora Core 5.0 用 Xen 虚拟Slackware 10.2

作者:北南南北
来自:LinuxSir.Org
提要:目前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安装一个操作系统;一个操作系统可以写进一个实际的物理硬盘分区,也可以写在一个映像文件中,主要做什么用了。如果 您想让这个操作系统不通过任何虚拟机运行,就要安装在一个实际物理分区中;如果是虚拟运行,安装到一个映像文件中比较好,象我们这次通过Xen虚拟 Slackware 10.2,我们把操作系统安装在映像文件中比较好; 请参考: 《通过chroot 构建Linux操作系统概要》
3.2 通过脚本实现自动安装Slackware 10.2到映像文件中;(推荐)
我在通过chroot 构建Slackware 10.2的过程中,查到了一个用脚本构建的方法; 原文地址: http://wiki.xensource.com/xenwiki/SlackwareDomU
3.21 下载Slackware 10.2相关;
Slackware 10.2 下载: http://www.slackware.com/getslack
Slackware builder for UML mkuml-2004.07.17-ananas.tar.bz2 说明: Slackware builder for UML就是通过chroot 模式安装Slackware 到映像文件的相关脚本和软件包,只是把我们自己chroot来安装Slackware的工作简化;
3.22 通过 Slackware builder for UML来安装Slackware 10.2

第一步:解压mkuml-2004.07.17-ananas.tar.bz2

[root@localhost ~]# tar jxvf mkuml-2004.07.17-ananas.tar.bz2
[root@localhost ~]# cd mkuml-2004.07.17
[root@localhost mkuml-2004.07.17]#


第二步:在mkuml-2004.07.17中创建slackware-current目录,并把Slackware 10.2的两张光盘内容提取出来放入slackware-current目录中;
[root@localhost ~]# cd mkuml-2004.07.17
[root@localhost mkuml-2004.07.17]# mkdir slackware-current
[root@localhost mkuml-2004.07.17]# cd slackware-current/
[root@localhost slackware-current]# mount -o loop /opt/slackware-10.2-install-d1.iso /mnt/cdrom/
[root@localhost slackware-current]# cp -rp /mnt/cdrom/*  .
[root@localhost slackware-current]# umount /mnt/cdrom
[root@localhost slackware-current]# mount -o loop /opt/slackware-10.2-install-d2.iso /mnt/cdrom/
[root@localhost slackware-current]# cp -rp /mnt/cdrom/*  .
[root@localhost slackware-current]# umount /mnt/cdrom
说明:如果 /mnt目录下没有cdrom 目录,就自己创建一个;Slackware的两张安装盘放置目录在哪,要根据自己的情况来指定,我是把这两张光盘放在了/opt目录中,所以就有上面的mount 命令;
第三步:更改mkuml-2004.07.17目录中的mkuml.sh;

在mkuml.sh中找到如下段落;
# file system sizes
ROOT_MB=2000
SWAP_MB=128
更改为
# file system sizes
ROOT_MB=3000
SWAP_MB=256
其中ROOT_MB是指定创建映像文件的大小,也就是说Slackware是安装到这个映像文件中;我在这里设置成为3G大小,SWAP_MB是指定交换 分区文件的大小,我在这里设置为256M;根据自己的情况来设置。一般的情况下,Slackware完全安装需要3G左右; 在mkuml.sh中找到
mke2fs -F -j root_fs
改为
mke2fs -F -j -O ^resize_inode root_fs
和上面的改更联系起来的意思就是,首先要创建一个root_fs的文件,大小为3G,然后再创建一个swap_fs的文件,大小为256M;然后再对这两 个文件分别创建文件系统,root_fs创建为ext3文件系统,swap_fs创建为swap文件系统;如果不太明白,请参看 mkuml.sh中的相关语句;
第四步:执行mkuml.sh;

这个过程就是创建映像文件 root_fs和swap_fs,然后在他们之上进行创建文件系统,接着会通过mount 挂载root_fs,然后安装我们刚才提取出来的Slackware 10.2的两张光盘的软件包到root_fs中;这一切都是通过脚本实现的,所以说这个脚本实在是太好了。呵。。。简单明了。。。 把mkuml.sh改好后,我们要执行;
[root@localhost mkuml-2004.07.17]# ./mkuml.sh  /opt/slack102vm
这是什么意思呢?这个意思就是通过脚本mkuml.sh,在/opt中创建一个目录,然后创建root_fs和swap到/opt/slack102vm 中;然后进行创建上面所说的文件系统,挂载文件系统,安装Slackware 之类的;一切全自动了... ... 到这一步,我们就会明白了吧,是不是把Slackware 安装到了一个文件中了呢?所以说安装操作系统,也是可以安装到一个文件中的。比如 VMWARE虚拟Linux的安装,也是可以虚拟到一个文件中的; 在这一过程中,还有root密码的设置的提示,自己输入一下,还有网络设置,也可以设置一下。在Hostname ,我设置的是slack,在DOMAINNAME的设置中,我设置的是localdomain ,在设置IP那块,要根据自己的实际网络情况。我用的是DHCP自动获取的,因为我在路由器中设置了所有的机器都通过DHCP自动获取IP; 如果您想知道自己的Slackware 10.2安装到哪里了呢?你查看一下/opt/slack102vm中的root_fs就知道了;怎么查看呢? 应该用mount -o loop 的方法来挂载;
[root@localhost mkuml-2004.07.17]# mkdir /mnt/slack
[root@localhost mkuml-2004.07.17]# mount -o loop /opt/slack102vm/root_fs  /mnt/slack
[root@localhost mkuml-2004.07.17]#cd /mnt/slack
上面的内容就是说,把/opt/slack102vm中的root_fs映像文件挂载到了/mnt/slack中,进入/mnt/slack目录,就可以查看到了root_fs映像文件的内容;
第五步:复制相关文件到root_fs映像中;

要把一些文件写到root_fs中,我们首先必须要做的是挂载root_fs映像文件,如前面所提到的mount -o loop的办法;
[root@localhost ~]# mount -o loop /opt/slack102vm/root_fs  /mnt/slack
首先我们要把Fedora Core 5.0中内核模块2.6.16-1.2080_FC5xenU目录复制到/mnt/slack下的lib/modules目录中;
[root@localhost ~]# mkdir  /mnt/slack/lib/modules
[root@localhost ~]# cd /mnt/slack/lib/modules/
[root@localhost modules]#  cp -r /lib/modules/2.6.16-1.2080_FC5xenU .
您 也可以把Slackware的两张安装光盘,都可以复制到 root_fs中,也就是root_fs的挂载目录 /mnt/slack目录中;这样少什么样的软件,就可以先通过chroot /mnt/slack 进入Slackware的系统,然后就可以通过挂载光盘映像通过pkgtool 或installpkg来安装了;比如我们Slackware的iso放在了Slackware系统中的 /opt目录中。
第六步:更改root_fs中的/etc/inittab和/etc/fstab文件;

还是如同前面一样,要先挂载root_fs到/mnt/slack目录中;如果已经挂载好了,就直接进入/mnt/slack目录就行了。 找到 /mnt/slack/etc/inittab文件中的;
c0:1235:respawn:/sbin/agetty 38400 tty0 linux
#c1:1235:respawn:/sbin/agetty 38400 tty1 linux
在上面的这段的第一行前面加上#号,并把第二行的前面的#号去掉;
#c0:1235:respawn:/sbin/agetty 38400 tty0 linux
c1:1235:respawn:/sbin/agetty 38400 tty1 linux
因为tty0的终端设备已经被Fedora Core 5占用,所以只能用tty1以后的了,当然您可以打开其它的终端 ,就是把类似这样的行前面的#号去掉; 找到/mnt/slack/etc/fstab文件;把其内容改为如下的
/dev/sda1            /            ext3    defaults          1  1
/dev/sda2 swap         swap    defaults          0  0
none                 /dev/pts     devpts  gid=5,mode=620    0  0
none                 /proc        proc    defaults          0  0

第七步:chroot 到Slackware系统进行配置;
我们要挂载 /opt/slack102vm中的root_fs到/mnt/slack,然后chroot到/mnt/slack;
[root@localhost ~]# chroot /mnt/slack
bash-3.00#   注:看到类似这样的提示符,说明我们已经进入到了Slackware;
我们还要进行一系列的操作,比如 索引Slackware的库文件;
bash-3.00# ldconfig
接着,我们要创建一个rc.modules 的文件,在/etc/rc.d目录中;
bash-3.00# touch /etc/rc.d/rc.modules
bash-3.00#  echo  'modprobe xennet' > /etc/rc.d/rc.modules
注: 上面那句echo的命令,意思是向rc.modules中写入一句 modprobe xennet。在Slackware中,所有的内核模块的加载,都在 rc.modules中,modprobe xennet意思是让系统在开机时自动挂载xennet模块。xennet 模块就是我们在Fedora Core 5.0 中复制到Slackware的文件系统root_fs中的/lib/modules/2.6.16-1.2080_FC5xenU ;xennet模块就是Xen的虚拟Slackware的网卡; 如果您用DHCP 自动获取IP,我们还要在Slackware中安装dhcp开头的包,这些包位于Slackware 10.2第一张光盘中的slackware目录中的d目录中;我们前面已经说过,要把Slackware的安装盘最好复制到Slackware的文件系统 root_fs中;比如您把Slackware 10.2的安装盘复制到 Slackware的文件系统/opt目录中,我们就可以挂载,然后安装所需要的包了;比如我们Slackware的iso放在了Slackware系统 中的 /opt目录中。
bash-3.00# mount -o loop /opt/slackware-10.2-install-d1.iso  /mnt/cdrom
bash-3.00# cd /mnt/cdrom/slackware/n
bash-3.00# installpkg dhcp*.tgz
bash-3.00# cd ~
bash-3.00# umount /mnt/cdrom
如果您的Slackware的网络没有配置好,请用netconfig来配置;
bash-3.00# netconfig
ENTER HOSTNAME 中,您可以写上slack;在DOMAINNAME 中,您可以写上localdomain;如果您用的是DHCP获取IP,就选DHCP;如果问到DHCP服务器在哪,也可以写上您的DHCP服务器,留空也行; 如果您用的是静态指定IP,您可以选择静态IP设置那项;
ENTER IP ADDRESS 写上您的IP;比如 192.168.1.11
ENTER NETMASK 写上网络掩码: 比如 255.255.255.0
ENTER GATEWAY 网关:比如 192.168.1.1
NAMESERVER 可以写上:202.96.128.143 更改/etc/resolv.conf文件;
在这个文件中,是存放DNS服务器地址的,比如下面的内容;
nameserver 192.168.1.1
nameserver 202.96.128.143
nameserver 202.96.134.133
这是三个DNS地址,第一个地址是根据路由器192.168.1.1上的来更新,如果您有路由器,就根据自己的网络情况来写;后面的两个地址是可以用的;尝试一下就知道了; 配置好后,要退出Slackware的环境;
bash-3.00# exit
还要把Slackware文件系统root_fs卸载掉;
[root@localhost ~]# umount /mnt/slack

4、Fedora Core 5.0 的Xen的配置;
我们在Fedora Core 5.0中/etc/xen的目录中,创建一个文件slack,目的是通过/etc/xen/slack引导Slackware 10.2;
[root@localhost ~]# touch /etc/xen/slack
在/etc/xen/slack的内容,如果您用DHCP来获取IP,请参考下面的配置文件来修改;
kernel ="/boot/vmlinuz-2.6.16-1.2080_FC5xenU"
memory = 128
name = "slack"
nics = 1
vif = ['mac=aa:00:00:00:11:11']
disk = ['file://opt/slack102vm/root_fs,sda1,w','file:/opt/slack102vm/swap_fs,sda2,w']
dhcp="dhcp"
root = '/dev/sda1 ro'
如果您用指定IP,就参考下面的配置文件来修改;
kernel ="/boot/vmlinuz-2.6.16-1.2080_FC5xenU"
memory = 128
name = "slack"
nics = 1
vif = ['mac=aa:00:00:00:11:11']
disk = ['file://opt/slack102vm/root_fs,sda1,w','file:/opt/slack102vm/swap_fs,sda2,w']
dhcp="off"
root = '/dev/sda1 ro'
ip = "192.168.1.11"
netmask = "255.255.255.0"
gateway = "192.168.1.1"
hostname="slack"
解说:
1)kernel

我们是用vmlinuz-2.6.16-1.2080_FC5xenU这个内核来引导Slackware 10.2的,此内核文件位于Fedora Core 5.0中的/boot目录中。通过Xen虚拟运行Slackware ,并不能用Slackware自身所带的内核来引导。用Slackware自带的内核根本没有办法引导得起来。Xen虚拟其它的操作系统,都可以用这个内 核来引导;

2)memory

是用来定义内存大小的,一般的情况下128就可以;

3)vif

可以定义虚拟网卡物理地址,自己随便设置一个mac地址就行,

4)disk

其中root_fs是Slackware的文件系统,swap_fs是Slackware的交换分区文件系统;其中的sda1是什么意思?在这里 root_fs映射到/dev/sda1设备上,是虚拟的,同理sda2也是这样理解;w是可以让用户写入文件到root_fs和swap_fs中; 其它是有关网络方面的,自己看一下就明白了;如果是通过DHCP自动获取的IP的,可以用第一个配置文件来修改。如果您是指定IP的,要根据下面来修改, 按情况自己来办;没有什么大不了的。尝试一下就知道了;
5、启动Slackware,Xen虚拟Slackware正式开始;
我们创建好/etc/xen/slack的配置文件后,我们要用它来启动Slackware操作系统,Xen虚拟Slackware正式开始;
[root@localhost ~]# xm create -c slack
启动过程... ... 然后出现登录画面;
Welcome to Linux 2.6.16-1.2080_FC5xenU (tty1)

slack: login:
在login 后面输入root ,然后回车,接着出来密码提示,再输入密码,回车;这样就登录到Slackware了;
Waking a person unnecessarily should not be considered
a capital crime.  For a first offense, that is.

root@slack::~# root
成功中,现在我们就可以用Slackware了;在这段输出中,Walking a person ... ... 之类的,是Slackware登录时出来的名人名言;每次登录都有。 首先我们查看一下网络是不是通的;
root@slack:~# ifconfig eth0
eth0      Link encap:Ethernet  HWaddr AA:00:00:00:11:11
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a800:ff:fe00:11/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:12 errors:0 dropped:0 overruns:0 frame:0
          TX packets:14 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:2120 (2.0 Kb)  TX bytes:1974 (1.9 Kb)
root@slack:~# ping linuxsir.org
PING linuxsir.org (218.61.34.138) 56(84) bytes of data.
64 bytes from cncln.online.ln.cn (218.61.34.138): icmp_seq=1 ttl=59 time=7.20 ms
64 bytes from cncln.online.ln.cn (218.61.34.138): icmp_seq=2 ttl=59 time=7.56 ms
看来是能通了... ... ... 这时我们就可以应用Slackware了。这时我们所应用的Slackware ,应该算做本地访问。我们应该学会如何应用通过Fedora Core 5.0 来远程访问,请看下一节;
6、Xen 虚拟的Slackware的远程访问方法;
虚拟机就是根据自己的需要,在一个操作系统平台上,借助相关的软件虚拟另外的操作平台。虚拟出来的操作系统和我们所处的真实的操作系统各自是独立的。被虚拟的操作系统应该看作是一台正在运行的机器 。 因为真实的操作系统Fedora Core 5.0和虚拟的Slackware 10.2都被看成是各自独立的机器,所以我们应该想到远程访问Slackware;有两种方法,一种是ssh ,另一种是vnc ;其中 ssh访问是文本的,而vnc访问则是访问桌面的;

6.1 通过 ssh 远程访问;
通过ssh远程访问比较简单;首先确认在Slackware中是否已经安装了sshd 服务器;这个过程是在Slackware中操作;我们前面已经说了,要把Slackware引导起来登录;
6.11 引导Slackware的命令;
[root@localhost ~]# xm create -c slack

6.12 查看sshd服务器已经运行;
登录Slackware后,查看sshd服务器已经运行;如果有下面类似下面的提示,表示sshd服务器已经运行,否则表示您没有安装sshd 服务器;
root@slack:~# pgrep sshd
400

6.13 判断sshd服务器是否安装;
判断sshd服务器是否安装,请查看/var/adm/packages,如果里面有openssh的文件,表示已经安装;
root@slack:~# ls /var/adm/packages/openssh*
/var/adm/packages/openssh-4.2p1-i486-1
如果没有,请在安装盘的第一张找出openssh软件包,用下面的命令来安装;
root@slack:~# installpkg   openssh*

6.14 如何打开sshd服务器呢?
root@slack:~# /etc/rc.d/rc.sshd

6.15 查看是sshd服务器是否运行得起来了?
root@slack:~# pgrep sshd

6.16 查看网卡的ip地址;
root@slack:~# ifconfig
eth0      Link encap:Ethernet  HWaddr AA:00:00:00:00:11
          inet addr:192.168.1.11  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a800:ff:fe00:11/64 Scope:Link
          UP BROADCAST NOTRAILERS RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:165 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:10538 (10.2 Kb)  TX bytes:2011 (1.9 Kb)

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:784 (784.0 b)  TX bytes:784 (784.0 b)
上面表示网络地址为192.168.1.11;物理地址是AA:00:00:00:00:11,这个物理地址我们是在什么地方设置的??是在Fedora Core 5.0中的/etc/xen/slack配置文件中;
6.17 在Fedora 中通过ssh访问 Slackware;
[root@localhost ~]# ssh root@192.168.1.11
The authenticity of host '192.168.1.11 (192.168.1.11)' can't be established.
RSA key fingerprint is 81:0f:fc:ff:a9:e2:d0:e0:27:89:00:db:f0:33:f0:48.
Are you sure you want to continue connecting (yes/no)? yes 注:在这里输入yes;
Warning: Permanently added '192.168.1.11' (RSA) to the list of known hosts.
root@192.168.1.11's password:注:在这里输入密码;
Last login: Wed Apr  5 10:02:47 2006 from 192.168.1.3
Linux 2.6.16-1.2080_FC5xenU.

It's not Camelot, but it's not Cleveland, either.
                -- Kevin White, Mayor of Boston

root@slack:~#  注:登录成功;

6.2 在Fedora 中通过vnc访问;
在Fedora 中能通过vnc连接远程的Slackware桌面,这是一个方便的工具;也是在OpenSource操作系统中最常用的工具之一;在Fedora 中,我们要用到vnc的客户端vncviewer,而在远程的Slackware中,我们要架vnc的服务器vncserver;
6.21 在Fedora 中安装vnc;
[root@localhost ~]# yum install vnc

6.22 在Slackware中安装vnc;
我们可以在Slackware中安装TightVNC,我下载的版本是 tightvnc-1.3dev7-i486-1kjz.tgz 您可以到 http://www.linuxpackages.net 上查找下载,TightVNC下载地址请访问下面的地址,选择一个镜像来用wget下载; http://www.linuxpackages.net/download.php?id=8599 在Slackware中,通过wget下载,比如;
#wget http://linuxpackages.slackwaresupport.com//
Slackware-10.2/ken/tightvnc-1.3dev7-i486-1kjz.tgz
安装TightVNC,请用installpkg来安装;
root@slack:~# installpkg tightvnc-1.3dev7-i486-1kjz.tgz

6.23 在Slackware中配置和运行vncserver;

第一步: 运行vncserver,生成登录密码和配置文件;
我们运行一下vncserver,这样就在当前用户的家目录下生成一个.vnc的目录,这个目录中有一个文件是配置文件xstartup比较重要,随后我们会介绍如何更改这个文件;
root@slack:~# vncserver
You will require a password to access your desktops.

Password: 注:在这里输入vncserver的密码;
Warning: password truncated to the length of 8.
Verify: 注:再输入一次密码;
Would you like to enter a view-only password (y/n)?y 

<b>注:</b>请输入一个仅能游览的密码,以这个密码登录后,仅能查看,不能做任何操作;比如前面的密码,您可以设置为123456,仅能浏览桌面的密码,您可以设置为654321;尝试一下就知道这两个密码的权限有何不同了;

第二步:关掉vncserver;
root@slack:~#pkill vnc


第三步:配置vncserver;

其实配置vncserver 主要是想让客户机浏览Slackware 时,能看到什么桌面环境,是GNOME还是KDE,还是Wmaker?用什么桌面就得在Slackware中安装什么。Slackware系统比较小,总 共才两张盘,安装安装就行了,用installpkg 或pkgtool 来安装;如何安装桌面环境不提了,我们已经多次说到如何安装Slackware的软件包了; 比如 我们想让客户机通过vncview浏览Wmaker桌面;我就得如下做;
root@slack:~# cd ~/.vnc  注:切换到当前用户家目录中的.vnc目录;我用的是root用户;
root@slack:~/.vnc# pwd  注:查看用户所在的当前目录;
/root/.vnc  注:我们看到我们位于的正是root用户下的.vnc目录;

root@slack:~/.vnc# cp /etc/X11/xinit/xinitrc.wmaker  xstartup  注:这是让客户机操作Wmaker桌面;
root@slack:~/.vnc# cp /etc/X11/xinit/xinitrc.gnome  xstartup  注:这是让客户机操作GNOME桌面;
root@slack:~/.vnc# cp /etc/X11/xinit/xinitrc.kde   xstartup  注:这是让客户机操作kde桌面;
root@slack:~/.vnc# cp /etc/X11/xinit/xinitrc.xfce   xstartup  注:这是让客户机操作xfce桌面;
上面的桌面任选其一,只有您安装了相应的桌面,才能在/etc/X11/xinit目录中看到相应桌面的启动文件; 注意:每次更改xstartup 时,都要重新启动vncserver,否则不会生效;

第四步:启动vncserver ;

root@slack:~/.vnc# vncserver -depth 24  -geometry 800x600  -pixelformat  RGB888
我们是以800x600的分辨率,色深是24... ... 具体的参数,请查看 vncserver --help
root@slack:~/.vnc# vncserver -depth 24  -geometry 800x600  -pixelformat  RGB888

New 'X' desktop is slack:1 注:记住后面的slack:1,这个就是客户机通过vncview查看Slackware桌面的地址;

Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/slack:1.log

6.24 在Fedora 中通过vncview访问Slackware桌面;
首先我们在Fedora Core中运行vncview,vncview 是用来连接远程桌面的工具;
[root@localhost ~]$ vncviewer
出来一个连接的画面,有下面的一行: VNC server:注:我们要在画面的输入框中输入Slackware的vncserver服务器的地址,您可以在Slackware中查看网络地址,通过 ifconfig;比如我的Slackware的地址是192.168.1.11 ,而我们在运行vncserver后,看到一下vncserver的地址slack:1 ,如果您的机器通过DNS解析过了,就就在VNC Server的后面输入slack:1就能连接了。如果您的机器没有做DNS,您可以直接用ip地址来访问,也就是把slack:1中的slack换成您 的IP地址,也就是类似这样的192.168.1.11:1 所以我们应该在VNC server画面中输入框中输入 192.168.1.11:1 ,请与您的vncserver的地址和ip地址为准,我在这里只是举个例子;
VNC server: 192.168.1.11:1
输入密码后,应该能看到Slackware的桌面了... .... 请看如下的图:
7、Xen的相关用法及说明;
主要是xm工具的用法,请参考: 《Xen 初学者指南》
8、常见问题处理;




9、关于本文;
本文是我用三个晚上写成的,修改放在了白天。这篇文档文字比较多,主要怕新手或对Xen不太熟悉的弟兄看不清楚,所以就 多写了点。技术含量呢,应该说比较低,大家将就着看吧。如果能指点指点,是我最高兴的事了。一个人写文档是有点无聊,大家参与相互学习和交流,可能会好一 点 ... ...
10、后记;

想把去年未完成的Samba教程写完,也想知道一点新的技术动态。想学习的东西太多了,呵... ... 现在才感觉到时间真的很宝贵,一年也就是一晃就过去了... ... 在有生之年,做点自己喜欢做的事,人生无非如此... ...
11、参考文档;

《How to Install Slackware Linux to a DomainU》 《Xen v3.0 Users' Manual》
12、相关文档;
附件大小
fedoraxenslackgnome.jpg 142.59 千字节
fedoraxenslacklinuxsirterminal.jpg 100.47 千字节
fedoraxenslackxfce.jpg 87.89 千字节

在fedora6上如何虚拟

fedora6为什么只有xen,而没有xen0和xenU呢?这样该如何虚拟?

关于XEN的Migration的问题

你好,我是一名在日本学习的留学生,现在四年级,正在做关于XEN的毕业研究。
看到你的文章,使我对XEN有了很多了解。
我现在要做的研究是在两台电脑里装入XEN,利用XEN的Migration功能,让两台电脑的虚拟服务器可以互相移动。(例如,一台电脑出现问题时,可以把这上面的虚拟服务器移动到另外一抬上去)。

希望您能给我一些指点!

[rep]关于XEN的Migration的问题

两台机器都配置好dom0和domu就好. 之后用xm migrate . 可以live 或者non-live模式,不过都差不多, 主要要解决的问题就是:
1. migrate 中的fs问题. - 我做的一个类似的xen clusterS on physical-cluster 用的GNBD,
2. network问题. xen3.02的networking就是垃圾 :) (sorry), 还是自己建network-bridge script和route表吧, 要不总是出问题. 一旦做好了, migrate过程中不需要干涉, 因为它会copy vethx(ethx)的信息过去.

不过您的课题我不太明白,也帮不上什么,不好意思.

您可以,
1. 看user manual/ man xm? - 内容不多
2. xen-devel/xen-user mail-list,不过现在用xen的人太多了, user上的内容也鱼龙混杂, 不一定有你想要的, devel上的东西有许多讲的其实是user的东西 :)
3. google搜索吧, 我记得xen有3个论坛不错,一个是http://www.nabble.com/Xen-f935.html 另外两个好象是法文和德文,看不懂我就没记地址, 可以在xensource网站的wiki上找找连接

我在Aussie,离家在外都不容易 交个朋友 :)

自己建network-bridge

自己建network-bridge script和route表该怎么建呢?
能不能给一个你的例子?
我用的是xen3.0.2在RHEL AS4.1上

谢谢

谢谢你的意见,我现在也刚开始做这个研究,以后还会遇到很多麻烦,希望到时可以向你请教,很希望能和你交朋友,我MSN是tim_wangzheng@sina.com

按您的要求配置好后出现如下错误提示

按您的要求配置好后出现如下错误提示:
[root@localhost ~]# xm create -c slack
Using config file "/etc/xen/slack".
Warning: The nics option is deprecated. Please use an empty vif entry instead:

vif = [ '' ]

Error: Error connecting to xend: Connection refused. Is xend running?
而且我重新启动机器选择FC5 xen0 内核启动机器的时候,我看不到桌面呀?为什么?

xend服务器没有打开 吧。

xend 服务器没有打开吧。。

#/etc/init.d/xend start
#/etc/init.d/xendomains start

xen

恩 严重同意 还可以上xensource的maillist的user和devel版查 那个上面东西还是挺全的。 有没有对xen感兴趣的 大家一起学习下。

1 "Error: Error connecting

1 "Error: Error connecting to xend: Connection refused. Is xend running?"
重新启动xend吧 很多时候是没有/var/run/xenstore目录的原因, 手动建立放在启动中吧

2 Warning: The nics option is deprecated. Please use an empty vif entry instead:

vif = [ '' ]

nics参数已经不鼓励使用. 不过用了也没问题 - anonymous

没有打开xend服务器。

#/etc/init.d/xend start
#/etc/init.d/xendomains start

北南南北兄你太 伟大了

北南南北 你好 !
我 最喜欢 看你写的教程,你写的那么详细 ,
看让就明白
而不 象有些教程读了还不会

如果您用DHCP

如 果您用DHCP 自动获取IP,我们还要在Slackware中安装dhcp开头的包,这些包位于Slackware 10.2第一张光盘中的slackware目录中的d目录中;我们前面已经说过,要把Slackware的安装盘最好复制到Slackware的文件系统 root_fs中;比如您把Slackware 10.2的安装盘复制到 Slackware的文件系统/opt目录中,我们就可以挂载,然后安装所需要的包了;

bash-3.00#
bash-3.00# cd /mnt/cdrom/slackware/d
bash-3.00# installpkg dhcp*.tgz
bash-3.00# cd ~
bash-3.00# umount /mnt/cdrom

在Slackware 10.2第一张光盘中的slackware目录中的d目录中无法找到dhcp*.tgz文件,还有在bash-3.00#下无法执行mount -o loop /opt/slackware-10.2-install-d1.iso /mnt/cdrom 命令
bash-3.00# mount -o loop /opt/slackware-10.2-install-d1.iso /mnt/cdrom
/opt/slackware-10.2-install-d1.iso: No such file or directory
无法执行cd /mnt/cdrom/slackware/d
bash-3.00# cd /mnt/cdrom/slackware/d
bash: cd: /mnt/cdrom/slackware/d: No such file or directory

请问如何改正。谢谢

slackware的iso放在哪了??

这 个自己应该知道吧。要找到slackware的iso。。。。 另外dhcp*.tgz 包都放在n目录中。。。我写的有误。谢谢指正。。。。 我们前面已经说过,要把Slackware的安装盘最好复制到Slackware的文件系统root_fs中;比如您把Slackware 10.2的安装盘复制到 Slackware的文件系统/opt目录中,我们就可以挂载,然后安装所需要的包了;比如我们Slackware 安装盘slackware-10.2-install-d1.iso放在了Slackware系统中的 /opt目录中。才是我上面那样写的。。。

大同小异,用centos来替代就行

大同小异,用centos来替代就行
下载centos 的基础系统映像。。
http://jailtime.org/

大同小异,用centos来替代就行

大同小异,用centos来替代就行
下载centos 的基础系统映像。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值