Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

VMware Workstation 開啟巢狀虛擬化:解決 Client OS 無法安裝 64-bit CentOS (缺少 VMX/SVM) 問題

編輯:關於 Linux

在 VMware Workstation (Host) 建立的 VM (Guest) 中再安裝 64-bit 作業系統 (Nested VM),預設會因缺少 CPU 虛擬化指令集 (Intel VMX / AMD SVM) 而失敗。本文說明如何編輯 .vmx 開啟 vhv.enable 解決此問題。

問題現象

  • Host:Windows/Linux + VMware Workstation 16+,CPU 支援 VT-x/AMD-V 且 BIOS 已啟用。
  • L1 Guest:CentOS 7/8 (64-bit),cat /proc/cpuinfo | grep flags 僅顯示 pae,缺少 vmx 或 svm。
  • L2 Guest:嘗試在 L1 安裝 64-bit OS,安裝程式報錯「此虛擬機器設定為 64-bit 作業系統,但未偵測到 64-bit 處理器」。

解決方法:編輯 .vmx 啟用 VHV

  1. 關閉 L1 VM (CentOS)。
  2. 找到 VM 目錄下的 CentOS.vmx (文字檔)。
  3. 用文字編輯器開啟,新增一行:
    vhv.enable = "TRUE"
    
  4. 儲存並啟動 L1 VM。

驗證

# L1 內執行
cat /proc/cpuinfo | grep -o vmx
# 應輸出 vmx (Intel) 或 svm (AMD)

原理解析

vhv.enable (Virtual Hardware Virtualization) 指示 VMware 將 Host 的 CPU 虛擬化擴充功能 (VMX/SVM) 透傳給 L1 Guest,使 L1 具備硬體虛擬化能力,進而能運行 L2 64-bit Guest。此為「巢狀虛擬化」。

注意事項與限制

  • 效能損耗:雙層指令轉譯會有 10~30% 效能損失,僅適合開發/測試/教學,不建議生產負載。
  • Host 需求:CPU 必須支援 VT-x/AMD-V 且 BIOS/UEFI 已啟用;VMware Workstation 10+ / ESXi 6.0+ 支援。
  • L1 Guest OS:Linux 核心 3.10+ (含 RHEL/CentOS 7) 完整支援;Windows Guest 需 Hyper-V 角色。
  • 不支援功能:L2 內無法再巢狀 (L3)、裝置直通 (PCI Passthrough) 通常不可用。

替代方案

  • 直接在 Host 建立多個 VM (扁平化),避免巢狀。
  • 使用支援巢狀虛擬化的雲端實例 (AWS bare metal、GCP nested virt、Azure Dv3/Edv3)。
  • 若僅需在 L1 運行容器,改用 Docker (不需硬體虛擬化指令集)。

官方參考

VMware KB 2034803:Nested Virtualization in VMware Workstation

啟用 vhv.enable = "TRUE" 後,你的 VMware Workstation 客體機即可順利安裝 64-bit CentOS 等作業系統,滿足巢狀虛擬化測試需求。

Copyright © Windows教程網 All Rights Reserved