わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

WSL2とVirtualBoxの共存について(2022.09)

 10月からの授業の準備に,時間をとっています.
 課題は,昨年度の内容を少し手直しして使用します.
 使用するソフトウェアは,今年度も,VirtualBoxです.Debian 11に,いくつかパッケージを追加・削除し,仮想アプライアンスのファイルを作成して,ブラウザからダウンロードできるよう準備を終えました.
 時間を浪費したのは,今回も,VirtualBoxとWSL2との共存です.両方を起動することはできます.VirtualBox(バージョンは6.1.38)で,ゲストOSとしてDebian 11を起動することもできます.しかし,ほどなく,カーネルパニックとなり,ゲストOSを停止しないといけなくなるのです.なお,職場も自宅も,ホストOSはWindows 11 Proです.
 結局,職場のPCでは,VirtualBoxとWSL2の一方をオフにしました.デスクトップPCはWSL2(とDocker)を動かすようにし,ノートPCの1台を,授業の期間,VirtualBox専用機とします.
 いずれも,まずは「Windows の機能の有効化または無効化」を起動し,一覧の中から,「Windows ハイパーバイザー プラットフォーム」と「仮想マシン プラットフォーム」にチェックを入れました.
 それと,「コア分離」を開いてメモリ整合性をオフにしました.「Windows の機能の有効化または無効化」も「コア分離」も,下段タスクバーの虫メガネ(ここを選択して検索)に打ち込むことで選択できます.「コア分離」の件は以下を参考にしましたが,自分の実行環境では,「ファームウェアの保護」は表示されませんでした.

 VirtualBoxを使用する場合には,次の2つを行ってから,再起動します.

  • PowerShellを管理者として起動し,bcdedit /set hypervisorlaunchtype offを実行します.*1
  • Windows の機能の有効化または無効化」で,「LinuxWindows サブシステム」にチェックが付いていたら外します.

 WSL2を使用する場合には,次の2つを行ってから,再起動します.

  • PowerShellを管理者として起動し,bcdedit /set hypervisorlaunchtype autoを実行します.
  • Windows の機能の有効化または無効化」で,「LinuxWindows サブシステム」にもチェックを入れます.

 bcdeditコマンドについては以下を参照しました.

 なお,Windows 11で,PowerShellを管理者として起動するには,「ここを選択して検索」に「powershell」を打ち込んでから,表示される「Windows PowerShell」を右クリックして,「管理者として実行」を選びます.ユーザー アカウント制御には「はい」です.
 なのですが,自宅のデスクトップPCでは,VirtualBoxとWSL2が共存しています.TabbyでUbuntuのシェルを動かしながら,職場で作成したDebian 11の仮想アプライアンスVirtualBoxにインポートし,起動させてGUIでアプリケーションが実行できています.PowerShellからbcdeditを引数なしで実行すると,最後の行に「hypervisorlaunchtype Auto」と表示されます.このPCで,上述の一方をオフにする手続きを,行うわけにもいきません.

 昨年は:

 以下もご覧ください.

*1:hypervisorlaunchtypeという,長い引数は,「ハイパーバイザー・ローンチ・タイプ」と区切って唱えるといいでしょう.