我的情況

我的情況

我的情況

我在 Ubuntu 18.04 主機上執行 VirtualBox v5.2.32。我建立了一個 Windows 10(64 位元)用戶機。我在 Windows 10 用戶端(Windows 10 Pro - v1903 - 64 位元)中安裝了 VirtualBox v6.0.10。我正在嘗試在 Windows 10 客戶機中建立 Ubuntu(64 位元)客戶機。我在 Windows 用戶端只看到 32 位元選項。經過多次嘗試解決此問題後,我仍然只看到 32 位元選項。

我的意圖

在虛擬機器內建立虛擬機器的目的是能夠確保 VirtualBox 正常運作,以便我可以在 Windows 10 環境中測試 Vagrant 配置。我們的 Vagrant 配置使用 64 位元基礎映像,因此我需要能夠在此 Windows 10 用戶端中設定 64 位元用戶端。

我已經嘗試過的

...在 Ubuntu 主機上

我已經檢查Enable VT-x/AMD-V系統 > 加速Windows 10 用戶端的 Ubuntu 主機 VirtualBox 配置中的標籤。

....在 Windows 來賓上

在 Windows 用戶端中,我可以看到主機的實體 CPU 詳細資訊在設定 > 系統 > 關於它顯示為“64位元作業系統,基於x64的處理器”

這是普通的 Windows 10 Pro 安裝,沒有附加軟體(即沒有附加病毒防護軟體)。

我檢查了Windows功能以確保以下幾點不是檢查:

  • 受保護的主機
  • 超V
  • 虛擬機器平台
  • Windows 虛擬機器管理程式平台
  • Linux 的 Windows 子系統

……因為我的谷歌搜尋似乎表明其中一些或全部可能是一個問題。

基於 VirtualBox 論壇 (我有 64 位元主機,但無法安裝 64 位元來賓),使用gpedit.msc,我設置本機電腦原則 > 電腦設定 > 管理範本 > 系統 > Device Guard > 開啟基於虛擬化的安全性Disabled。我還檢查了Windows 安全性 > 裝置安全性 > 核心隔離詳細信息被設定為Off

我已經「修復」了 VirtualBox 安裝。我已經卸載了 VirtualBox,重新啟動,重新安裝,然後再次重新啟動。

相關堆疊交換問題和其他參考資料

我查看了這些相關的、先前提出的問題,並按照上述步驟所示遵循了他們的建議。我發現的所有內容似乎都與直接在主機上執行的 Windows 64 位元主機有關,而不是與本身就是來賓虛擬機器的 Windows 主機相關。

答案1

我在 Ubuntu 18.04 主機上執行 VirtualBox v5.2.32。我建立了一個 Windows 10(64 位元)用戶機。我在 Windows 10 用戶端中安裝了 VirtualBox v6.0.10。我正在嘗試在 Windows 10 客戶機中建立 Ubuntu(64 位元)客戶機。我在 Windows 用戶端只看到 32 位元選項。經過多次嘗試解決此問題後,我仍然只看到 32 位元選項。

VirtualBox 不支援在另一台虛擬機器中託管 64 位元虛擬機器。

我已在 Windows 10 用戶端的 Ubuntu 主機的 VirtualBox 配置中啟用了 VT-x/AMD-V。

雖然您啟用了 VT-x/AMD-V(這就是您能夠運行第一個 64 位元虛擬機器的原因),但它不會傳遞到虛擬機器。 VirtualBox 巢狀虛擬化不支援將虛擬化技術 x86 擴充功能暴露給巢狀虛擬機器。這就是為什麼您無法在第二個虛擬機器中執行 64 位元作業系統的原因。

我發現的所有內容似乎都與直接在主機上執行的 Windows 64 位元主機有關,而不是與本身就是來賓虛擬機器的 Windows 主機相關。

這是因為您想要的東西非常小眾。 使用您目前的硬件,VirtualBox 無法實現您想要的功能。

Oracle VM VirtualBox 支援執行 AMD CPU 的主機系統上的巢狀虛擬化。此功能可將硬體虛擬化功能直通至來賓虛擬機器。這表示您可以在 Oracle VM VirtualBox 來賓上安裝虛擬機器管理程序,例如 Oracle VM VirtualBox、Oracle VM Server 或 KVM。然後,您可以在來賓 VM 中建立並執行 VM。

**但是,即使啟用了巢狀虛擬化,您目前擁有的 AMD 硬體也無法實現您想要的效果。為了使用 VirtualBox,您的處理器必須支援快速虛擬化索引

快速虛擬化索引 (RVI),在開發過程中稱為巢狀頁表 (NPT),是 AMD 第二代處理器記憶體管理單元 (MMU) 硬體輔助虛擬化技術。

AMD-V 被認為是第一代硬體虛擬化。為了在具有所需處理器的系統上啟用嵌套虛擬化,必須將 --nested-hw-virt 選項與modifyvm 命令結合使用。

來源:嵌套虛擬化

主機是AMD Opteron 6338P。在 Windows 用戶端的 VM 配置中選取啟用 VT-x/AMD-V。因此,VT-x 應該暴露給 Windows 來賓。

VT-X 僅存在於 Intel 硬體上。您的 AMD Opteron 6338P 僅支援 AMD-V。但是,您選擇的選項可讓您在虛擬機器中執行 64 位元作業系統。 它實際上並沒有啟用 VirtualBox 支援的有限嵌套虛擬化。

答案2

64 位元虛擬機器需要 VT-x 才能運作,因此,如果 VT-x 未暴露給 VM,則無法在目前 VM 內執行另一個 VM。您需要啟用Windows VM 中的巢狀虛擬化透過跑步

Set-VMProcessor -VMName <VMName> -ExposeVirtualizationExtensions $true

當然你需要先檢查你的CPU是否支援嵌套虛擬化

但看起來像VirtualBox 僅支援 AMD 上的巢狀虛擬化所以你需要使用另一個虛擬機器管理程序

也可以看看

相關內容