VirtualBoxでLinuxゲストが非アクティブ後に黒画面のまま復帰しない問題の解決方法
オペレーティングシステムを仮想マシンとして実行できるのは、まさに魔法のような技術です。試したい環境があっても予備のハードウェアがない場合でも、ハイパーバイザーを起動して仮想マシンを作成すれば、Windows、Linux、DOS、さらにはもっと古くニッチなOSまで、何でも気軽にテストできます。ただし、このエレガントな仕組みには独自の課題もあり、その代表格がディスプレイ設定や3Dアクセラレーションに関わるトラブルです。
以前、当サイトではVirtualBoxにおけるLinuxの黒画面(ブラックスクリーン)問題について取り上げました。あちらの対処法は現在でも有効ですが、今回はまったく新しい症状に遭遇しました。これはログイン時ではなく、起動済みのシステム内で発生するものです。ゲストOSを起動したまま一定時間放置すると、スクリーンタイムアウトによって画面が暗転・ブラックアウトします。通常ならマウスを動かすなどの操作で画面は復帰するはずですが、この場合、どれだけ操作しても画面が真っ黒なまま戻りません。再起動すれば直りますが、それでは解決になりません。
VirtualBoxにおけるLinuxのディスプレイ設定
VirtualBoxでLinuxディストリビューションをゲストOSとして動かす場合、いくつかの設定選択肢があります。まず、3Dアクセラレーションを有効にするかどうかです。3Dアクセラレーションを使うにはGuest Additionsのインストールが必要です。しかし、セキュリティ上の理由などでGuest Additionsを導入したくないケースもありますし、一部のディストリビューションはAdditionsが提供するドライバー群と相性が良くないこともあります。3Dアクセラレーションを無効のまま実行する場合、デスクトップの描画にはグラフィックカードへの呼び出しが一切使われず、すべてソフトウェアエミュレーションで処理されます。
とはいえ、ほとんどのディストリビューションはソフトウェアベースのグラフィックスでも十分に動作します。場合によっては、信じられないかもしれませんが、デスクトップのパフォーマンスが向上することすらあります(逆に悪化することもあります)。3Dアクセラレーションの有無は、ゲストOS内で選択可能な画面解像度の範囲にも影響しますが、大抵の場合は問題ありません。
3D設定に関する補足として、3Dアクセラレーションなしで運用する場合は、デスクトップ環境のコンポジット(Compositing)機能を無効化しておくと、ソフトウェアレンダリングの負荷を軽減できます。たとえばPlasmaの場合、コンポジターは通常OpenGLをバックエンドに使用しますが、OpenGLはVirtualBoxで3Dアクセラレーションを有効にしているときにしか利用できません。したがって、コンポジットを無効にすると、よりレスポンスの良い仮想マシンになります。
発生する問題
3Dアクセラレーション無効で運用していると、次のような問題に直面することがあります。仮想マシンを放置すると、一定時間後に画面が黒くなります(最近は珍しくなりましたが、スクリーンセーバーを使うディストリビューションもあります)。ここからセッションを再開しようとしたときに問題が現れます。通常、マウスカーソルを動かしたりキーを押したりすれば、画面が復帰してロック画面や開いていたデスクトップが表示されるはずです。物理マシンではそうなりますし、VirtualBox上のゲストOSでも同じ挙動が期待されます。ところが、実際には画面が黒いまま応答しなくなるのです。
仮想マシンの画面はブラックアウトしたまま反応せず、唯一の対処法はマシンの再起動です。つまり、作業中のセッションを失う可能性があります。筆者は複数のディストリビューションでこの問題に遭遇しましたが、いずれも3Dアクセラレーション無効のケースでした(3D有効時の黒画面については、冒頭で紹介したチュートリアルを参照してください)。システムログにも何も記録されていません。では、これを修正していきましょう。
解決策(というか回避策)
調査の結果、この問題はデフォルトのグラフィックスコントローラー「VMSVGA」を使用している場合にのみ発生することが分かりました。黒画面問題を回避するには、別のコントローラーへ変更します。該当する仮想マシンの設定ウィンドウを開き、「ディスプレイ > スクリーン」へ移動してください。そこで「グラフィックスコントローラー」のドロップダウンを「VBoxVGA」に設定します。筆者の環境では、すべてのディストリビューションをスムーズに起動でき、デフォルトの800x600px以外の「通常の」解像度でデスクトップを使用でき、安定したセッションを維持できるのは、この選択肢だけでした。

