Windows 10 Home Ed. で WSL2 に移行した備忘録です.
いつもの通り結論から言えば,
明らかに起動がはやくなりました.WSL1を使っている人はよほどの理由がない限りはやめに移行した方が幸せになれる
と思います.
移行機器
予備の仕事端末の Microsoft Surface go です.スペックは,
- Memory: 4GB
- Storage: EMMC 64GB
のいまとなってはかなり見劣りするレベルのもので,実際使用するとかなりモッサリしています.
もともとの OS は Windows 10S ですが,さすがにこれだと使い物にならないので,Home に切り替えています.
WSL2 は Hyper-V 上で実現されているので,Hyper-V を(一見)有効にでいない Home Ed. では使えないんじゃないかなと思ったのですが,
あたりを見ると Home Ed. でも Hyper-V のコア機能+αは使えるようで,WSL2 を使う場合はこれで十分らしい.
移行手順
移行手順は以下の通りです.
まず,PowerShell を管理者モードで起動して,
PS C:\WINDOWS\system32> wsl --list -v NAME STATE VERSION * Ubuntu Stopped
のように,WSL に導入済みの OS を確かめておきます.私の場合は Ubuntu 20.04 のイメージが1つだけ導入されています.
次に,念の為,CPU の仮想化が有効かどうか確認します.確認の方法はタスクマネージャーに「仮想化:有効」となっているかどうかを見れば良いらしい.
確認できたら,管理者モードの PowerShell で「仮想マシンプラットフォーム」を有効化します.
PS C:\WINDOWS\system32> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 展開イメージのサービスと管理ツール バージョン: 10.0.19041.844 イメージのバージョン: 10.0.19042.906 機能を有効にしています [==========================100.0%==========================] 操作は正常に完了しました。
なお,これは多分GUIでも有効化できます.GUI の場合は,
- 「設定」を開く
- 「アプリ」を選ぶ
- 「アプリと機能」から,関連設定の「プログラムと機能」を選ぶ
- 「Windowsの機能の有効化または無効化」を選ぶ
- 「仮想マシンプラットフォーム」を選択して「OK」を選ぶ
で良いはずです.
次は「Windows ハイパーバイザープラットフォーム」をインストールします.インストールの仕方は GUI だと前回の手順の最後の5のところを「Windows ハイパーバイザープラットフォーム」に変えるだけです.残念ながら CUI はどうやるのかよくわかっていません.
これで再起動すれば WSL2 を使う準備が調います.
再度,PowerShell を管理者モードで起動し,WSL2 を標準で使うよう設定します.
PS C:\WINDOWS\system32> wsl --set-default-version 2 WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
すると,何やらカーネルコンポーネントの更新が必要と出てくるので,指示通り,
にアクセスして,手順4のところにある「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」をダウンロードすると,「wsl_update_x64.msi」なるプログラムが落ちてきますので,素直にダブルクリックしてインストールします.
すると,
PS C:\WINDOWS\system32> wsl --set-default-version 2 WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
の通り,今度は WSL2 に切り替えても何も言ってこなくなるので,
PS C:\WINDOWS\system32> wsl --list -v NAME STATE VERSION * Ubuntu Stopped 1 PS C:\WINDOWS\system32> wsl --set-version Ubuntu 2 変換中です。この処理には数分かかることがあります... WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください 変換が完了しました。
の様にして,既存のWSL1イメージをWSL2に変換します.なお,「この処理には数分かかる……」とありますが,実際には20分以上かかりました.おそらくWSL1のイメージの大きさやマシンスペックでかなり大きく変わるんじゃないかなと思います.
これでWSL2への移行は完了です.
Ubuntu on WSL を起動すると明らかに起動速度が上がっており,さらに,
❯❯❯ uname -a Linux SurfaceGo 5.4.72-microsoft-standard-WSL2 #1 SMP Wed Oct 28 23:40:43 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
の通り,確かに WSL2 で起動していることも確かめることができました.
このあと一通り使ってみましたが,いまのところ特になんの不具合もみつかっていませんしWSL1より明らかに高速に動作します.と言うことで,
もっとはやめに移行しておけば良かった……
以上!