Linux

Fedora 22 中的 kmod-VirtualBox 版本不匹配

  • April 3, 2017

遵循本指南後,我安裝了 VirtualBox 5 並在 Fedora 中工作了大約 5-6 週,沒有任何問題。

但是,在我dnf update昨天執行之後,它停止了工作。

VirtualBox 本身會啟動,但是當我嘗試啟動 VM 時,我得到的是:

虛擬機“MyVM”在啟動期間意外終止,退出程式碼為 1 (0x1)。

結果程式碼:NS_ERROR_FAILURE (0x80004005)

組件:機器

介面:IMachine

有一些關於向下鑽取的進一步說明:

未安裝核心驅動程序 (rc= -1908)
未載入 VirtualBox Linux 核心驅動程序 (kvboxdvr)…

所以這是我到目前為止沒有運氣的嘗試:

1.檢查了我安裝的內容:

$ dnf list installed | grep kmod-VirtualBox*
akmod-VirtualBox.x86_64                    4.3.30-1.fc22                @rpmfusion-free-updates
kmod-VirtualBox-4.1.10-200.fc22.x86_64.x86_64
kmod-VirtualBox-4.1.7-200.fc22.x86_64.x86_64

2.檢查了回購中可用的內容:

$ dnf provides kmod-VirtualBox
Last metadata expiration check performed 0:03:30 ago on Sun Oct 18 10:37:47 2015.
kmod-VirtualBox-4.3.30-1.fc22.x86_64 : Metapackage which tracks in VirtualBox kernel module for newest kernel
Repo        : rpmfusion-free-updates

kmod-VirtualBox-4.3.28-1.fc22.x86_64 : Metapackage which tracks in VirtualBox kernel module for newest kernel
Repo        : rpmfusion-free

3.嘗試安裝更新的kmod:

$ sudo dnf install --allowerasing kmod-VirtualBox-4.3.30-1.fc22.x86_64
Last metadata expiration check performed 1:43:30 ago on Sun Oct 18 09:05:58 2015.
Error: nothing provides kernel-uname-r = 4.0.8-300.fc22.x86_64 needed by kmod-VirtualBox-4.0.8-300.fc22.x86_64-4.3.30-1.fc22.x86_64

4.執行 uname 檢查目前版本:

$ uname -r
4.2.3-200.fc22.x86_64

無論我嘗試什麼,我都會遇到同樣的錯誤,即沒有任何東西提供過時的核心。據我了解不應該。

我跑了一個dnf clean alldnf clean metadata但它沒有幫助。我也已經執行了dnf update virtualbox它,它告訴我我安裝了最新版本。任何想法如何解決這個問題?

注意:我也嘗試過跑步dnf update kmod-VirtualBox,但沒有任何反應,它告訴我“無事可做”。

這種情況時有發生,因為目前的 kmod 包有時還沒有在儲存庫中。

您不必完全重新安裝 VirtualBox,但可能需要解除安裝 kmod 軟體包:

# dnf remove kmod-VirtualBox-*

但是,您不想解除安裝 akmod 包,因為這是您的選擇。如果您安裝了所需的 akmod 軟體包(並且沒有預建構的 kmod 軟體包),您的系統將在必要時建構 VirtualBox 核心模組(在核心更新之後),因此這應該始終有效 - 不像預建構的 kmod 軟體包,它們是並不總是可用的。

安裝/更新建構所需的 akmod 包和核心標頭檔:

# dnf install akmod-VirtualBox kernel-devel

您可以手動啟動建構過程:

# akmods

您可能必須強制重建(見下文):

# akmods --force

模組服務不應再列印任何錯誤消息:

# systemctl restart systemd-modules-load

VirtualBox 現在應該能夠啟動 vms,即使在核心更新之後也是如此。

如果仍然安裝了舊的 kmod 軟體包,建構過程可能會失敗。在這種情況下,將它們一一解除安裝並akmods再次執行。

更新

這個問題仍然是相關的,即使在 Fedora 25 上。請注意,akmods 可能必須使用--force如上所示的選項執行,尤其是在手動執行建構時。如果您忘記了這個選項,它可能只是顯示警告而不做任何事情(錯誤 4485):

Ignoring VirtualBox-kmod as it failed earlier              [WARNING]

這也可能是為什麼 VirtualBox 在核心更新和隨後的重新啟動後有時不會啟動任何 VM(“未安裝核心驅動程序”)的原因,即使安裝了所有必需的軟體包。有時,akmods 工具會抱怨先前的建構嘗試不成功,並且只是顯示警告而不是開始新的建構。如果在重新啟動期間發生這種情況,當應自動重建 VirtualBox 模組時,您稍後會在系統日誌中找到此警告,您必須使用該--force選項手動執行 akmods,以便它實際啟動建構過程應該在重新啟動期間執行。請參閱錯誤 4485

引用自:https://unix.stackexchange.com/questions/236985