VirtualBox 安裝 Windows 8.1 (及 8、10 早期版本) 時遇到 0x000000C4 藍屏錯誤,原因是客體 OS 需要 CMPXCHG16B (Compare-and-Exchange 16-byte) CPU 指令,但 VirtualBox 預設未向客體暴露此指令。解決方法:透過 VBoxManage setextradata 為虛擬機啟用該指令支援。
STOP: 0x000000C4
DRIVER_VERIFIER_DETECTED_VIOLATION
安裝程式啟動初期即藍屏,無法進入安裝介面。
確保虛擬機處於 關機狀態 (非儲存狀態)。
Windows 宿主機:右鍵「命令提示字元」→「以系統管理員身分執行」。
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" list vms
# 輸出範例:
# "Windows 8.1" {uuid}
# "Ubuntu 20.04" {uuid}
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "Windows 8.1" VBoxInternal/CPUM/CMPXCHG16B 1
參數說明:
"Windows 8.1":虛擬機確切名稱 (含雙引號)VBoxInternal/CPUM/CMPXCHG16B:CPU 指令暴露設定鍵值1:啟用

啟動虛擬機,Windows 8.1 安裝程式應正常載入進入語言選擇畫面。

# Linux
VBoxManage setextradata "Windows 8.1" VBoxInternal/CPUM/CMPXCHG16B 1
# macOS
/Applications/VirtualBox.app/Contents/MacOS/VBoxManage setextradata "Windows 8.1" VBoxInternal/CPUM/CMPXCHG16B 1
CMPXCHG16B 是 x86-64 架構擴展指令,用於原子性比較交換 16 位元組資料Driver Verifier) 要求此指令支援VBoxManage getextradata "Windows 8.1" VBoxInternal/CPUM/CMPXCHG16B
# 應輸出:Value: 1
單一 VBoxManage setextradata 指令即可解決 Windows 8.1/10 安裝 0x000000C4 錯誤。建立新 Windows 虛擬機時,可將此指令納入自動化部署腳本,避免重複手動操作。
Ubuntu 解決「can't find libjava.so」錯誤:使用 PPA 安裝 Oracle Java 8 避免手動配置坑
Linux 設定 PostgreSQL 允許遠端連線:pg_hba.conf 與 postgresql.conf 雙檔修改
重裝 Linux 後無法連網?檢查 Broadcom 網卡驅動衝突並移除專屬驅動恢復連線
Kali Linux 安裝 Chrome 瀏覽器常見問題與解決方案:Root 執行、選單缺失、沙箱衝突完整處理
Linux 误删除系统日志文件(/var/log/syslog 或 messages)恢复实战
Linux 指令分類完全指南:內建指令 vs 外部指令,識別方法與執行機制差異