分享

rhel5使用命令行在xen下安装rhel4系统(安装成功!!!3楼记录安装过程)...

 小飞虾 2007-07-04
rhel5使用命令行在xen下安装rhel4系统(安装成功!!!3楼记录安装过程)

在rhel5下面,可以通过xwindow下的virt-install工具来安装新的虚拟系统,但是不知道如何在命令行界面下通过指定http的安装源来安装系统?
官方的xen 3.0 user manual也只是提到通过复制系统的方式来建立新的虚拟机,并没有说如何安装新的系统。

1. 准备rhel4的安装源。
安装源的问题一直在困扰我,xen不能像vmware那样使用iso文件,只能通过http/nfs方式安装,问题是我不知道xen需要什么样的http/nfs安装源,redhat.com一高人指点我一个脚本:

for i in *.iso
do
   mount $i /mnt -o loop
   cp -a /mnt/* /var/www/html/rhel4/
   umount /mnt
done

我终于明白了,不能把RHEL4的iso分别mount到web服务器的不同目录下,xen找不到的,一定要把所有rpm包放到一个目录下,忽然觉得这个过程和以前配置system-config-package的过程很像。

当然我并没有按他这个脚本去把所有ISO里的文件都复制出来,太浪费空间,我只是先mount所有ISO,再建立一个目录,在这个新目录下通过建立软链接的方式把ISO文件的所有内容复制过来,有些文件名重复的文件可以略过。
另外需要提醒的是,RedHat目录需要手工建立,它下面的子目录RPMS需要手工建立,因为几个ISO文件里的RPMS子目录下所有rpm包都要复制过来。。。


下面是我做安装源时的命令,我把几个ISO文件mount在cd[1-5]这五个目录里,然后另外又建立了一个files目录,然后在files目录下执行下列命令:

ln -s ../cd1/* .
rm RedHat
mkdir RedHat
cd RedHat/
mkdir base
mkdir RPMS
cd base
ln -s ../../../cd1/RedHat/base/* .
cd ../RPMS
ln -s ../../../cd1/RedHat/RPMS/* .
ln -s ../../../cd2/RedHat/RPMS/* .
ln -s ../../../cd3/RedHat/RPMS/* .
ln -s ../../../cd4/RedHat/RPMS/* .
ln -s ../../../cd5/RedHat/RPMS/* .
cd ../../
mkdir images
cd images/
ln -s ../../cd1/images/* .
ln -s ../../cd1/isolinux xen

files目录的结构与cd1的是相同的。

对最后一条命令的说明:使用virt-install命令安装虚拟机,这个程序会在用户指定的web目录下自动去查找"/images/xen"目录下的启动文件,所以必须在images目录下手工建立xen目录,并且把系统启动文件复制到xen目录下,我自己分析如果用RHEL4光盘启动的话,实际上是启动了isolinux系统,然后在这个系统里安装RHEL4,所以,我相信如果把isolinux给virt-install的话,这个程序一定能通过isolinux来引导虚拟机,进而安装系统。所以我这里直接把isolinux目录放进images目录,只是名字改为xen,让virt-install程序能够找到。
(RHEL5的cd1的images目录下已经有xen目录了,可以省掉上面这个步骤。)



2. 安装系统
RHEL4的安装源准备好以后,使用virt-install程序安装虚拟机。
virt-install程序既有图形界面,又有字符界面,以前安装虚拟RHEL5是通过图形界面的,到现在还没用过它的字符界面,很好奇,所以试用一把:

virt-install -n rhel4 -r 256 --vcpus=1 -f /xen/rhel4_system_1  --nographics -p -d -l http://192.168.64.222/RHEL4.U4/files" -d

熟悉xen的同学对这条命令的参数应该可以猜个八九不离十了吧?我觉得连/etc/xen目录下的虚拟机配置文件都省了。。。

运行以后的信息:

Starting install...
Fri, 15 Jun 2007 17:04:52 DEBUG    Creating guest from ‘<domain type=‘xen‘>
  <name>rhel4</name>
  <memory>262144</memory>
  <uuid>86b5d4d1-de6a-1d52-178b-8105a7f98236</uuid>
  
  <os>
    <type>linux</type>
    <kernel>/var/lib/xen/vmlinuz.OGcr3P</kernel>
    <initrd>/var/lib/xen/initrd.img.IRmEq7</initrd>
    <cmdline> method=http://192.168.64.222/RHEL4.U4/files  </cmdline>
  </os>

  <on_poweroff>destroy</on_poweroff>
  <on_reboot>destroy</on_reboot>
  <on_crash>destroy</on_crash>
  <vcpu>1</vcpu>
  <devices>
    <disk type=‘file‘ device=‘disk‘>
      <driver name=‘tap‘/>
      <source file=‘/xen/rhel4_system_1‘/>
      <target dev=‘xvda‘/>
    </disk>

    <interface type=‘bridge‘><source bridge=‘xenbr0‘/><mac address=‘00:16:3e:32:4f:a2‘/><script path=‘/etc/xen/scripts/vif-bridge‘/></interface>

   
  </devices>
</domain>

libvir: Xen Daemon error : POST operation failed: (xend.err "Error creating domain: (22, ‘Invalid argument‘)")
Failed to create domain rhel4
Traceback (most recent call last):
  File "/usr/sbin/virt-install", line 447, in ?
    main()
  File "/usr/sbin/virt-install", line 411, in main
    dom = guest.start_install(conscb)
  File "/usr/lib/python2.4/site-packages/virtinst/ParaVirtGuest.py", line 220, in start_install
    return XenGuest.XenGuest.start_install(self, consolecb)
  File "/usr/lib/python2.4/site-packages/virtinst/XenGuest.py", line 367, in start_install
    self.domain = self.conn.createLinux(cxml, 0)
  File "/usr/lib/python2.4/site-packages/libvirt.py", line 249, in createLinux
    if ret is None:raise libvirtError(‘virDomainCreateLinux() failed‘)
libvirt.libvirtError: virDomainCreateLinux() failed

最后是出错信息,目前还不知道是哪里的问题,正在想办法解决中,解决以后我会继续把过程写出来,同学们知道如何解决的话,麻烦分享一下,谢谢!


[ 本帖最后由 sailer_sh 于 2007-6-20 14:18 编辑 ]


您对本贴的看法:支持本贴(0) 反对本贴(0)
[广告] 免费赠送1000张移动电话充值卡 | 盖国强讲述oracle 11g新特性!热报! | IBM端到端安全解决方案与专业服务 | 新版Ruby开张
sailer_sh
精灵王




会员UID:159553
注册日期:2004-5-20
最后登录:2007-7-4
帖子总数:357
精华贴子:4

可用积分:347
信誉积分:100
专家积分:0
总积分:447

在线状态:...离线...

[资料] [站内短信] [Blog]


顶部
2楼 发表于 2007-6-19 09:29 
回复 #1 sailer_sh 的帖子

20070619
早上在网上找关于xen出错解决办法的贴子,忽然发觉到顶楼贴子里有一个地方可能有问题,而我一直没有意识到,就是Xend可能并不支持rhel4的安装光盘里的images/isolinux下的内核文件,xend不能用这个内核文件启动,导致报错。也就是说,在安装虚拟系统时,我必须找一个被xend支持的内核来启动系统,这个内核从哪里来?当时是来自rhel5,我前面提到过,rhel5的安装光盘的images目录下有个xen目录,这个目录下有被xend支持的内核,也许我可以借用这个目录下的内核文件来启动虚拟系统,进入rhel4的安装界面。
把rhel4安装光盘的images目录下的xen目录复制到rhel4的images目录下,再使用virt-install命令,在一大堆提示信息后,果然进入了rhel4的安装界面,附图是第一个安装界面。


图片附件: [rhel5的xen下安装rhel4] install_rhel4_in_xen_1.JPG (2007-6-19 09:31, 43.15 K)


下面我把完整的安装过程再写一遍,顶楼的贴子留着,把出现问题和解决问题的过程留下。


-------------------------------------------

1. Web服务器上准备rhel4的安装源。
安装源的问题一直在困扰我,xen不能像vmware那样使用iso文件,只能通过http/nfs方式安装,问题是我不知道xen需要什么样的http/nfs安装源,redhat.com一高人指点我一个脚本:

for i in *.iso
do
   mount $i /mnt -o loop
   cp -a /mnt/* /var/www/html/rhel4/
   umount /mnt
done

我终于明白了,不能把RHEL4的iso分别mount到web服务器的不同目录下,xen找不到的,一定要把所有rpm包放到一个目录下,忽然觉得这个过程和以前配置system-config-package的过程很像。

当然我并没有按他这个脚本去把所有ISO里的文件都复制出来,太浪费空间,我只是先mount所有ISO,再建立一个目录,在这个新目录下通过建立软链接的方式把ISO文件的所有内容复制过来,有些文件名重复的文件可以略过。
另外需要提醒的是,RedHat目录需要手工建立,它下面的子目录RPMS需要手工建立,因为几个ISO文件里的RPMS子目录下所有rpm包都要复制过来。。。

下面是做安装源时的命令,把几个ISO文件mount在cd[1-5]这五个目录里,然后另外又建立了一个files目录,然后在files目录下执行下列命令:

ln -s ../cd1/* .
rm -rf RedHat
mkdir RedHat
cd RedHat/
mkdir base
mkdir RPMS
cd base
ln -s ../../../cd1/RedHat/base/* .
cd ../RPMS
ln -s ../../../cd1/RedHat/RPMS/* .
ln -s ../../../cd2/RedHat/RPMS/* .
ln -s ../../../cd3/RedHat/RPMS/* .
ln -s ../../../cd4/RedHat/RPMS/* .
ln -s ../../../cd5/RedHat/RPMS/* .
cd ../../
rm -rf images
mkdir images
cd images/
ln -s ../../cd1/images/* .

复制rhel5安装光盘images目录下的xen目录到cd1/images目录下。
对这条一条命令的说明:使用virt-install命令安装虚拟机,这个程序会在用户指定的web目录下自动去查找"/images/xen"目录下的启动文件,所以必须在images目录下手工建立xen目录,并且把系统启动文件复制到xen目录下,rhel5的images/xen目录下的内核文件被xend支持,把这个目录复制过来,把这个目录给virt-install的话,它一定能通过xen目录下的内核文件来引导虚拟机,进入安装系统的界面。

把cd1/Redhat/base目录下的*.img复制到images目录下。

files目录的结构与cd1的是相同的。
(RHEL5的cd1的images目录下已经有xen目录了,可以省掉上面这个步骤。)

2. 使用命令安装系统:

virt-install -n rhel4_system_1 -r 512 --vcpus=1 -f /xen/rhel4_system_1  --nographics -p -d -l "http://192.168.64.222/RHEL4.U4/files" -d

在加载安装镜像的时候出错,见附图:


图片附件: [rhel4安装界面下的错误] install_rhel4_in_xen_3.JPG (2007-6-19 11:29, 35.57 K)



在web服务器的apache日志上看到,rhel4的安装程序还要读取updates.img和disc1两个文件,但是rhel4的所有iso里都没有这两个文件,不知道上图是不是因为这个而引起错误。

[ 本帖最后由 sailer_sh 于 2007-6-20 13:53 编辑 ]


您对本贴的看法:支持本贴(0) 反对本贴(0)
[广告] 免费赠送1000张移动电话充值卡 | 盖国强讲述oracle 11g新特性!热报! | IBM端到端安全解决方案与专业服务 | 新版Ruby开张
sailer_sh
精灵王




会员UID:159553
注册日期:2004-5-20
最后登录:2007-7-4
帖子总数:357
精华贴子:4

可用积分:347
信誉积分:100
专家积分:0
总积分:447

在线状态:...离线...

[资料] [站内短信] [Blog]


顶部
3楼 发表于 2007-6-20 14:16 
回复 #2 sailer_sh 的帖子

20070620
昨天在安装过程中“unable to retrieve the install image”的问题终于解决!问题不在于安装程序需要加载哪个镜像文件,而在于RHEL4.U4根本就不被xen支持,目前xen下能够安装的RHEL4只有u5版本!
上午在网上下载了RHEL4.U5版本,cd1的images目录下就有xen目录,而u4及以前的版本是没有xen目录的,很明显,这个目录是用来支持xen下虚拟安装的。终于找到了问题的根源!

接下来的事情就好办了。
1. 在web服务器上的disc/RHEL4U5/目录下mount 5个ISO文件到cd[1-5]目录,同时新建files目录,运行以下的脚本(一楼和二楼的这个脚本都有些小错误,这次的是修正版本):

ln -s ../cd1/* .
rm -rf RedHat
mkdir RedHat
cd RedHat
mkdir base
mkdir RPMS
cd base
ln -s ../../../cd1/RedHat/base/* .
cd ../RPMS
ln -s ../../../cd1/RedHat/RPMS/* .
ln -s ../../../cd2/RedHat/RPMS/* .
ln -s ../../../cd3/RedHat/RPMS/* .
ln -s ../../../cd4/RedHat/RPMS/* .
ln -s ../../../cd5/RedHat/RPMS/* .

在xen的系统上运行命令:

virt-install -n rhel4 -r 256 -s 3 --vcpus=1 -f /xen/rhel4_system_1  --nographics -p -d -l "http://192.168.64.221/disc/RHEL4U5/files/"

新建立一个虚拟机,256M内存,3G硬盘,1个CPU。

接下来的事情都很顺利,熟悉的安装界面又出现了,做一些设置以后,系统开始安装,一直到安装结束。。。

附一张图,在加载了N多个文件以后,出现的欢迎画面:


图片附件: inst_rhel4u5_in_xen_of_rhel5_1.JPG (2007-6-20 14:16, 37.34 K)



软件包安装中:


图片附件: inst_rhel4u5_in_xen_of_rhel5_2.JPG (2007-6-20 14:28, 46.73 K)



[ 本帖最后由 sailer_sh 于 2007-6-20 14:38 编辑 ]

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多