Windowsエラー
 Computer >> コンピューター >  >> トラブルシューティング >> Windowsエラー

VirtualBoxエラーを修正:NtCreateFile(\Device\VBoxDrvStub) STATUS_OBJECT_NAME_NOT_FOUND

Oracle VM VirtualBoxで仮想マシンの起動に失敗し、「NtCreateFile(\Device\VBoxDrvStub) failed: STATUS_OBJECT_NAME_NOT_FOUND (0xc0000034)」というエラーが表示される場合、通常はVirtualBoxのカーネルドライバー(VBoxDrvVBoxSupなど)が存在しないブロックされている、または読み込まれていないことを意味します。このドライバーがないと、VirtualBoxは期待するデバイスインターフェース(VBoxDrvStubデバイスパス)を作成できず、仮想マシンは起動時に異常終了します。

この問題は、VirtualBoxのアップデート後、インストールが不完全な場合、Windowsセキュリティがドライバーのインストールをブロックした場合、あるいはHyper-V / VBS(仮想化ベースのセキュリティ)がシステム上の仮想化やドライバーの扱いを変更した場合によく発生します。

VirtualBoxのバージョンやWindowsの構成によっては、VirtualBoxがネイティブモードでドライバーを読み込めず、Hyper-V経由でのみ動作する場合があります(互換性やパフォーマンスに影響する可能性があります)。

作業を始める前に、一度再起動を行ってください(シャットダウンではなく)。多くのPCでは、シャットダウンは高速スタートアップを使用するためドライバーが完全に再読み込みされないことがありますが、再起動はドライバーの完全な再読み込みを強制します。

1. VirtualBoxドライバーサービス(VBoxDrv / VBoxSup)の開始・再起動

ドライバーがインストールされているのに実行されていない場合は、サービスを開始するだけでエラーがすぐに解決することがあります。この方法は、ドライバー/サービスがすでに存在する場合にのみ有効です。

  1. Windowsの検索でコマンドプロンプトを検索します。
  2. 右クリックして管理者として実行を選択します。
  3. まず、システムにどのVirtualBoxドライバーサービス名が存在するかを確認します:
    sc query type= driver | findstr /i vbox
  4. 見つかったドライバーサービスを開始します(例):
    net start vboxdrv

    「サービス名が無効です」と表示された場合は、次を試してください:

    net start vboxsup

    成功すると:「サービスは正常に開始されました。」と表示されます。

  5. PCを再起動し、VirtualBoxを再度起動します。

「サービス名が無効です」/「見つかりません」といったエラーが出る場合、ドライバーが存在しないか正しく登録されていない可能性があります。次の方法に進んでください。

確認(実際のサービス名を使用):

sc query vboxdrv

システムがvboxsupを使用している場合は、次を実行します:

sc query vboxsup

期待される結果:STATE : 4 RUNNINGと表示されること。

2. VirtualBoxドライバー(.inf)の手動インストール

Windowsのセキュリティやポリシーの制限により、セットアップ中にVirtualBoxがドライバーをインストールできないことがあります。ドライバーの.infファイルを手動でインストールすると、正しく登録されます。VirtualBoxのバージョンによって構成が異なるため、開始したいサービスに対応する.infをインストールしてください:

  • vboxdrvが存在しない/開始できない場合:vboxdrvフォルダーを使用し、VBoxDrv.infをインストールします。
  • vboxsupが存在しない/開始できない場合:vboxsupフォルダーを使用し、VBoxSup.infをインストールします。
  1. エクスプローラーを開き、以下のフォルダーのいずれか(システムに存在する方)に移動します:
    C:\Program Files\Oracle\VirtualBox\drivers\vboxdrv
    C:\Program Files\Oracle\VirtualBox\drivers\vboxsup
  2. .infで終わるファイル(例:VBoxDrv.infVBoxSup.inf)を探します。
  3. .infファイルを右クリックしてインストールを選択します。注:拡張子が表示されない場合は、エクスプローラーの表示タブでファイル名拡張子を有効にするか、各ファイルのプロパティを確認してください。

    「インストール」が表示されない場合は、方法4に進み、修復/クリーン再インストール(インストーラーを管理者として実行)を行ってください。

  4. インストール完了後、PCを再起動します。
  5. 再起動後、コマンドプロンプトを管理者として開き、対応するサービスを開始します(実際に存在する名前を使用):
    sc start vboxdrv

    または、システムがVBoxSupを使用している場合:

    sc start vboxsup

    成功すると:sc query <サービス名>を実行した際に「STATE : 4 RUNNING」と表示されます。

  6. VirtualBoxを起動し、仮想マシンを再度開始します。

それでも同じエラーが表示される場合は、以下に進んでください。仮想化/セキュリティの競合(Hyper-V/VBS/メモリ整合性)またはインストールの破損が原因である可能性があります。

3. Hyper-Vおよび仮想化機能の無効化(診断手順)

