rhel5使用命令行在xen下安裝rhel4系統(安裝成功!!!3樓記錄安裝過程)

←手機掃碼閱讀     火星人 @ 2014-03-04 , reply:0

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這五個目錄里,然後另外又建立了一個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 xenfiles目錄的結構與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 編輯 ]
《解決方案》

回復 #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一高人指點我一個腳本: 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這五個目錄里,然後另外又建立了一個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

在載入安裝鏡像的時候出錯,見附圖:


在web伺服器的apache日誌上看到,rhel4的安裝程序還要讀取updates.img和disc1兩個文件,但是rhel4的所有iso里都沒有這兩個文件,不知道上圖是不是因為這個而引起錯誤。

[ 本帖最後由 sailer_sh 於 2007-6-20 13:53 編輯 ]
《解決方案》

回復 #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目錄,同時新建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多個文件以後,出現的歡迎畫面:


軟體包安裝中:


[ 本帖最後由 sailer_sh 於 2007-6-20 14:38 編輯 ]
《解決方案》

請問,我是完全按照你的步驟走的,開始安裝以後出現錯誤,"Error opening /dev/xvda: No such device or address", 請問怎樣能解決這個問題呢? 萬分感謝!
《解決方案》

我沒有碰到你說的這種情況,你把/var/log/xen目錄下的日誌文件的內容貼上來看看,也許能幫到你。
《解決方案》

其實我看過你以前發過的一個帖子,但是當時沒有說怎麼解決的。
http://linux.chinaunix.net/bbs/viewthread.php?tid=896804

我覺得是一個問題。
《解決方案》

對了,你看那個貼子的後幾樓,在rhel5上,因為selinux的原因,建議把xen虛擬機裝在/xen目錄下,而不是其他目錄。
後來我把虛擬機裝在/xen目錄下的時候,一切正常了。
《解決方案》

受教了,最近剛好在弄xen,多謝樓主經驗!!!
《解決方案》

學習中,一般只玩簡單的vmware,知道xen,但是從來沒玩過
《解決方案》

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安裝上了,




[火星人 ] rhel5使用命令行在xen下安裝rhel4系統(安裝成功!!!3樓記錄安裝過程)已經有554次圍觀

http://coctec.com/docs/service/show-post-6723.html