Windows 10 Home Ed. で WSL2 に移行した備忘録

Gadget
Photo by hyt.

Windows 10 Home Ed. で WSL2 に移行した備忘録です.

いつもの通り結論から言えば,

明らかに起動がはやくなりました.WSL1を使っている人はよほどの理由がない限りはやめに移行した方が幸せになれる

と思います.

移行機器

予備の仕事端末の Microsoft Surface go です.スペックは,

  • Memory: 4GB
  • Storage: EMMC 64GB

のいまとなってはかなり見劣りするレベルのもので,実際使用するとかなりモッサリしています.

Microsoft Surface Go MHN-00014 雑感
MicrosoftSurfaceGoMHN-00014雑感です.の続き.64GB/Intel4415Y/4GB/WiFiモデルです.まずはいつもの通り結論から.SurfaceGoは64GBモデルではなく,128GBのモデルを買うべきです.そ...

もともとの OS は Windows 10S ですが,さすがにこれだと使い物にならないので,Home に切り替えています.

WSL2 は Hyper-V 上で実現されているので,Hyper-V を(一見)有効にでいない Home Ed. では使えないんじゃないかなと思ったのですが,

WSL2とHyper-Vの関係 - Qiita
PR2020年もWSLAdventCalendar作りました。WSL2をインストールして使うときの注意点もよろしくお願いします。tl;drWSL2はHyper-Vのコア機能であるHyper-Vアーキテクチャと...

あたりを見ると 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 の仮想化が有効かどうか確認します.確認の方法はタスクマネージャーに「仮想化:有効」となっているかどうかを見れば良いらしい.

Photo by hyt.

確認できたら,管理者モードの 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 の場合は,

  1. 「設定」を開く
  2. 「アプリ」を選ぶ
  3. 「アプリと機能」から,関連設定の「プログラムと機能」を選ぶ
  4. 「Windowsの機能の有効化または無効化」を選ぶ
  5. 「仮想マシンプラットフォーム」を選択して「OK」を選ぶ

で良いはずです.

次は「Windows ハイパーバイザープラットフォーム」をインストールします.インストールの仕方は GUI だと前回の手順の最後の5のところを「Windows ハイパーバイザープラットフォーム」に変えるだけです.残念ながら CUI はどうやるのかよくわかっていません.

Photo by hyt.

これで再起動すれば WSL2 を使う準備が調います.

再度,PowerShell を管理者モードで起動し,WSL2 を標準で使うよう設定します.

PS C:\WINDOWS\system32> wsl --set-default-version 2
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

すると,何やらカーネルコンポーネントの更新が必要と出てくるので,指示通り,

Manual installation steps for older versions of WSL
StepbystepinstructionstomanuallyinstallWSLonolderversionsofWindows,ratherthanusingthewslinstallcommand.

にアクセスして,手順4のところにある「x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ」をダウンロードすると,「wsl_update_x64.msi」なるプログラムが落ちてきますので,素直にダブルクリックしてインストールします.

Photo by hyt.

すると,

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より明らかに高速に動作します.と言うことで,

もっとはやめに移行しておけば良かった……

以上!

GadgetMicrosoft
スポンサーリンク
Following hyt!
hyt adversaria
タイトルとURLをコピーしました