rc=-1908 似乎這個問題在 Linux 上面還挺常見的,我先列舉一些我的背景:
Date: 09/09/2026 22:14
OS: EndeavourOS x86_64(Arch)
Kernel: Linux 7.2.3-arch1-2
Packages: Virtualbox 7.2.16-1(x86_64)
Repository: Extra(Pacman)
虛擬機: Windows 10
虛擬機命名: Windows10
報錯信息:啓動虛擬機報錯 Kernel driver not installed (rc=-1908),彈窗叫我們運行 /sbin/vboxconfig
檢查
下面的命令可以做一些診斷:
lsmod | grep vbox # 无输出 = 模块没加载
ls -l /dev/vboxdrv # 不存在 = 驱动没起来
dkms status # 确认模块已编译
uname -r; pacman -Q linux-headers # 确认 headers 和内核版本一致
當我檢查到了 dkms status ,它輸出的是 installed。這足以証明 Arch 的 virtualbox-host-dkms 已經把模塊編譯好了,只是沒加載。
讓我們修復一下。
修復
實際上,Arch 上正確的命令應該是 vboxreload,而不是彈窗說的 /sbin/vboxconfig。 所以讓我們執行
sudo vboxreload
它會卸載再加載 vboxnetadp / vboxnetflt / vboxdrv。 讓我們來驗証一下:
lsmod | grep vbox
ls -l /dev/vboxdrv # 出現 crw ----- 就是成功了
注意,我使用的是 Arch Linux,而我的電腦 Secure Boot 是關閉的(
bootctl status里的Secure Boot: disabled),所以並不需要給模塊簽名。如果你的機器開了 Secure Boot 的話,你還得用 MOK 給vboxdrv等模塊簽名才能加載。注意,下面說明是Gemini潤色的: 如果您的系統啟用了 Secure Boot(安全啟動),載入 VirtualBox 的核心模組(
vboxdrv)時將會失敗。您需要手動為模組簽名,或者先在 BIOS/UEFI 中關閉 Secure Boot。
Done. 但實際上,Virtual-Box 在Linux如何安裝才對?
不要直接
sudo pacman -S virtualbox
實際上,你應該這樣從arch上安裝 virtual-box
# 如果你使用的是自訂核心(linux-zen 或 linux-lts),應當改為安裝 virtualbox-host-dkms。
sudo pacman -S virtualbox virtualbox-host-modules-arch
第二步:載入 VirtualBox 核心組件
sudo modprobe vboxdrv
# 開機自啓動
# echo "vboxdrv" | sudo tee /etc/modules-load.d/virtualbox.conf
執行 lsmod | grep vboxdrv,若出現 vboxdrv 相關資訊即代表載入成功。
因爲篇幅和文章獨立問題,如若你出現「無法找到USB設備」的問題,請閱讀下一篇文章「【VirtualBox】Linux 使用 Virtual-Box 安裝的虛擬機找不到可以掛載的USB設備」
