VMware 64-bit Guest OS Support

去年聖誕節買的 x201 ,下單前還特別注意 CPU 是否支援 Virtualization ,直到上個月拿來跑 64 bit guest OS 時,才發現 Windows 會進入開機、當機的無窮迴圈。後來才發現一些小眉角,尤其是在筆電上:

  1. 不是 64-bit OS 就可以直接支援 64-bit guest OS ,必須 CPU 有支援 VT 才行。
  2. 大多數筆電的 VT 預設值都是關閉,必須進入 BIOS 啟動。
  3. 在 BIOS 中,若有 Hardware data execution 之類的 H/W security 功能最好也關閉。
  4. 部分筆電,像是 Lenovo x201 ,要讓上述設定生效,還必須將電池、電源移除,按下電源開關,進行放電, BIOS 的改動才會生效。

測試方式

如果不確定 CPU 是否支援 VT ,可以到 Intel/AMS 的網站查詢,像是 Intel Processor Spec. FinderAMD Desktop Processor

Processor Check for 64-Bit Compatibility

[感謝 Allen Lai 提醒]

VMware 提供了一個快速的檢測工具——Processor Check for 64-Bit Compatibility,雖然已經很久沒更新了,不過它的結果明確易懂,像是下圖就說明:Processor Check for 64-Bit Compatibility

不過根據說明文件,它目前只支援特定的 processors ,而且還有幾項是 experimental support:

  • AMD™ Athlon™ 64, revision D or later
  • AMD Opteron™, revision E or later
  • AMD Turion™ 64, revision E or later
  • AMD Sempron™, 64-bit-capable revision D or later (experimental support)
  • Intel™ EM64T VT-capable processors (experimental support)

VMware CPU Identification Utility

或是利用 VMware 的 CPU Identification Utility ,這是個 可用來開機的 ISO 檔,使用時只需要掛載進 VMware 即可 。

未啟動 VT 時的輸出:

CPU Identification Utility (Before)

啟動 VT 後:

CPU Identification Utility

上面的圖是 x201 開啟 VT 後的結果,根據說明文件和實驗,似乎紅框裡有一個是 Yes ,就可以支援 64-bit guest OS 。根據 Allen Lai 的測試,即使 64-bit LongMode 顯示 YES ,也並非能支援 64-bit guest OS。所以目前還沒有比較好的解讀方式 … 大概只是方便你把結果丟到 support 或 community 去發問 …

最後要注意的是,當 CPU features 設定改變後,都可能讓已經建立好的 snapshots 出問題。

Reference

  1. VMware Shared Utility: http://www.vmware.com/download/shared_utilities.html
  2. Ensuring your hardware is functioning correctly: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003690
  3. Ensuring Virtualization Technology is enabled on your VMware host: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003944
  4. Hardware and firmware requirements for 64-bit Guest Operating Systems: http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003945
  5. Intel Processor Spec. Finder: http://ark.intel.com/Default.aspx
  6. AMD Desktop Processor: http://products.amd.com/en-us/desktopcpuresult.aspx

更新

2011/4/26: 補上 x201 未啟動 VT 的 VMware CPU Identification 結果截圖。

2011/4/27: 補充 Allen Lai 的連結和測試工具 Processor Check for 64-Bit Compatibility 。

9 則留言:

Mark Kuo 提到...

哈,我倒是不知道要把電池拔掉這回事。我的x201s當初也是不能跑64bit guest OS,也發現bios沒開,但是我開一下,馬上進64 bit ubuntu host OS後,開vmware/virtualbox的64bit guest OS就都沒問題了~

Keiko 提到...

哈,難道是因為 s 系列比較貴,所以不用放電 XD

Allen 提到...
作者已經移除這則留言。
Allen 提到...

這個問題困擾我一陣子了
之前查到的結果是CPU不支援VT
但我紅框中兩個數值卻跟圖中的一樣

哪一份說明文件有提到「紅框裡有一個是 Yes ,就可以支援 64-bit guest OS」
我沒找到
大師指點一下迷津呀~

Keiko 提到...

乃哥,這是我自己測的結果:開 VT 前後的差異,原本我也以為 Supports 64-bit VMware 才是重點。

Keiko 提到...

乃哥,我更新了未啟動 VT 的圖。

Allen 提到...

找到這篇
其中Additional Info一節提到另一個檢測工具
看起來只支援Longmode的Intel CPU還不夠

http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003945

Keiko 提到...

乃哥,我根據你的連結更新了文章,感恩啊!我跑了一下 process check for 64-bit compatibility ,它的輸出結果直接了到多了!CPU Identification utility 一直找不到好的解讀方式,像我開啟 VT 後,竟然是 64-bit longmode 變成 yes 而不是 64-bit VMware ,而這篇又偏偏寫:
A sample output of the ESX CPU Compatibility Tool:

Reporting CPUID for 2 logical CPUs...

All CPUs are identical
Family: 0f Model: 04 Stepping: 1
ID1ECX ID1EDX ID81ECX ID81EDX
0x0000641d 0xbfebfbff 0000000000 0x20100000

Vendor : Intel
Processor Cores : 1
Brand String : " Intel(R) Xeon(TM) CPU 2.80GHz"
SSE Support : SSE1, SSE2, SSE3
Supports NX / XD : Yes
Supports CMPXCHG16B : Yes
Hyperthreading : Yes
Supports 64-bit Longmode : Yes
Supports 64-bit VMware : No

On Intel systems, the last line indicates "Yes" when the CPUs support EM64T and Intel Virtualization Technology (VT).

讓我只好自己實驗看看了,造成你的誤會,抱歉啊~

Allen 提到...


本來看到文章燃起一線希望
結果還是不能用64-bit guest OS
哭哭

MiniFilter InstanceSetupCallback is not called?

一般來說,MiniFilter 的 InstanceSetupCallback 會在 filter manager 把 minifilter attache 到 volume 後呼叫。如果沒有的話,可以檢查一下 minifilter 的 INF 是否把 instance fla...