おれはWSL1をやめるぞ!Linuxのカーネルでなァーーーーーッ!!


嘘概要

なぁお前ら・・・WSLでモダン開発ってのは限界があるなあ
おれが短い人生で学んだことは・・・・・・・・・・・・
人間は策を弄すれば弄するほど予期せぬ事態で策がくずされるってことだ!
・・・・・・・・・・・・
Winカーネルから脱するものにならなければなぁ・・・

、、、、、、、、
おれはWSL1をやめるぞ!

おれはWinカーネルから脱出するッ!
Linuxのカーネルでだァーーーーーッ!!

概要

Windows 10 バージョン 2004から、Windows SubSystem for Linuxのバージョン2(以下:WSL2)が利用できるようになりました。
これは、常用しているWSL1環境からWSL2への移行の仕方を書いた記事です。
ウェーーイ!WSL2!ウェーイ!と移行したら、少し痛い目を食らったので、留意点も含まれています。

最初に(留意点)

Windows10のアップデートも含めると1日溶けるので、暇な時・帰宅時に仕掛けて帰るなど、使わないときに行った方が幸せです
WSL1からWSL2への変換は、すごく時間がかかります。僕の場合は、4時間かかりました
マシンも激重になるので、並行してやろうとしないでください。

お 兄 さ ん と の 約 束 だ ぞ 

WSL1とWSL2の違い

「この章、たいしたこと言ってないんで、飛ばしちゃって平気です。
このキモオタ何言ってんだって感じの内容なんで。」

従来のWindows SubSystem for Linuxのバージョン1(以下:WSL1)との違いは、本物のLinuxカーネルをHyper-V仮想マシン上で動作させる点があります。

ものすごく簡単に言ってしまうと、WSL2用のLinux仮想マシンを作って動かしているわけですね。
Virtual Boxと変わらない思った人もいると思いますが、導入のハードルがWSL2の方が楽です。(そもそも、インストール不要だし)
ついでに言うと、パフォーマンスもWSL2の方が上です。
参考:VirtualBox他のベンチマークテスト

なぜ、パフォーマンスが上なのか。
それについては、「Hyper-V Virtualbox 比較」や「Docker Virtualbox 違い」で、ググってみてください。

Windows 10のアップデート

WSL2を使うなら、Windows 10 バージョン2004以降にアップデートしないといけません。(Homeでも大丈夫です。)
お使いのWindows 10 が、バージョン2004以降か確認するには、コマンドプロンプトないしファイル名を指定して実行(Winキー+R)で、winverと、入力してください。

出てきたバージョン情報に、バージョン2004 (OSビルド 19041.264)かそれ以上の数字が書いてあれば、アップデートの必要はありません。

そうでない場合は、Windows Updateまたはメディア作成ツールを用いて、アップデートしてください。

仮想マシンプラットフォームの有効化

Windows 10のアップデートが終わった後は、WSL2の仮想マシンを動かすために必要な「仮想マシンプラットフォーム」を有効化します。

上記の操作は、以下のコマンドでも同じことができます。
(管理者としてPowerShellを開くこと)

仮想マシンプラットフォームを有効にする
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

有効化したあと、PCを再起動します。

Linuxカーネルのインストール

Windows Insider Programで、WSL2を先行して利用してない場合、WSL2用のLinuxカーネルをインストールする必要があります。
以下のページからインストーラーをダウンロードして、カーネルをインストールしてください。
https://docs.microsoft.com/ja-jp/windows/wsl/wsl2-kernel

WSL1からWSL2への変換

ようやく、WSL1の環境をWSL2に変換していきます。
作業としては、変換したいディストリビューション名を確認から行います。

ディストリビューションの確認
> wsl --list
Linux  Windows サブシステム ディストリビューション:
Ubuntu-18.04 (既定)
wslの変換
> wsl --set-version Ubuntu-18.04 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

WSL1のファイルを、全てWSL2の仮想ハードディスクにコピーするので、使い込んでいると、数分どころではない時間がかかります。

WSLのバージョン確認

変換が完了したら、確認しましょう。

wslのバージョン確認
> wsl -l -v
  NAME                   STATE           VERSION
* Ubuntu-18.04           Running         2

目的のVERSIONが'2'になっていれば、変換完了です。

参考