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

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

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

1.  將原本的 Linux 多安裝一顆新的硬碟，供磁碟影像備份之用  
    花費時間：5 分鐘
2.  透過 [Image for DOS](http://www.terabyteunlimited.com/image-for-dos.htm) 軟體開機，並執行完整備份，將 Linux 整個磁碟備份至新硬碟中 ( \*.TBI 檔 )  
    花費時間：15 分鐘
3.  接著將備份出來的硬碟移至另一台 Windows 主機  
    花費時間：5 分鐘
4.  利用 [Image for Windows](http://www.terabyteunlimited.com/image-for-windows.htm) 軟體將 \*.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 平台](/post/2008/10/03/How-to-install-Ubuntu-804-on-Hyper-V-platform)
3.  由於我的環境有實做 Bind IP to MAC，所以必須手動指派 VM 網路卡的 MAC 位址  
    ![image](https://stwillblogassets.blob.core.windows.net/files/images/external/stwillblogassets.blob.core.windows.net/d0abb150809e8189559f-image.png "image") 

8.  將新增並設定完成的 VM 開機即大功告成！

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

```
[   26.925126] udev: renamed network interface eth0 to eth1
```

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

```
auto eth1iface 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，這時再重開機就沒什麼問題了。

**相關連結**

-   [TeraByte Unlimited](http://www.terabyteunlimited.com/)
-   [如何安裝 Ubuntu 8.04 或其他 Linux 到 Hyper-V 平台](/post/2008/10/03/How-to-install-Ubuntu-804-on-Hyper-V-platform)
