导航新进会员
在线用户目前共有 0 位用户和 6 位游客在线。
|
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的一般应用; 目录
2、运行Xen的平台选择; 3、 在Fedora Core 5.0中安装Slackware 10.2的方法; 4、Fedora Core 5.0 的Xen的配置; 5、启动Slackware,Xen虚拟Slackware正式开始; 6、Xen 虚拟的Slackware的远程访问方法;
6.12 查看sshd服务器已经运行; 6.13 判断sshd服务器是否安装; 6.14 如何打开sshd服务器; 6.15 查看是sshd服务器是否运行起来; 6.16 查看网卡的ip地址; 6.17 在Fedora 中通过ssh访问 Slackware; 8、常见问题处理; 9、关于本文; 10、后记; 11、参考文档; 12、相关文档; +++++++++++++++++++++++++++++++++++++++++++++++ 正文 +++++++++++++++++++++++++++++++++++++++++++++++ 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_FC5title Fedora Core (2.6.16-1.2080_FC5xen0)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 xen2.31 确认Xen服务器的运行级别; [root@localhost ~]# chkconfig --list |grep xend[root@localhost ~]# chkconfig --level 35 xend on2.32 Xen服务器的启动、停止的方法; 上面我们提到了当系统启动时,xend服务器会自动打开。如果我们修改配置文件或xend有问题时,我们可能需要重启xend和xendomains服务器;下面是一个简单的说明,其它服务器的启动和停止也类似;对于Fedora Core 来说,我们经常用的服务器守护程序(也就是服务器程序的开关),大多都在/etc/init.d目录中;自己看看就好,如果您不懂。 [root@localhost ~]# /etc/init.d/xend start 注:启动2.33 Xen和防火墙的关系的处理; 防火墙包括iptables和SELinux,我是建议把他们关掉,如果您是新手,就关了吧; [root@localhost ~]# system-config-securitylevel2.34 查看Xen是否运行起来了xm list; [root@localhost ~]# xm list[root@localhost ~]# uname -r -p3、 在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 UMLmkuml-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第二步:在mkuml-2004.07.17中创建slackware-current目录,并把Slackware 10.2的两张光盘内容提取出来放入slackware-current目录中; [root@localhost ~]# cd mkuml-2004.07.17第三步:更改mkuml-2004.07.17目录中的mkuml.sh; 在mkuml.sh中找到如下段落; # file system sizes# file system sizesmke2fs -F -j root_fs mke2fs -F -j -O ^resize_inode root_fs第四步:执行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[root@localhost mkuml-2004.07.17]# mkdir /mnt/slack第五步:复制相关文件到root_fs映像中; 要把一些文件写到root_fs中,我们首先必须要做的是挂载root_fs映像文件,如前面所提到的mount -o loop的办法; [root@localhost ~]# mount -o loop /opt/slack102vm/root_fs /mnt/slack[root@localhost ~]# mkdir /mnt/slack/lib/modules第六步:更改root_fs中的/etc/inittab和/etc/fstab文件; 还是如同前面一样,要先挂载root_fs到/mnt/slack目录中;如果已经挂载好了,就直接进入/mnt/slack目录就行了。 找到 /mnt/slack/etc/inittab文件中的; c0:1235:respawn:/sbin/agetty 38400 tty0 linux#c0:1235:respawn:/sbin/agetty 38400 tty0 linux/dev/sda1 / ext3 defaults 1 1第七步:chroot 到Slackware系统进行配置; 我们要挂载 /opt/slack102vm中的root_fs到/mnt/slack,然后chroot到/mnt/slack; [root@localhost ~]# chroot /mnt/slackbash-3.00# ldconfigbash-3.00# touch /etc/rc.d/rc.modulesbash-3.00# mount -o loop /opt/slackware-10.2-install-d1.iso /mnt/cdrombash-3.00# netconfig 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.1bash-3.00# exit [root@localhost ~]# umount /mnt/slack4、Fedora Core 5.0 的Xen的配置; 我们在Fedora Core 5.0中/etc/xen的目录中,创建一个文件slack,目的是通过/etc/xen/slack引导Slackware 10.2; [root@localhost ~]# touch /etc/xen/slackkernel ="/boot/vmlinuz-2.6.16-1.2080_FC5xenU"kernel ="/boot/vmlinuz-2.6.16-1.2080_FC5xenU"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 slackWelcome to Linux 2.6.16-1.2080_FC5xenU (tty1)Waking a person unnecessarily should not be consideredroot@slack:~# ifconfig eth0root@slack:~# ping linuxsir.org6、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 slack6.12 查看sshd服务器已经运行; 登录Slackware后,查看sshd服务器已经运行;如果有下面类似下面的提示,表示sshd服务器已经运行,否则表示您没有安装sshd 服务器; root@slack:~# pgrep sshd6.13 判断sshd服务器是否安装; 判断sshd服务器是否安装,请查看/var/adm/packages,如果里面有openssh的文件,表示已经安装; root@slack:~# ls /var/adm/packages/openssh*root@slack:~# installpkg openssh*6.14 如何打开sshd服务器呢? root@slack:~# /etc/rc.d/rc.sshd6.15 查看是sshd服务器是否运行得起来了? root@slack:~# pgrep sshd6.16 查看网卡的ip地址; root@slack:~# ifconfig6.17 在Fedora 中通过ssh访问 Slackware; [root@localhost ~]# ssh root@192.168.1.116.2 在Fedora 中通过vnc访问; 在Fedora 中能通过vnc连接远程的Slackware桌面,这是一个方便的工具;也是在OpenSource操作系统中最常用的工具之一;在Fedora 中,我们要用到vnc的客户端vncviewer,而在远程的Slackware中,我们要架vnc的服务器vncserver; 6.21 在Fedora 中安装vnc; [root@localhost ~]# yum install vnc6.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/\root@slack:~# installpkg tightvnc-1.3dev7-i486-1kjz.tgz6.23 在Slackware中配置和运行vncserver; 第一步: 运行vncserver,生成登录密码和配置文件; 我们运行一下vncserver,这样就在当前用户的家目录下生成一个.vnc的目录,这个目录中有一个文件是配置文件xstartup比较重要,随后我们会介绍如何更改这个文件; root@slack:~# vncserver第二步:关掉vncserver; root@slack:~#pkill vnc第三步:配置vncserver; 其实配置vncserver 主要是想让客户机浏览Slackware 时,能看到什么桌面环境,是GNOME还是KDE,还是Wmaker?用什么桌面就得在Slackware中安装什么。Slackware系统比较小,总共才两张盘,安装安装就行了,用installpkg 或pkgtool 来安装;如何安装桌面环境不提了,我们已经多次说到如何安装Slackware的软件包了; 比如 我们想让客户机通过vncview浏览Wmaker桌面;我就得如下做; root@slack:~# cd ~/.vnc 注:切换到当前用户家目录中的.vnc目录;我用的是root用户;第四步:启动vncserver ; root@slack:~/.vnc# vncserver -depth 24 -geometry 800x600 -pixelformat RGB888root@slack:~/.vnc# vncserver -depth 24 -geometry 800x600 -pixelformat RGB8886.24 在Fedora 中通过vncview访问Slackware桌面; 首先我们在Fedora Core中运行vncview,vncview 是用来连接远程桌面的工具; [root@localhost ~]$ vncviewerVNC server: 192.168.1.11:17、Xen的相关用法及说明; 主要是xm工具的用法,请参考:《Xen 初学者指南》 8、常见问题处理; 9、关于本文; 本文是我用三个晚上写成的,修改放在了白天。这篇文档文字比较多,主要怕新手或对Xen不太熟悉的弟兄看不清楚,所以就多写了点。技术含量呢,应该说比较低,大家将就着看吧。如果能指点指点,是我最高兴的事了。一个人写文档是有点无聊,大家参与相互学习和交流,可能会好一点 ... ... 10、后记; 想把去年未完成的Samba教程写完,也想知道一点新的技术动态。想学习的东西太多了,呵... ... 现在才感觉到时间真的很宝贵,一年也就是一晃就过去了... ... 在有生之年,做点自己喜欢做的事,人生无非如此... ... 11、参考文档; 《How to Install Slackware Linux to a DomainU》 《Xen v3.0 Users' Manual》 12、相关文档;
|
最新评论
|
在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放在哪了??
他能装AS4U1吗?为什么网上都没有介绍呢?
很好!期待另外的大做!
大同小异,用centos来替代就行
大同小异,用centos来替代就行
下载centos 的基础系统映像。。
http://jailtime.org/
大同小异,用centos来替代就行
大同小异,用centos来替代就行
下载centos 的基础系统映像。。