如何修復 Linux 系統上的 VirtualBox 虛擬機器啟動錯誤

如果VirtualBox 虛擬機器在 Linux 系統上無法啟動,請在重新安裝任何軟體之前仔細閱讀錯誤訊息。常見的宿主機端原因是vboxdrv缺少所需的核心模組、該模組是為其他核心建構的,或被安全啟動阻止。其他錯誤訊息可能指向虛擬機器設定、版本不匹配,或是某個功能需要擴充包。

1. 記錄錯誤並檢查主機版本

記下完整的對話方塊文字和錯誤代碼,然後檢查正在執行的 VirtualBox 版本和 Linux 核心:

VBoxManage --version
uname -r

利用錯誤訊息本身來選擇下一步檢查。如果 VirtualBox 啟動但只有一個虛擬機器失敗,請專注於檢查該虛擬機器的日誌和設定。如果每個虛擬機器都失敗並出現主機驅動程式錯誤訊息,則從以下操作開始vboxdrv:

除 VBoxManage 和 Linux 核心版本檢查外,還顯示了 VirtualBox 啟動對話方塊的範例。
僅供參考:請使用您自己的 Linux 主機上顯示的錯誤代碼和版本值。

2. 檢查 VirtualBox 主機驅動程式是否已載入

Linux 使用vboxdrv主機核心模組來運行虛擬機器。檢查 VirtualBox 模組,然後嘗試載入主驅動程式:

lsmod | grep '^vbox'
sudo modprobe vboxdrv

如果modprobe回傳錯誤,請保留錯誤訊息的原文。如果成功,請重試虛擬機器。 Oracle 的Linux 主機安裝指南解釋說,VirtualBox 需要主機核心模組和對應的核心頭檔。

用於檢查已載入的 VirtualBox 模組和載入 vboxdrv 的範例終端命令
成功modprobe可能不會返回任何文字;重要的線索是錯誤訊息。

3. 為啟動的核心重新建構模組

Linux 核心更新後,VirtualBox 的模組可能與目前正在執行的核心不符。請確認該核心的開發文件是否可用:

uname -r
ls -ld "/lib/modules/$(uname -r)/build"

如果build連結缺失,請使用發行版的軟體套件管理器安裝相符的核心頭檔或開發包。在 Ubuntu 或 Debian 系統上,如果 VirtualBox 來自發行版軟體倉庫,典型的修復方法是:

sudo apt update
sudo apt install linux-headers-$(uname -r) dkms
sudo apt install --reinstall virtualbox-dkms
sudo modprobe vboxdrv

Fedora、Arch Linux、openSUSE 和其他系統上的軟體包名稱各不相同。請安裝執行核心的頭檔以及與 VirtualBox 安裝方式相符的主機模組軟體包。請勿將 Oracle 的安裝程式與發行版自備的 VirtualBox 軟體套件混用;請使用單一的軟體套件來源及其重新建置說明。 Ubuntu 的軟體包索引會顯示目前哪些版本提供了所需的軟體包virtualbox-dkms。

範例終端比較正在運行的 Linux 核心及其模組建置目錄
核心版本及其建置目錄必須與正在執行的核心版本一致。
VirtualBox DKMS 模組的 Ubuntu 和 Debian 軟體包重新安裝範例命令
此軟體包指令適用於從其軟體倉庫安裝的 Ubuntu 或 Debian 系統;在其他地方請使用您發行版的軟體包名稱。

4. 如果 Linux 拒絕該模組,請檢查安全啟動。

安全啟動可能會阻止未簽署的第三方核心模組載入。請檢查其狀態並尋找相關的內核訊息:

mokutil --sb-state
sudo journalctl -k -b | grep -iE 'vbox|verification|key rejected'

如果輸出顯示金鑰被拒絕或模組未簽名,請依照發行版的模組簽名流程進行操作。在 Ubuntu 系統中,DKMS 模組可以使用機器所有者金鑰 (MOK) 進行簽署;如果安裝程式提示您註冊金鑰,請在下次重新啟動時完成註冊步驟。 Canonical 公司提供了安全啟動和 MOK 流程的相關文件。停用安全啟動並非首選的修復方法。

範例:終端檢查安全啟動狀態並蒐索核心日誌以尋找 VirtualBox 模組錯誤
使用內核日誌來區分被拒絕的模組和缺失或建置失敗的模組。

5. 僅當錯誤提示需要時才檢查擴充包

擴充包並非啟動普通虛擬機器的必要條件。它添加了一些特定功能,包括 USB 2.0 和 3.0 支援以及遠端顯示功能。如果錯誤訊息中提及了某個擴充功能或這些功能,請檢查已安裝的擴充包:

VBoxManage list extpacks

如果已安裝,其版本必須與 VirtualBox 主機版本相符。請透過 VirtualBox 的擴充功能管理功能更新或移除過時的擴充包,或從VirtualBox 官方下載頁面下載相符的版本。切勿僅僅因為虛擬機器無法啟動就安裝舊的擴充包。

