スリープするとVirtualBoxの音が聞こえなくなるんです

普段VirtualBoxで動いているUbuntuで音楽を再生して聞いています。実際の音はモニタのスピーカーから出ています。

この環境で音楽を聞いていると、立ち上げた時にはちゃんと聞こえるのですが、モニタが自動電源オフしたりPCがスリープした後に復帰すると音が聞こえなくなる時があって困っていました。

環境はこんな感じです。

ゲスト OS Ubuntu 20.04
ホスト ハイパーバイザー VirtualBox 6.1.26
OS Windows 10 Pro 21H1
CPU Core i7-8700


調べてみると

どうやらホストOS上のVirtuaBoxのオーディオ出力先に問題があるようでした。

Windowsの音量ミキサーで見るとVirtualBoxのオーディオ出力先が別の再生デバイスに切り替わっていたり、どの再生デバイスにも出力されなくなっていたりします。

Windows10の音量ミキサー - VirtuaBoxが別の再生デバイス上にある

Windows10の音量ミキサー - VirtualBoxがない


この他にもひとつのVirtualBoxが音量ミキサーの複数の再生デバイスに同時に見えたり、音量ミキサーのどこにも見えなくなったりもします。


この状態になるとゲストOSをリブート(電源OFFしないで再起動)しても復活しません。ゲストOSをシャットダウンして再起動すれば復活するのですが、作業中などは面倒です。

Ubuntuの電源OFFダイアログ


色々試してみると、現象が2種類ありました。


軽症のケースは

ホストPCの[サウンド]-[再生]で見ると有効な再生デバイスが複数ある場合に発生します。

Windows10のサウンド画面


本当は既定の再生デバイスにあるはずのVirtuaBoxが別の再生デバイス上にいつの間にか移動しています。

Windows10の音量ミキサー - 既定の再生デバイスではない方にVirtualBoxがある


この時は、[サウンドの設定を開く]-[サウンドの詳細オプション]-[アプリの音量とデバイスの設定]を開きます。

Windows10のサウンドの設定の開き方

Windows10のサウンドの設定画面

Windows10のアプリの音量とデバイスの設定画面



VirtualBoxの出力先を[既定]から出力したい再生デバイスに切り替えると割と高い確率で復活しました。

Windows10のアプリの音量とデバイスの設定画面 - 再生デバイスの選択


たまに、このアプリの一覧の中にVirtualBoxが無い場合があります。このときは、諦めて次の重症のケースで対応します。


重症のケースは

VirtualBox自体が、[サウンドの設定を開く]-[サウンドの詳細オプション]-[アプリの音量とデバイスの設定]のアプリの一覧に出てきません。

これは、有効な再生デバイスが一つしかない場合になりやすいのですが、有効な再生デバイスが複数ある場合でもときどき発生します。

この時は、軽症のケースで使った出力先を切り替える手段が使えません。

今のところ、この場合は仮想マシンを一時停止して再開するか、ゲストOSをシャットダウンして再起動する必要があります。

VirtualBoxの仮想マシンを閉じる画面


結局

軽症のケースになることを期待して、有効な再生デバイスが複数ある状態にしておいて使うことにしました。

軽症のケースで済めば再生デバイスを切り替えて対応します。重症のケースになってしまった場合は、諦めてゲストOSをシャットダウンするか仮想マシンを一時停止して再開しています。

仮想マシンを一時停止する方法は、ゲストOS上の作業をそのまま続けられるので楽なのですが、かなり遅いのが難点です。そこで、ゲストOS上で保存が必要な作業をしているかどうかで、ゲストOSをシャットダウンするか、仮想マシンを一時停止して再開するかを使い分けるようにしています。