Posted at

Docker用とVirtual Box用のWindowsの選択起動画面を表示させる方法

VirtualBox 6.0ではHyper-Vとの共存が可能になったとのことでしたが、私の環境で試してみたらVirtualBox内のDebianが立ち上がらず、うまくいきませんでした。こちらのOracleのドキュメントではExperimental featureとされており、まだ問題があるようなので、しばらく再起動して切り替える必要がありそうです。

Hyper-Vを利用するDocker Desktop for Windowsと、Hyper-Vと共存できないVirtual Boxをどちらも同一のマシンで利用したい場合、ブートオプション画面を表示させ、Hyper-VがOnまたはOffのどちらの状態でWindowsをブートするか選択可能にする方法がネットにあったのでメモしておきます。

管理者権限でコマンドプロンプトを起動し、次のコマンドで現在のブートローダー(current)をコピーして新しいエントリーを作成します。表示名は何でもよいですが、この例ではNo Hypuer-Vにしています。

> bcdedit /copy {current} /d "No Hyper-V"

エントリ {193f34a8-3ddb-35d2-3f9c-20349842c9fc} は正常に作成されました。

単にbcdeditを実行すると、currentの設定に加え上記のエントリとその内容が確認できます。次の、このエントリのhypuervisorlaunchtype設定をオフにします。

> bcdedit /set {193f34a8-3ddb-35d2-3f9c-20349842c9fc} hypervisorlaunchtype off

この操作を正しく終了しました。

これエントリが作成できました。シフトキーを押しながら再起動すると、起動時に作成した"No Hyper-V"が選択できるようになります。

上記の例ではデフォルトでHyper-Vを有効、オプションで無効という設定を想定していますが、

デフォルトで無効、オプションで有効にする場合は、currentのhypervisorlaunchtypeoffになっている状態でエントリを上記の方法でコピーし、コピーされたエントリのhypervisorlaunchtypeautoに設定します。

参考

* Yashints | Switching between VirtualBox and Hyper V

* Hyper-V をオン/オフする方法 - Qiita

* Windowsのbcdeditでブートメニューの項目を追加する:Tech TIPS - @IT

* Windowsのbcdeditでブートメニューの表示順序やデフォルトを変更する:Tech TIPS - @IT