一部のシステムでは、Hyper-VVBSがVirtualBoxのネイティブモードでのドライバー読み込みを妨げたり、VirtualBoxがハードウェア仮想化にアクセスする方法を変更したりすることがあります。これらの機能を一時的に無効にすることは、問題が仮想化/セキュリティの競合によるものかどうかを切り分ける良い方法です。

注意:これらの機能を無効にすると、WSL2Docker DesktopWindowsサンドボックス、一部のエミュレーターに影響する可能性があります。テスト後に再度有効にできます。

  1. Windowsの検索でWindowsの機能の有効化または無効化を検索して開きます。
  2. Hyper-Vを見つけてチェックを外します。
  3. 有効になっている場合は、以下もチェックを外します:
    • Windowsハイパーバイザープラットフォーム
    • 仮想マシンプラットフォーム
    • Windowsサンドボックス(存在する場合)
  4. OKをクリックしてPCを再起動します。
  5. VirtualBoxを起動し、仮想マシンをテストします。

任意ですが重要:Hyper-Vがオフでも、WindowsはVBS / メモリ整合性を通じて仮想化を使用している場合があります。テストするには、Windowsセキュリティ > デバイスセキュリティ > コア分離からメモリ整合性をオフにし、再起動して再度テストします。

ヒント:Windowsがドライバーをブロックしている場合は、Windowsセキュリティ > 保護の履歴で、VirtualBoxVBoxDrv.sysVBoxSup.sys、または「ドライバーがブロックされました」に関連するイベントを確認してください。許可または復元のオプションがあれば適用し、その後VirtualBoxを再インストール/修復します。

4. VirtualBoxの修復またはクリーン再インストール

ドライバーファイルが破損していたり、バージョンが不一致だったり、部分的に削除されていたりする場合は、再インストールにより正しいドライバーとサービスが確実にインストール・登録されます。
インストーラーがすでにある場合は、まず修復(提供されている場合)を試してください。ない場合は、クリーン再インストールを行います。

  1. Oracle VM VirtualBoxをアンインストールします:
    設定 > アプリ > インストール済みアプリ(またはアプリと機能)から。
  2. アンインストール後、PCを再起動します。
  3. 任意のクリーンアップ(アンインストール後に残骸が残る場合のみ):
    エクスプローラーを開き、次の場所に移動します:
    C:\Windows\System32\drivers
  4. VBox*.sysのような名前の残存ファイル(VBoxDrv.sys、VBoxSup.sysなど)を探します。重要:VirtualBoxが完全にアンインストールされており、VirtualBoxの残骸だと明確に識別できる場合にのみ、VBox*.sysファイルを削除してください。
  5. 残存するVBox*.sysファイルがあれば削除します。Windowsが削除を許可しない場合は、無理に削除せず、そのまま再インストールに進んでください。
  6. 最新版のVirtualBoxをダウンロードしてインストールし、PCを再起動します。ヒント:インストーラーを右クリックして管理者として実行を選択すると、ドライバーが正しくインストールされます。
  7. VirtualBox Extension Pack(USB 2/3、RDPなど)を使用している場合は、使用中のVirtualBoxのバージョンに一致するバージョンをインストールします。
  8. VirtualBoxを起動し、仮想マシンを再度開始します。

著者について

Hamza Mohammad Anwar

Hamza Mohammad Anwarは、MERN技術を使用した高性能アプリケーションの開発を専門とするJavaScriptウェブ開発者です。ReactJS、MongoDB、Express、NodeJSなどの関連技術に精通しており、Google IT認定資格も保有し、ITサポートにおける高い能力を証明しています。熱心な問題解決者として、自身の環境でエラーを意図的に再現し、さまざまな技術的問題のトラブルシューティングと解決策を追求しています。

  1. 【解決方法】Windows起動時に表示されるBackgroundContainer.dllエラーの対処法

    起動時のBackgroundContainer.dllエラーを修正:多くのユーザーから、PCの起動時に「BackgroundContainer.dll」に関する見慣れないエラーメッセージが表示されるという報告が寄せられています。このBackgroundContainer.dllとは何でしょうか。実は、このDLLファイルは「Conduit Tool Verifier」というプログラムの一部であり、このプログラムは悪意のあるソフトウェア(マルウェア)で、ブラウザやPC全体を乗っ取ってしまう恐れがあります。起動時に表示されるRunDLLエラーメッセージは以下のようなものです。 RUNDLL C:/U

  2. Redditのバナーを変更する方法!プロフィール・サブレディットの画像更新をステップ解説

    Redditを毎日使っているなら、初期状態のままの無個性なバナーを使い続けるのは少しもったいないと感じませんか?バナーを自分好みにカスタマイズすれば、あなたの個性やセンスをアピールでき、お気に入りのサブレディットに一味違ったスタイルをプラスすることができます。この記事では、Redditでバナー画像を変更・設定する方法を、初心者の方にもわかりやすく解説していきます。 Redditのバナー画像とは? これからRedditを始める方のために簡単に説明しておくと、バナー画像とは、サブレディットやユーザーのプロフィールページの上部に表示される横長の画像のことです。自由に編集できるため、オリジナルのグラ