[Hyper-V][Linux]Linux Integration Services Version 3.4 修正

[Hyper-V][Linux]Linux Integration Services Version 3.4 修正

自從發生前一篇「[Hyper-V][Linux]Linux Integration Services Version 3.4 注意事項」所遇到的問題之後,於是在網路上開始搜尋相關文章,剛好這一兩天在準備虛擬化戰士的考試的時候,意外地找到一些相關資料,發覺原來之前所遇到的問題是可以解決的,於是把之前 snapshot 出來有問題的 VM,再重新還原進行測試,果然可以順利使用 Linux Integration Services,以下將相關步驟給整理一下。

 

我的環境是在 Centos 6.3 的環境,如果您跟我一樣已經先透過 yum update 更新過 kernel 的話,那麼記得在開機的時候按下按鍵中斷,選擇較早之前沒有問題的 Kernel 版本進行開機。或者您要另外建立一個環境,來重新配合新的 Kernel 版本的 Linux Integration Services,等做好之後再把新版本的 RPM 拿過來使用也是可以的。

image

 

因為要製作新的 rpm 套件,因此在您的 Centos 環境下也必須要有相關檔案,以我個人的環境來說,就需要用 yum 來安裝以下的套件:

  • rpm-build
  • redhat-rpm-config
  • kernel-devel
  • make
  • gcc
yum install rpm-build redhat-rpm-config kernel-devel make gcc

 

接著我們把微軟的 Linux Integration Services 3.4 版本的 ISO 檔案給 mount 上來之後,進入到 RHEL63 的目錄中,安裝 microsoft-hyper-v-rhel63.3.4-1.20120727.src.rpm 這個套件,為了要來 Rebuild 新的版本的 RPM

rpm -ivh microsoft-hyper-v-rhel63.3.4-1.20120727.src.rpm

 

接著你就可以切換到 ~/rpmbuild/SPECS 的目錄下來檢查看看是否有剛剛這個步驟所解開的「microsoft-hyper-v.spec」檔案,接下來我們就可以使用 rpmbuild 的指令來重建新的 RPM 了。

rpmbuild -bb microsoft-hyper-v.spec

 

如果順利的話,那麼在 ~/rpmbuild/RPMS/i686 下面應該會有類似的檔案,當然這個可能會有點差異,因為你的時間可能會產生不同的檔案。

image

 

接下來我們就可以依序把舊版本的 microsoft-hyper-v-rhel63.3.4-1.20120727.i686 和 kmod-microsoft-hyper-v-rhel63.3.4-1.20120727.i686 給移除;接著再依序安裝您重新建立出來的 RPM

rpm -e microsoft-hyper-v-rhel63.3.4-1.20120727.i686
rpm -e kmod-microsoft-hyper-v-rhel63.3.4-1.20120727.i686
rpm -ivh kmod-microsoft-hyper-v-rhel63.3.4-1.20130226.i686.rpm
rpm -ivh microsoft-hyper-v-rhel63.3.4-1.20130226.i686.rpm

 

接著再用 reboot 指令去重新開機,就算大功告成了。如果您也遇到同樣的問題要處理,個人有幾點建議:

  1. 在做相關處理的話,建議配合 Hyper-V 的 snapshot ( 快照 ) 的功能,避免有問題無法啟動那就麻煩了。
  2. 如果您有多台 Linux 的話,可以先將 Build 出來的 RPM 備份出來,這樣下次遇到同樣的問題只要把檔案複製進去後,執行最後一個步驟就可以了。
  3. 建議先熟悉幾個 Linux 的相關指令,這樣操作起來會比較順暢
    • ls
    • yum
    • rpm