web-dev-qa-db-ja.com

カーネルの更新後にvirtualboxのカーネルモジュールを再ロードする必要があるのはなぜですか?

Ubuntu 12.10での最後のカーネルアップグレードの後、Virtualboxの2つのカーネルモジュールを手動で再ロードする必要がありました。

modprobe vboxdrvおよびmodprobe vboxnetflt

これがバグなのか、それともそのようなものになるはずなのかをシステムについて十分に知りませんが、かなり不便です。 Ubuntuを初めて使用するユーザーとして、何をする必要があるかを見つけるのにかなり時間がかかりました。

これは自動更新であり、終了したら再起動するように求められました。再起動後、モジュールを再ロードするまで仮想マシンは実行されませんでした。

だから私の質問は次のとおりです。これは正常ですか?他のパッケージ、またはVirtualboxだけで起こりますか?アップデーターはこれを自動的に行うことになっていますか?バグレポートを提出する必要がありますか?

10
Ammon

VirtualBoxホストモジュールは、マシンのソースコードからビルドされます。あるカーネルのモジュールは、別のカーネルで必ずしも機能する(または適切に機能する)とは限りません。これらは通常、カーネルのアップグレード後に再コンパイルされます。

新しいカーネルバージョンをインストールすると、古いカーネルは引き続き実行されます。 Javier Riveraによると のように、新しいカーネルを使用するには再起動する必要があります。

そのため、新しいカーネルでVirtualBoxを実行することが目標であれば、再起動する必要があります。モジュールは、必要に応じてロードされます(必要に応じてソースから再構築された後)。

ただし、古いカーネルで古いモジュールを使用することが目的の場合は、modprobeを使用して手動でリロードできます(これまでどおり)。

VirtualBoxモジュールが再起動前に実行中のカーネルで動作し続けないことがバグだと思われる場合は、バグを報告できます。 Ubuntuで公式に提供されているVirtualBoxのバージョン(Oracleのソフトウェアソースからのバージョンではなく)を使用している場合、ダウンストリームのVirtualBox(つまり、UbuntuのVirtualBoxに対して)を報告することをお勧めします。 最初にこのガイドを注意深くお読みください。この質問 にはバグ報告に関する有用な情報もあります。

VirtualBoxのアップストリームバージョンでこれを作成できる場合(特にUbuntu以外のシステムで発生する場合は、ここでは必須ではないと思います)、報告することをお勧めします(またはalsoそれを報告する) 上流 (最初に検索する)。

この回答をすぐに受け入れないことをお勧めします。たぶん誰かがモジュールをアンロードする理由)を説明できるでしょう

2
Eliah Kagan

更新後、新しいカーネルモジュールをロードする前に「/etc/init.d/vboxdrv setup」を実行する必要があった場合は、dkmsが正しくインストールおよび更新されていることを確認してください。これは、カーネルの更新後に再起動したときにモジュールを再コンパイルしたコンポーネントです。終了時にモジュールもロードする必要があります。それが、テストで失敗する唯一の状況です。そうでない場合は、Eliahのアドバイスを受けてバグレポートを提出します。

2
sean_m