VBoxManage 輸出範例(包含佔位符的擴充包版本詳細資訊)
將擴充包版本與主機版本進行比較VBoxManage --version。

6. 使用虛擬機器日誌尋找影響單一機器的錯誤

當只有一台虛擬機器發生故障時,開啟虛擬機器VBox.log所在資料夾中的日誌檔案。預設Logs位置是`/etc/v1/v2/v3 ...~/VirtualBox VMs/VM-name/Logs

範例 VBox.log 窗口,其中包含通用佔位符條目,而非具體診斷資訊。
日誌摘錄因故障而異;請使用未啟動虛擬機器的真實日誌。

如果訊息提示硬體虛擬化不可用,請在主機韌體中啟用 Intel VT-x 或 AMD-V(有時也稱為 SVM)。如果 Linux 本身運行在另一個虛擬機器中,則外部虛擬機器管理程式必須公開嵌套虛擬化。除非錯誤指向無關的虛擬機器設置,否則請避免更改這些設定。

VirtualBox 虛擬機器概覽範例,展示了機器詳情中的硬體虛擬化資訊。
管理器標籤和佈局因 VirtualBox 版本而異;錯誤訊息應指導您檢查哪個設定。

7. 避免進行有風險的權限變更

不要試圖chown透過/usr修改系統目錄來修復 VirtualBox。系統目錄通常由 root 使用者擁有,大範圍更改所有權可能會損壞軟體包管理的文件,而無法修復核心模組。安裝正確的頭檔或重新編譯驅動程式後,重新啟動進入目標內核,然後再次嘗試執行虛擬機器。

如果仍然失敗,請保留完整的對話方塊文字、Linux 發行版和核心版本、VirtualBox 版本、dkms status輸出以及相關的結束資訊VBox.log。這些資訊有助於確定下一步操作是屬於主機驅動程式、安全啟動、虛擬機器配置還是版本不符。

留下評論

如何安全地恢復遺失的分區和硬碟數據

如何安全地恢復遺失的分區和硬碟數據

學習如何使用 TestDisk 和 PhotoRec 恢復遺失的分割區和檔案。保護來源驅動器,安全掃描,並將復原的資料儲存到另一個磁碟。

如何在 Linux 桌面系統上掃描二維碼

如何在 Linux 桌面系統上掃描二維碼

使用 CoBang 在 Linux 系統上透過網路攝影機或影像檔案掃描二維碼。查看 Flatpak 攝影機存取的安裝選項、設定步驟和修復方法。

如何在Linux系統上使用Cameractrls更改網路攝影機設置

如何在Linux系統上使用Cameractrls更改網路攝影機設置

使用 Cameractrls 在 Linux 上變更網路攝影機設定:調整曝光、色彩、減少閃爍和其他支援的控件,然後檢查相容的視訊模式。

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

如何在 Linux 上安裝 PhpStorm:工具箱、Tar.gz、Snap 和 AUR

在 Linux 系統上,您可以使用 JetBrains Toolbox 或獨立的 tar.gz 壓縮套件安裝 PhpStorm,此外還有 Snap 和 Arch AUR 版本可供選擇。 Java 已預先安裝。

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

如何在 Linux 系統上將 CD-ROM 備份為 ISO 文件

在 Linux 上使用 GNOME Disks 或 dd 建立 CD-ROM ISO。識別光碟機,監控複製過程,驗證鏡像,並了解何時損壞的光碟或音訊光碟需要其他工具。

如何在 XFCE 4 上設定雙面板

如何在 XFCE 4 上設定雙面板

為每個顯示器建立一個單獨的 XFCE 4 面板,將第二個面板指派給正確的輸出,調整其位置和大小,並新增所需的啟動器和狀態項目。

如何在Linux上安裝Cisco Packet Tracer

如何在Linux上安裝Cisco Packet Tracer

下載適用於 Ubuntu 64 位元系統的 Cisco Packet Tracer 9.0.1,使用 APT 安裝 DEB 軟體包,在終端機中接受許可協議,然後登入以啟動實驗環境。

如何在Linux系統下使用GIMP摳圖

如何在Linux系統下使用GIMP摳圖

在 Linux 系統上使用 GIMP 去除照片背景:描繪主體,刪除選定的背景,保持透明度,並匯出可重複使用的 PNG 檔案。

免費下載 FlightGear:官方安裝指南

免費下載 FlightGear:官方安裝指南

從官方網站免費下載 FlightGear。比較 Windows、macOS 和 Linux 版本的軟體包,安裝資料文件,即可開始您的首次飛行。

Google Tasks桌面應用程式:如何在電腦上使用

Google Tasks桌面應用程式:如何在電腦上使用

在瀏覽器中開啟 Google Tasks,新增 Chrome 捷徑或應用程式啟動,並透過行事曆和 Gmail 管理有日期的待辦事項。