萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

VirtualBox 安裝 Windows 8.1 報錯 0x000000C4 解決:啟用 CMPXCHG16B CPU 指令支援

在 VirtualBox 中安裝 Windows 8.1/10 時,若客體系統為 64 位元但宿主 CPU 未向客體暴露 CMPXCHG16B 指令,會在安裝早期藍屏報錯 0x000000C4。解決方法極簡單:關閉虛擬機,於宿主機以管理員身份執行 VBoxManage 指令啟用該指令傳遞。

一、錯誤現象

Windows 8.1 安裝程式啟動後不久藍屏,錯誤代碼 0x000000C4,對應 DRIVER_VERIFIER_DETECTED_VIOLATION,實際原因是缺少 CMPXCHG16B 指令(64 位元 Windows 必需)。

0x000000C4 藍屏畫面

二、解決步驟(Windows 宿主機)

  1. 完全關閉目標虛擬機(非儲存狀態)
  2. 以 系統管理員身份 開啟 命令提示字元 (CMD)
  3. 列出所有虛擬機確認名稱:
    &"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list vms
  4. 啟用 CMPXCHG16B 指令傳遞(將 Windows 8.1 替換為實際虛擬機名稱):
    &"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "Windows 8.1" VBoxInternal/CPUM/CMPXCHG16B 1

    VBoxManage 指令執行成功

  5. 重新啟動虛擬機進行安裝,應可正常通過該階段

三、Linux/macOS 宿主機指令

# Linux (VBoxManage 通常在 PATH 中)
$ VBoxManage setextradata "Windows 8.1" VBoxInternal/CPUM/CMPXCHG16B 1

# macOS
$ /Applications/VirtualBox.app/Contents/MacOS/VBoxManage setextradata "Windows 8.1" VBoxInternal/CPUM/CMPXCHG16B 1

四、驗證

虛擬機啟動後,進入 Windows 安裝程式不再藍屏,可正常進行分區、複製檔案等步驟:

Windows 8.1 正常安裝介面

五、補充說明

  • VirtualBox 4.3+ 版本已修復此問題,新建 64 位元 Windows 虛擬機預設會啟用;僅舊版虛擬機或手動建立時需補設
  • 同樣適用於 Windows 10、Server 2012 R2 等 64 位元客體
  • 若宿主 CPU 真不支援 CMPXCHG16B(極早期 x86_64),則無法運行 64 位元 Windows 客體
copyright © 萬盛學電腦網 all rights reserved