Fedora 22のkmod-VirtualBoxバージョンの不一致

Fedora 22のkmod-VirtualBoxバージョンの不一致

VirtualBox 5をインストールし、Fedoraで約5〜6週間問題なく作業しました。このガイドに従ってください

ところで昨日実行した後、dnf update動作が停止しました。

VirtualBoxが自動的に起動しますが、仮想マシンを起動しようとすると、次のメッセージが表示されます。

終了コード1(0x1)で起動中に、仮想マシン「MyVM」が予期せず終了しました。

結果コード: 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 allなかっdnf clean metadataた。私もこれを実行しましたが、dnf update virtualbox最新バージョンがインストールされていることを伝えます。この問題を解決する方法についてのアイデアはありますか?

注: 実行しようとしましたが、dnf update kmod-VirtualBox何も起こりませんでした。 「何もしません」というメッセージが表示されました。

答え1

これは現在、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はカーネルの更新後に仮想マシンを起動できるようになりました。

以前のkmodパッケージがまだインストールされていると、ビルドプロセスが失敗する可能性があります。このような場合は、1つずつ削除してからakmodsもう一度実行してください。

修正する
この質問はFedora 25でも依然として関連しています。--force特にビルドを手動で実行する場合は、上記のオプションを使用してakmodsを実行する必要があります。このオプションを忘れた場合は警告のみが表示され、何もしない可能性があります(エラー4485):

Ignoring VirtualBox-kmod as it failed earlier              [WARNING]

これは、すべての必須パッケージがインストールされているにもかかわらず、カーネルの更新とその後の再起動後にVirtualBoxが仮想マシンを起動できない場合(「カーネルドライバがインストールされていません」)の理由です。時々、akmodsツールは古いビルドの試みが失敗したと文句を言い、新しいビルドを開始するのではなく警告のみを表示します。再起動中にこれが発生した場合は、後でVirtualBoxモジュールを自動的に再構築する必要があるときにシステムログにこの警告を見つけることができます--force。します。再起動は起動中に実行されます。バラよりエラー4485

答え2

だから多くの悩みの末に私が解決した方法は次のとおりです。

前回dnf updateカーネルアップデートがありましたが、私の場合はバージョン4.1からバージョン4.2に変わりました。

1. 最初に使用していた廃止予定のkmod-VirtualBoxを削除しました。

$ 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

$ sudo dnf remove kmod-VirtualBox-4.1.10-200.fc22.x86_64.x86_64
$ sudo dnf remove kmod-VirtualBox-4.1.7-200.fc22.x86_64.x86_64
$ sudo dnf remove akmod-VirtualBox.x86_64

最後のもの(akmod)は必要ないかもしれませんが、とにかくしました。

2. VirtualBox自体を削除して再起動しました。

$ dnf list installed | grep virtualbox
VirtualBox-5.0.x86_64                      5.0.6_103037_fedora22-1      @virtualbox
$ sudo dnf remove VirtualBox-5.0.x86_64
$ shutdown -r now

3. システムを再起動した後、virtualbox を再インストールし、正しい kmod がインストールされました。

$ sudo dnf install VirtualBox-5.0-5.0.6_103037_fedora22-1.x86_64

今再び動作します。

この問題を見つけようと一日中無駄にしたので、これが同じ問題を抱えている人に役立つことを願っています。 :)


メモ:再インストールする前に、次のコマンドを使用してvboxdrvを手動でロードしてみてください。

$ sudo /etc/init.d/vboxdrv setup

私が知っている限り、何らかの理由でドライバーはもう周りにいません...

$ sudo /etc/init.d/vboxdrv setup
sudo: /etc/init.d/vboxdrv: command not found

...それで再インストールしたところ、問題は解決しました。

関連情報