設定ウィンドウに「無効な設定が検出されました」と表示されるかもしれません。これはデフォルトの選択肢へ戻すよう促す警告ですが、マシンの使用自体は妨げられません。ただし、このコントローラーでは3Dアクセラレーションを使用できない点に注意が必要です。

次にディストリビューションを起動します。解像度はデフォルト値に戻るため、好みの値へ変更してください。VMSVGAの場合と比べて、選択可能な解像度やアスペクト比の範囲が異なることに気づくでしょう。自分に合った解像度を選んだら、システムを放置してみてください。今度は正しく画面が復帰するはずです。つまり、仮想スクリーンが正常にスリープ解除されるようになります。根本的な原因はまだ特定できていませんが、ひとまず有効な回避策と言えます。
まとめ
以上が対処法です。本来ならこうした問題に悩まされることはないはずですが、これこそが「魔法」なのです。OSの中にOSをインストールし、メモリとディスク容量の許す限り深くネストさせられるのですから。また、本記事を読む方の中には、症状が少しだけ異なるケースに直面している方もいると思います。要するに、ポイントは3Dアクセラレーションの使用有無と、対応するグラフィックスコントローラーの選択です。
まずデフォルト設定を変更してみて効果があるか確認しましょう。解像度の選択肢やデスクトップの快適さも含めて、最適な構成が見つかるまで各種設定を試してみてください。最後に、VirtualBoxのメジャーバージョンアップにより状況は大きく変わる可能性があります。また、Extension Packはプログラム本体と完全に一致するバージョンを使用してください。バージョン不一致は、競合や誤設定、奇妙な不具合のもう一つの原因となります。本日の記事が皆さんのお役に立てば幸いです。それではまた、仲間の技術者諸君。
それでは、良い仮想ライフを。
-
VMware ESXi活用ガイド:パフォーマンス最適化からSSH有効化までの実践テクニック
当ブログでは、これまでESXについてあまり深く取り上げてきませんでした。今回はその埋め合わせとして、ESXiに関する実用的なノウハウをたっぷりとご紹介します。ESXiで仮想マシンをクローンする方法に関するチュートリアルに続き、今度はVMwareの魅力をさらに掘り下げていきましょう。ESXiは無償で提供されているベアメタル型ハイパーバイザーであり、最も高価かつ高機能な仮想化ソリューション「ESX」へとつながる最初のステップです。念のため整理しておくと、VMwareにはホームユーザー向けの「VMware Player」や「Workstation」があります。また、ESXの機能を小規模でお手軽に体験
-
VirtualBoxでUSBドライブから起動する方法【ステップバイステップ完全ガイド】
はじめに:VirtualBoxの起動オプションと課題 VirtualBoxで新しい仮想マシンを作成する場合、通常、ゲストOSを起動するための選択肢は「2つ」あります。ISOイメージから起動する(CD/DVDドライブと同等)、または仮想ハードディスクから起動するかです。しかし、オペレーティングシステムがUSBドライブ上にあり、それを起動メディアとして使いたい場合はどうすればよいのでしょうか? そうしたい理由はさまざまあります。たとえば、OSがISOのようなシンプルで扱いやすい形式では提供されていないケース。あるいはソースのISO自体を持っておらず、外部ドライブ上のパーティションテーブルとデータと