VirtualBox がビルド証明書で署名されていない問題を解決する方法

WindowsでVirtualBoxの仮想マシンを起動しようとした時に、ビルド証明書で署名されていないという厄介なエラーに遭遇したことがあるなら、それがどれほどイライラするかお分かりでしょう。実は、VirtualBoxに組み込まれているセキュリティ強化機能は、基本的にすべてのドライバがOracleによって適切に署名されているかどうかを確認するものです。署名されていない、あるいは古いドライバファイル(おそらく以前のインストールや失敗したアップデートから残っているもの)が見つかると、VirtualBoxは異常をきたし、仮想マシンの起動を拒否します。正直言って少し奇妙ですが、これはVirtualBoxのアップグレード後によくある苦情で、特に以前のバージョンのドライバとの互換性がなくなった場合によく見られます。Windowsは署名されていないドライバを嫌いますが、VirtualBoxはそれらのドライバが明示的に署名されていないと正常に動作しません。

フォーラムや実際の状況から判断すると、主な原因は残っているドライバファイルや証明書の不一致です。通常、このエラーは「NtCreateFileのVERR_SUP_VP_NOT_SIGNED_WITH_BUILD_CERT失敗」のようなメッセージやエラーとともに表示されます。朗報です。頭を悩ませることなくこの問題を解決する方法はいくつかありますが、原因が残っているドライバなのか、不適切なインストールなのか、セキュリティソフトウェアの干渉なのかによって異なります。

ビルド証明書で署名されていないVirtualBoxを修正する方法

残ったドライバーをチェックしてクリーンアップする

多くの場合、これはC:\Windows\System32\driversに残っている古いドライバファイルが原因です。Windowsはドライバの署名を厳格に管理するため、古い署名や未署名の署名があると署名チェックに失敗する可能性があります。そのため、まずVirtualBoxを完全にアンインストールし、その後、これらの厄介なドライバファイルを手動で削除することが非常に重要です。

  1. VirtualBoxを適切にアンインストールします。 「設定」>「アプリ」>「インストール済みアプリ」に移動し、VirtualBoxを見つけてアンインストールします。その後、再起動して残っているシステムフックをすべてクリアします。
  2. Windowsが再起動したら、Win + Rを実行し、 と入力しC:\Windows\System32\driversてEnterキーを押します。すると、ドライバーファイルが保存されているフォルダが開きます。
  3. 右上の検索ボックスを使って、vbox*.sysに一致するすべてのファイルを検索します。これにより、vboxdrv.sys、vboxnetadp.sys、vboxsup.sysなど、すべてのVirtualBoxドライバファイルが取得されます。
  4. リストができたら、右クリックして削除します。管理者権限を求めるプロンプトが表示される場合がありますが、承認してください。削除後は、ごみ箱を空にすることを忘れないでください。

その後、公式サイトから最新のVirtualBoxをダウンロードし、インストーラーを管理者として実行します(インストーラーを右クリック > 管理者として実行)。再起動してください。これらのドライバーの競合は、クリーンな状態に戻すだけで解決できる場合があります。

VirtualBoxのインストールを修復する

これはある意味「より安全な」手順です。特にインストールやアップグレード中に何かが壊れたと思われる場合はなおさらです。修復オプションは、現在のファイルと本来あるべきファイルを比較し、破損したファイルや署名されていないファイルを置き換えます。Windowsは当然ながら、この作業を必要以上に困難にしています。

  1. VirtualBox が実行中の場合は閉じます。
  2. [設定] > [アプリ] > [インストールされたアプリ]を開いて、VirtualBox を見つけます。
  3. その横にある 3 つのドットをクリックし、[変更]を選択します。
  4. インストーラーがポップアップ表示されるので、[次へ]をクリックし、[修復]を選択します。
  5. そのまま放置し、プロンプトが表示されたら再起動します。

修復後、理想的には、ドライバーは適切に署名され、ビルド証明書エラーは解消されるはずです。

セキュリティソフトウェアの干渉を確認する

