免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14329 | 回复: 11
打印 上一主题 下一主题

rhel5使用命令行在xen下安装rhel4系统(安装成功!!!3楼记录安装过程) [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-13 13:12 |只看该作者 |倒序浏览
在rhel5下面,可以通过xwindow下的virt-install工具来安装新的虚拟系统,但是不知道如何在命令行界面下通过指定http的安装源来安装系统?
官方的xen 3.0 user manual也只是提到通过复制系统的方式来建立新的虚拟机,并没有说如何安装新的系统。

1. 准备rhel4的安装源。
安装源的问题一直在困扰我,xen不能像vmware那样使用iso文件,只能通过http/nfs方式安装,问题是我不知道xen需要什么样的http/nfs安装源,redhat.com一高人指点我一个脚本:
  1. for i in *.iso
  2. do
  3.    mount $i /mnt -o loop
  4.    cp -a /mnt/* /var/www/html/rhel4/
  5.    umount /mnt
  6. 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目录下执行下列命令:
  1. ln -s ../cd1/* .
  2. rm RedHat
  3. mkdir RedHat
  4. cd RedHat/
  5. mkdir base
  6. mkdir RPMS
  7. cd base
  8. ln -s ../../../cd1/RedHat/base/* .
  9. cd ../RPMS
  10. ln -s ../../../cd1/RedHat/RPMS/* .
  11. ln -s ../../../cd2/RedHat/RPMS/* .
  12. ln -s ../../../cd3/RedHat/RPMS/* .
  13. ln -s ../../../cd4/RedHat/RPMS/* .
  14. ln -s ../../../cd5/RedHat/RPMS/* .
  15. cd ../../
  16. mkdir images
  17. cd images/
  18. ln -s ../../cd1/images/* .
  19. 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是通过图形界面的,到现在还没用过它的字符界面,很好奇,所以试用一把:
  1. 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目录下的虚拟机配置文件都省了。。。

运行以后的信息:
  1. Starting install...
  2. Fri, 15 Jun 2007 17:04:52 DEBUG    Creating guest from '<domain type='xen'>
  3.   <name>rhel4</name>
  4.   <memory>262144</memory>
  5.   <uuid>86b5d4d1-de6a-1d52-178b-8105a7f98236</uuid>
  6.   
  7.   <os>
  8.     <type>linux</type>
  9.     <kernel>/var/lib/xen/vmlinuz.OGcr3P</kernel>
  10.     <initrd>/var/lib/xen/initrd.img.IRmEq7</initrd>
  11.     <cmdline> method=http://192.168.64.222/RHEL4.U4/files  </cmdline>
  12.   </os>

  13.   <on_poweroff>destroy</on_poweroff>
  14.   <on_reboot>destroy</on_reboot>
  15.   <on_crash>destroy</on_crash>
  16.   <vcpu>1</vcpu>
  17.   <devices>
  18.     <disk type='file' device='disk'>
  19.       <driver name='tap'/>
  20.       <source file='/xen/rhel4_system_1'/>
  21.       <target dev='xvda'/>
  22.     </disk>

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

  24.    
  25.   </devices>
  26. </domain>
  27. '
  28. libvir: Xen Daemon error : POST operation failed: (xend.err "Error creating domain: (22, 'Invalid argument')")
  29. Failed to create domain rhel4
  30. Traceback (most recent call last):
  31.   File "/usr/sbin/virt-install", line 447, in ?
  32.     main()
  33.   File "/usr/sbin/virt-install", line 411, in main
  34.     dom = guest.start_install(conscb)
  35.   File "/usr/lib/python2.4/site-packages/virtinst/ParaVirtGuest.py", line 220, in start_install
  36.     return XenGuest.XenGuest.start_install(self, consolecb)
  37.   File "/usr/lib/python2.4/site-packages/virtinst/XenGuest.py", line 367, in start_install
  38.     self.domain = self.conn.createLinux(cxml, 0)
  39.   File "/usr/lib/python2.4/site-packages/libvirt.py", line 249, in createLinux
  40.     if ret is None:raise libvirtError('virDomainCreateLinux() failed')
  41. libvirt.libvirtError: virDomainCreateLinux() failed
复制代码
最后是出错信息,目前还不知道是哪里的问题,正在想办法解决中,解决以后我会继续把过程写出来,同学们知道如何解决的话,麻烦分享一下,谢谢!


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

论坛徽章:
0
2 [报告]
发表于 2007-06-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的安装界面,附图是第一个安装界面。

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


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

1. Web服务器上准备rhel4的安装源。
安装源的问题一直在困扰我,xen不能像vmware那样使用iso文件,只能通过http/nfs方式安装,问题是我不知道xen需要什么样的http/nfs安装源,redhat.com一高人指点我一个脚本:
  1. for i in *.iso
  2. do
  3.    mount $i /mnt -o loop
  4.    cp -a /mnt/* /var/www/html/rhel4/
  5.    umount /mnt
  6. 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目录下执行下列命令:
  1. ln -s ../cd1/* .
  2. rm -rf RedHat
  3. mkdir RedHat
  4. cd RedHat/
  5. mkdir base
  6. mkdir RPMS
  7. cd base
  8. ln -s ../../../cd1/RedHat/base/* .
  9. cd ../RPMS
  10. ln -s ../../../cd1/RedHat/RPMS/* .
  11. ln -s ../../../cd2/RedHat/RPMS/* .
  12. ln -s ../../../cd3/RedHat/RPMS/* .
  13. ln -s ../../../cd4/RedHat/RPMS/* .
  14. ln -s ../../../cd5/RedHat/RPMS/* .
  15. cd ../../
  16. rm -rf images
  17. mkdir images
  18. cd images/
  19. 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. 使用命令安装系统:
  1. 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
复制代码


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


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

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

论坛徽章:
0
3 [报告]
发表于 2007-06-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目录,运行以下的脚本(一楼和二楼的这个脚本都有些小错误,这次的是修正版本):

  1. ln -s ../cd1/* .
  2. rm -rf RedHat
  3. mkdir RedHat
  4. cd RedHat
  5. mkdir base
  6. mkdir RPMS
  7. cd base
  8. ln -s ../../../cd1/RedHat/base/* .
  9. cd ../RPMS
  10. ln -s ../../../cd1/RedHat/RPMS/* .
  11. ln -s ../../../cd2/RedHat/RPMS/* .
  12. ln -s ../../../cd3/RedHat/RPMS/* .
  13. ln -s ../../../cd4/RedHat/RPMS/* .
  14. ln -s ../../../cd5/RedHat/RPMS/* .
复制代码


在xen的系统上运行命令:

  1. 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多个文件以后,出现的欢迎画面:


软件包安装中:


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

论坛徽章:
0
4 [报告]
发表于 2007-06-26 16:15 |只看该作者
请问,我是完全按照你的步骤走的,开始安装以后出现错误,"Error opening /dev/xvda: No such device or address", 请问怎样能解决这个问题呢? 万分感谢!

论坛徽章:
0
5 [报告]
发表于 2007-06-26 17:33 |只看该作者
我没有碰到你说的这种情况,你把/var/log/xen目录下的日志文件的内容贴上来看看,也许能帮到你。

论坛徽章:
0
6 [报告]
发表于 2007-06-26 18:33 |只看该作者
其实我看过你以前发过的一个帖子,但是当时没有说怎么解决的。
http://linux.chinaunix.net/bbs/viewthread.php?tid=896804

我觉得是一个问题。

论坛徽章:
0
7 [报告]
发表于 2007-06-27 09:53 |只看该作者
对了,你看那个贴子的后几楼,在rhel5上,因为selinux的原因,建议把xen虚拟机装在/xen目录下,而不是其他目录。
后来我把虚拟机装在/xen目录下的时候,一切正常了。

论坛徽章:
0
8 [报告]
发表于 2007-06-27 12:23 |只看该作者
受教了,最近刚好在弄xen,多谢楼主经验!!!

论坛徽章:
0
9 [报告]
发表于 2007-06-27 14:28 |只看该作者
学习中,一般只玩简单的vmware,知道xen,但是从来没玩过

论坛徽章:
0
10 [报告]
发表于 2008-12-03 17:28 |只看该作者
RHEL4,没有安装成功,问题出现在设置完成开始文件安装时:
Unable to read package metadata. This may be due to a missing
repodata directory.  Please ensure that your install tree has
been correctly generated.  Cannot retrieve repository metadata
(repomd.xml) for repository: anaconda-base-200804301824.i386.
Please verify its path and try again。
不过同样的做法RHEL5安装上了,
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP