The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

利用 Image for Windows 實現 Linux 虛擬化 P2V 轉移

今天順利的利用 Image for Windows 軟體 (商業軟體) 將壹台老舊的 Linux 主機虛擬化 ( Hyper-V ),轉移的過程還算順利,但之前為了摸熟 Image for Windows 與 Linux on Hyper-V 也碰過不少釘子,沒有之前的經驗還真的很難這麼順利轉移成功,特此記錄一下 P2V 的過程。

整體的 P2V 程序大約花費不到 1 個小時,過程紀錄如下:

  1. 將原本的 Linux 多安裝一顆新的硬碟,供磁碟影像備份之用
    花費時間:5 分鐘
  2. 透過 Image for DOS 軟體開機,並執行完整備份,將 Linux 整個磁碟備份至新硬碟中 ( *.TBI 檔 )
    花費時間:15 分鐘
  3. 接著將備份出來的硬碟移至另一台 Windows 主機
    花費時間:5 分鐘
  4. 利用 Image for Windows 軟體將 *.TBI 備份檔還原成 VHD 格式 ( *.vhd ),但須注意新增的 VHD 虛擬硬碟空間不可小於原本 Linux 硬碟的容量。
    花費時間:10 分鐘
  5. 將 VHD 虛擬硬碟複製到 Hyper-V 主機
    花費時間:10 分鐘
  6. 到 Hyper-V 主機新增虛擬機器 ( New Virtual Machine )
    花費時間:5 分鐘
    1. 選取第5步驟所複製進來的 VHD 虛擬硬碟
    2. 新增時不用選取網路卡,必須新增 VM 完後再手動新增 Legacy Network Adapter 才行。
      參見:如何安裝 Ubuntu 8.04 或其他 Linux 到 Hyper-V 平台
    3. 由於我的環境有實做 Bind IP to MAC,所以必須手動指派 VM 網路卡的 MAC 位址
      image 
  7. 將新增並設定完成的 VM 開機即大功告成!

由於我實際在轉移時,第一次在上述 6-3 步驟並沒有手動指派 MAC 位址,這導致我第一次開機時 Linux 找不到網卡,這時我利用 dmesg 指令 ( http://en.wikipedia.org/wiki/Dmesg ) 查到開機過程中的確有抓到網卡,但是網路介面卻把 eth0 改成 eth1 了,如下:

[   26.925126] udev: renamed network interface eth0 to eth1

這時我修改 /etc/network/interfaces 檔案,將原本定義的網路設定從 eth0 改成 eth1

auto eth1
iface eth1 inet static
address 192.168.99.9
netmask 255.255.255.0
network 192.168.99.0
broadcast 192.168.99.255
gateway 192.168.99.254

改完後再用 ifup eth1 即可啟用網路,但由於 Bind IP to MAC 的關係讓我的主機無法對外連線,這時我才關機後將 VM 網卡改成靜態指派的 MAC 位址。

但重開機後網路介面卻又找不到了,這時再用 dmesg 指令查詢開機過程發現這次沒有改網路介面編號了,所以我又再改一次 /etc/network/interfaces 檔案,將剛剛修改過的網路設定從 eth1 改回 eth0,這時再重開機就沒什麼問題了。

相關連結