まず、OptionalFeatures.exe を実行して以下の二つを ON に
- Linux 用 Windows サブシステム
- 仮想マシン プラットフォーム
PowerShell からやる場合は管理者モードで立ち上げて
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform
ここで、要再起動
既に WSL1 は導入済みだったので、前者は ON だったが後者は OFF だったので、実質的な設定変更は後者が ON になった部分。
この時点で cygwin から wsl コマンドを叩いてみると以下のようになっていた。
$ wsl -l -v
NAME STATE VERSION
* Ubuntu Running 1
WSL1 なので WSL2 への変換が必要だが、
再起動してないと、仮想マシン プラットフォームが機能してないので
$ wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
Windows の仮想マシン プラットフォーム機能を有効にして、BIOS で仮想化が有効になっ
ていることを確認してください。
詳細については、https://aka.ms/wsl2-install を参照してください
みたいに言われて、WSL1 から WSL2 への変換に失敗する。
再起動して変換を開始すると、変換には数分を要する。
$ time wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。
real 1m52.093s
user 0m0.000s
sys 0m0.000s
変換中は以下のようになる。
$ wsl -l -v
NAME STATE VERSION
* Ubuntu Converting 1
変換後
$ wsl -l -v
NAME STATE VERSION
* Ubuntu Stopped 2
WSL1 と WL2 の間で相互変換できるが、連続で行うと時間が短くなる。キャッシュが効いてるのかも?
$ time wsl --set-version Ubuntu 1
変換中です。この処理には数分かかることがあります...
変換が完了しました。
real 1m39.948s
user 0m0.000s
sys 0m0.000s
$ time wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
変換が完了しました。
real 1m0.263s
user 0m0.000s
sys 0m0.015s
最後の WSL1→2 変換時の負荷
Windows Update で「Windows Subsystem for Linux Update - 4.9.104」が適用済みだったので、
20200530: WSL2 の時に言われてた「WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については
https://aka.ms/wsl2kernel を参照してください」ってのは出て来なかった。
WSL2 の初回起動。
ちょっと遅い。カーソル点滅10回分くらい程度。
起動すると以下のような状態になる。
$ wsl -l -v
NAME STATE VERSION
* Ubuntu Running 2
WSL2 の窓が1つでも残ってると、追加の起動はほぼ一瞬だが、全て閉じるとやはり10秒くらいかかる模様。