仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

Linux での VirtualBox のフリーズと未チェックの MSR エラーを修正する

Linux、VirtualBox フリーズ、未チェックの MSR エラー

更新日:2025 年 11 月 28 日

私の奇妙な最新作へようこそ。つまり、Ubuntu や Fedora などの Linux を使用します。何らかの仮想化製品を使用しているとします。私の場合は VirtualBox ですが、この問題はさまざまなハイパーバイザーに当てはまります。仮想マシンを起動すると、時々、動作が途切れることがあります。途中で、システム全体 (ホスト) が応答しなくなります。この問題は、VirtualBox 7.X 以降、Kubuntu 22.04 以降で気付きました。

トラブルシューティングにはかなり時間がかかりましたが、ようやく根本原因がわかったと思います。たまたまですが、これもまた無意味な問題のスラッシュバグであり、カーネルのバグ、Spectre ファミリの緩和策、ホストとハイパーバイザーの衝突、その他の要素の組み合わせから発生します。言い換えれば、一般の人々が Linux デスクトップを本格的に使用することを妨げる、もう 1 つの問題が発生したということです。しかし、少なくとも、それを機能させようとする私のような面白いキャラクターがいます。よろしければ、このチュートリアルをご覧ください。私の後です。

問題の詳細

とてもシンプルです。目的の仮想化製品で仮想マシンを起動します。ある時点で、仮想マシンが応答しなくなります。プログラムのアイコンをクリックするだけの簡単なものでも構いません。次に、自分のホスト デスクトップが正しく動作していないことにも気づきます。マウスのクリックに反応しなくなったり、特定のプログラムが反応しないのに他のプログラムは反応しなくなったりします。 「問題」は自動的に解決される場合もあれば、解決しない場合もあり、マシンをハードブートする必要があります。非常に迷惑です。

私は数か月間この問題に直面していました。もちろん、これは別のカーネルの問題で、おそらく私の Titan をしばらく誤動作させた、または私の Executive に依然として影響を及ぼしている同様の役に立たない作物によるものです。興味のある方のために、第 4 回レポートと第 6 回レポートをそれぞれリンクしました。これら両方のラップトップについては、さらに多くの記事があるので、よかったら私の Linux セクションをチェックしてください (6 番目と 10 番目のレポート)。

なぜカーネルの問題だと思うのですか?まあ、私がまだ Kubuntu 22.04 と VirtualBox 7.0 を使用していたときに突然始まったためです。 Kubuntu 24.04 および VirtualBox 7.1 にも継続されます。犯人は VirtualBox であると言えるかもしれませんが、それでは私が発見した多数のカーネル バグの説明にはなりません。

つまり、システム ログに次の愚かなエラーが記録されています。

カーネル:未チェック MSR アクセス エラー:WRMSR から 0xd10 (0x00000000000 を書き込もうとしました)
0ffff)、rIP:0xffffffff910c6be4 (native_write_msr+0x4/0x40)
カーネル:コールトレース:
カーネル:<タスク>
カーネル:? show_stack_regs+0x23/0x40
カーネル:? ex_handler_msr+0x10a/0x180
...

「未チェックの MSR アクセス エラー:WRMSR」を検索すると、openSUSE、Fedora、Rocky、Ubuntu、Proxmox などに関連する数百のスレッドが見つかります。これはカーネルの問題であり、問​​題は 2019 年まで遡り、そのほとんどが未解決です。ヴンダーバール。

舞台裏のコードを少し理解する必要があるので、簡単に言うと、次のようになります。カーネルに追加されたさまざまな緩和策 (サイドチャネル攻撃などに対する) が原因で、特に準仮想化やネストされたページングを使用している場合、カーネルのスケジューリングとコア管理と、同様のことを行うサブシステム (ハイパーバイザーなど) との間に競合が発生する、または競合する可能性があります。簡単に言うと、緩和策は少し強引な場合があり、システムのフリーズやハングにつながる可能性があります。

また、余談ですが、これらのカーネル緩和策はすべて企業に 100% 関連しており、家庭での使用には 0% 関連しています。しかし、Linux デスクトップはエンタープライズ/コーポレート カーネルの世界の偶然の産物であるため、エンド ユーザーであるあなたは、ホーム マシン上でエンタープライズの問題に悩まされることになります。

回避策

この問題の発生を減らすには 3 つの方法があります。

仮想マシンに割り当てられている CPU コアの数を減らす

8 のようなものを使用している場合は、1 ~ 2、おそらく 4 を試してください。これで一部は改善されますが、問題が解決されるわけではありません。

影響を受ける仮想マシンのネストされたページングを無効にする

