BUG ZERG SWORM!
最近遇上詭異的問題,一直以來習慣將Hyper-V常駐2個的Guest VM。結果卻發現...在某個Windows 10 的VM 啟動時會在Hosted顯示失敗!但過了兩三分鐘後再啟動就可以了!
失敗的情況會是 在Hyper-V manager上面的VM status欄位顯示 starting 然後不到一秒顯示成 canceled(持續loop 2次) 接下來就會停止啟動該VM了!
結果出現了...0X1E的錯誤!使用 CHKDSK檢查該在Host 以及Guest OS的部分卻沒有發現任何錯誤!最後....發現了一個可能性!
NESTED VIRTUALIZATION
在Windows Insider build 143XX的時候介紹了在Windows 10 AU更新將會帶來Nested Hyper-V的功能,所以可以在Guest OS下再開啟Hyper-V的功能。
開啟Nested Virtualization的需求如下:
Host OS -> 需要Windows 10 AU (14393) or Windows Server 2016
Guest OS -> 需要Windows 10 AU (14393) or Windows Server 2016
Hyper-V的設定檔版本需要8.0以上
需要Intel VT-X 和EPT技術的支援(可以去Intel ark檢查是否CPU有支援VT-X以及UEFI是否開啟VT-X和EPT)
開啟巢狀虛擬化的流程如下:
- 在Host上開啟Hyper-V的服務
- 關閉Guest OS
- 在Windows的Icon右鍵開啟Powershell (使用Admin權限)
- 使用以下指令
Set-VMProcessor -VMName "放入VM的名稱" -ExposeVirtualizationExtensions $true // 比如VM名稱是Win10那指令就會如下 // Set-VMProcessor -VMName Win10 -ExposeVirtualizationExtensions $true Set-VMProcessor -VMName "放入VM的名稱" -ExposeVirtualizationExtensions $false // 比如VM名稱是Win10那指令就會如下 // Set-VMProcessor -VMName Win10 -ExposeVirtualizationExtensions $false
- 然後需要設定成動態記憶體配置
詳細原文設定Nested virtualization 網址( https://msdn.microsoft.com/en-us/virtualization/hyperv_on_windows/user_guide/nesting )