これは少し厄介なケースです。サードパーティ製のウイルス対策ソフトやセキュリティスイートがドライバーのインストールを誤認識し、ブロックしたり変更したりして、署名が無効と表示されることがあります。Norton、McAfee、あるいはWindows Defenderなどのセキュリティツールを強力な設定で使用している場合は、一時的に無効にしてみてください。リアルタイム保護をオフにして、VMを再起動してみてください。

一部のマシンでは、これにより一時的にエラーが止まる場合がありますが、その後はセキュリティを再度オンにしてください。Windowsセキュリティ自体がドライバーの読み込みをブロックする場合もあります。その場合は、 [設定] > [プライバシーとセキュリティ] > [Windowsセキュリティ] > [ウイルスと脅威の防止]でリアルタイム保護を無効にしてください。

すべてがうまくいかない場合はクリーンブートを実行してください

他のバックグラウンドプログラムやサービスが干渉している場合は、クリーンブートが最適です。クリーンブートでは、Windows に最小限のアプリのみがインストールされ、余分な起動処理は行われず、他のすべてのアプリはテストのためにブロックされます。このプロセスは少し複雑ですが、署名の競合を引き起こしている他のプログラムを特定するのに役立ちます。

これを行うには、 「ファイル名を指定して実行」( Win + R)ボックスに「msconfig」と入力し、Enterキーを押します。 「サービス」タブで「Microsoftのサービスをすべて隠す」にチェックを入れ、残りのサービスを無効にします。VMを再起動して起動できるか確認してください。これで問題が解決したら、サービスを一つずつ再度有効にして、原因を特定してください。

それでも問題が解決しない場合は、システムの日付と時刻をもう一度確認してください。設定が間違っていると証明書の検証に支障をきたす可能性があります。また、Hyper-Vが有効になっているかどうかも確認してください。仮想ハードウェアの競合により、奇妙なエラーが発生する場合があります。bcdedit /set hypervisorlaunchtype off管理者権限のコマンドプロンプトでコマンドを実行し、再起動してください。これでVMの起動時の競合が解消されることがよくあります。

ちなみに、エラー0x80004005または表示の問題

0x80004005のような厄介なエラーの場合は、完全な再インストールで解決することがよくあります。VirtualBox を削除し、古いドライバファイルをクリーンアップしてから、管理者として再インストールしてください。エラーが解決しない場合は、VirtualBox と競合する Windows Hyper-V が動作していないか確認してください。コマンドで Hyper-V を無効にしてbcdedit /set hypervisorlaunchtype off再起動することもできます。

ディスプレイの不具合やサイズ変更の失敗が発生する場合は、最新のVirtualBoxを使用していることを確認し、「表示」メニューの「ゲストディスプレイの自動サイズ変更」をオフにし、VM設定で3Dアクセラレーションを無効にしてください。これらの設定はホストのグラフィックドライバーと競合する場合があります。ホストマシンのグラフィックドライバーを最新版にすることも改善に繋がります。

これで完了です!これらのヒントでVirtualBox環境が再びスムーズに動作するようになることを願っています。重要なのは、これらのドライバをクリーンアップし、システムがVirtualBoxのセキュリティチェックをブロックしたり競合したりしていないことを確認することです。

まとめ

  • アンインストールし、 C:\Windows\System32\driversから残っているドライバー ファイル (~vbox*.sys) を手動で削除します。
  • インストーラを管理者として実行し、修復機能の使用を検討してください
  • ドライバーの署名に干渉する可能性のあるセキュリティソフトウェアを一時的に無効にする
  • 競合するアプリやサービスを分離するためにクリーンブートを実行します
  • Windows Hyper-Vをチェックし、システムの日付と時刻が正しいことを確認します。

まとめ

これは必ずしも簡単ではありませんし、正直なところ、Windows はドライバの署名が面倒な場合があります。しかし、古いドライバを削除し、インストールを修復し、セキュリティ設定がブロックされていないことを確認することで、通常はうまくいきます。多少の試行錯誤は覚悟してください。しかし、ドライバが適切に署名され、チェックされれば、VirtualBox は問題なく起動するはずです。

これで、完全な再インストールや何時間も悩まされる作業から誰かが救われることを願います。時には、ドライバーのクリーンアップだけで状況が一変することもあります。