これにより、パフォーマンスが大幅に低下しますが、少なくともマシンは正常に動作し、システムがハングすることはありません。例として、VirtualBox で、[システム]> [アクセラレーション] に移動し、ここで [ネストされたページングを有効にする] チェックボックスをオフにします。

Linux での VirtualBox のフリーズと未チェックの MSR エラーを修正する

一般に、試すことができるオプションがいくつかあります。どの順列が最も効果的かを確認してください。

  • プロセッサ> 拡張機能> ネストされた VT-x/AMD-V を有効にする
  • 準仮想化インターフェイス (Linux のデフォルトは KVM)。
  • ハードウェア仮想化> ネストされたページングを有効にする

準仮想化 (ネストされたページング) を無効にする

これは、マシン全体でこれを無効にする BIOS/UEFI を通じて行うことができます。または、KVM ハイパーバイザーの構成ファイルを作成して、すべての仮想マシンでネストされたページングの使用を防ぐこともできます。 /etc/modprobe.d の下に、プロセッサ アーキテクチャに基づいて、kvm-intel.conf または kvm-amd.conf という名前のファイルを作成します。このファイル内に以下を追加します。

オプション kvm-[amd|intel]nested=0

ハイパーバイザー カーネル モジュールをリロード (または再起動) すると、MSR のないエクスペリエンスが得られます。ただし、これを行うとすべての仮想化ワークロードの速度が低下するため、これはお勧めしません。適切なカーネル パッチによってこの問題が完全に解決されるまでは、必要に応じて各仮想マシンのネストされたページ オプションのチェックを外すか、オプションを有効または無効にする方が、より効果的かつ迅速です。

結論

さあ、どうぞ。 Linux デスクトップに対する私の自信を揺るがすもう 1 つの小さな問題。この時点で、累積された罰はとんでもないものになりつつあります。 Linux が非常にモジュール式で柔軟性があるのは非常に良いことですが、なぜ私の血まみれのデスクトップ上のクラウド内の「不正な」ゲスト テナントを気にする必要があるのでしょうか?私は気にしない。そして私は、企業がビジネスの世界だけでなく、あらゆるシナリオに対してカーネルをテストすることを期待します (テストする場合)。 Linux デスクトップの QA が冗談であることは誰もが知っていますが、カーネルが何かを行う場合は、少なくともある程度のテストが必要です。

私はこの種の問題が大嫌いです。彼らは何年もチェックされずに放置されています。これらはショットガンの爆発のような問題であり、家庭での使用には関係ありません。これらの問題は無意味な後退を表しています。毎日の使用が困難になります。そして、デスクトップ空間がいかに複雑すぎるか、そして本質的にデスクトップ空間ではないことを強調しています。せいぜい、GUI と家庭用と呼ぶべき小さな特典を備えた粗悪なサーバーを使用していることになります。実際、今後数週間で、私自身の小さなディストリビューションを組み立てることによって実際にこれを実証する予定です。うん。さて、この粗さは、本来あるべき一般人にとって居心地の良い製品ではないという事実に由来しています。とにかく、仮想化の実行中にシステムがフリーズした場合は、ログを確認し、上記の回避策を試してください。問題が解決されるまでは、解決されない可能性も十分にあります。バイバイ。

乾杯。


  1. VMWare Workstation/PlayerでVMの自動サスペンドを無効にする

    VMWareワークステーションハイパーバイザーの厄介な機能に気づきました。しばらくの間仮想マシンを使用しない場合、組み込みの自動一時停止機能によって仮想マシンが自動的に一時停止されます。 VMを引き続き使用するには、この仮想マシンを再開するをクリックする必要があります。 ボタン。 機能を自動的に一時停止します VMWare Workstation Player/Fusionではデフォルトで有効になっています。シャットダウンせずにVMの状態を自動的にフリーズすることで、ホストリソースを節約できます。一時停止中のVMをオンにするには数秒かかりますが、この機能は煩わしいと思います。

  2. Linux の VMware Workstation - 素晴らしい!

    私は仮想化製品、特に VMware の大ファンです。 Player、Server、ESXi、それらはすべて、さまざまなオペレーティング システムの複数のインスタンスを一度に実行することに関して、コンピューター ユーザーにさまざまな創造的で便利なソリューションを提供します。 VMware 製品は、仮想化パックのリーダーとして際立っています。その製品の一部は、ESX や Workstation などの完全な機能を備えた次のレベルのソフトウェアを購入するように誘導することを目的として、Player や Server などの個人使用は無料です。 ESX は間違いなく家庭での使用にはやり過ぎですが、