Virtual PC/Virtual Server與Hyper-V的VHD相容性

在Windows 2008之前,我一直使用Virtual Server 2005來跑VM,所以手上有一堆經營多時的VM: Windows XP, Windows 2003, Vista, Windows 2008...

說老實話,要搞好一個開發測試環境,從灌OS、上Update、安裝必要的軟體,耗掉時間十分可觀(我寶貴的青春吶~~),換到Windows 2008後,若能直接把Virtual Server的VM Image(VHD檔)拿來用,省去砍掉重練的功夫,豈不快哉。

不過,先前實測的經驗不甚理想,搬移後OS或許可用,但總有一堆網路無法使用、滑鼠整合失效之類的後遺症,所以我印象中認定它不可行,還是選擇乖乖重裝新VM。

今天找到一篇文章(Are VHDs compatible between Hyper-V and Virtual Server and Virtual PC?),解答我多年的困惑。歸納成簡單結論: 雖然VHD格式未變,但Hyper-V需要的HAL版本(IO-APIC)與Virtual PC/Virtual Server需要的HAL版本(PIC)不同。所以可想像成將電腦A的HD拔起來插到電腦B時,若OS HAL版本與新硬體不匹配,就會衍生問題。[HAL的定義: 中文英文]

不相容的狀況分成兩種: Hyper-V的VHD(IO-APIC)移到VPC/Virtual Server的環境(PIC)必死無疑,連開機都別想。而我比較在意的VPC/Virtual Server VHD(PIC HAL)移到Hyper-V(IO-APIC),答案則是: 可行,只要不裝整合元件(Integration Components)的話。[這解釋了為什麼VM移到Hyper-V後網路卡、滑鼠整合會出錯。]

那麼HAL版本不同的問題可以解決嗎? Windows Vista以前的OS,HAL版本是在安裝過程決定的,雖然有些奇門遁甲之術可以抽換HAL,但並不在微軟官方支援範圍內。Windows Vista/Windows 7/Windows 2008比較幸運,可以透過以下的手法解決: [參考]

移到Hyper-V的Virtual Server VHD開機後會看到"Virtual Machine Bus"裝置出現小驚嘆號:

先移除舊版的Virtual Machine Add-In,啟動msconfig,勾選Detect HAL後重新開機:

接著重新安裝Hyper-V版的Integration Service,網路卡/滑鼠整合就通通回來了,讚!!

[2010-04-20更新]TechNet上有很詳盡的步驟說明: Virtual Machine Migration Guide: How To Migrate from Virtual Server to Hyper-V (感謝AskaSu補充)

歡迎推文分享:
Published 20 April 2010 01:53 PM 由 Jeffrey
Filed under: ,
Views: 20,163



意見

# u329 said on 20 April, 2010 08:50 PM

改HAL我以前也玩過,現在不這麼麻煩了,直接用免費的VirtualBox,既有的VHD/VMDK都可直接使用。若有使用Hyper-V,只需在GUI介面設定值頁籤的[IO-APIC]選項打勾即可,簡單又方便~~

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<April 2010>
SunMonTueWedThuFriSat
28293031123
45678910
11121314151617
18192021222324
2526272829301
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication