WSL2のカーネルコンポーネント更新。WSL1からWSL2に移行する
目次
WSL2のカーネルコンポーネント更新。WSL1からWSL2に移行する
僕の場合、Windows10のWSL1の時にubuntuをインストールして、その後、Windows11にアップグレードしました。
しかし、Windows11になっても、WSLが勝手にアップグレードされるわけではなく、それなりの手順を踏んで、WSL1からWSL2に移行する必要があります。
今回は、その話題です。
WSLのバージョン確認
まず、自分の環境のWSLのバージョン確認をします。
Windowsターミナルで「Power Shell」を使います。
wsl --list --verbose
確かに、WSLのバージョン1で動いています。
WSL1でもUbuntuは動きますが、細かいところでうまくいかない部分が残ります。
例えば「vmstat」がエラーになるとか・・ですね。
なので、WSL2にあげておきたいと思います。
カーネル更新なしだとWSL2に移行は失敗!
まず、「Power Shell」でシンプルにコマンドを実行してみます。
Nameが「Ubuntu」になっているので
wsl --set-version Ubuntu 2
てな感じです。
ところが変換できず、エラーメッセージが表示されました。
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
どうも、ubuntuもStopしてしまったようです。
なるほど。
Windows11にあげただけで自動的にWSL2のカーネルコンポーネントが更新されているわけではないみたいです。
WSL2のーネル コンポーネントを更新する
という手順をふむ必要があります
まずは「仮想マシン プラットフォーム オプション機能を有効」にします。
PowerShellを管理者権限で起動し、以下を実行して、マシンを再起動します。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
再起動したら、仮想マシン プラットフォーム オプション機能は有効になっています。
以下のインストーラをダウンロードして、実行します。
https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi
これでいけるはずです。
インストール済のubuntuのWSL2移行に再挑戦
WSL2のーネル コンポーネントを更新したので、WSL1にインストール済のubuntuをWSL2に移行します。
Power Shellで以下のコマンドを実行します。
wsl --set-version Ubuntu 2
しばし時間がかかりますが。
いけたみたいです。
確認してみます。
wsl --list --verbose
WSLのバージョンは2になってます。
これで移行は完了ですが、以後新たにインストールするディストリビューションが最初からWSL2になるようにデフォルトを変更しておきます。
wsl --set-default-version 2
WSL2移行後のubuntuを動かす
WSL上のubuntuが「Stopped」になっていても、新たにWindowsターミナルを開けば再起動するので、ターミナルを開きます。
WSL1だと動かせなかった「vmstat」で動作確認してみます。
vmstat 10
これで10秒おきに、システムの状態をレポートしてくる便利コマンドで、開発・テスト中にはとてもよく使うのですが、WSL1では動かずストレスでした。
でも、ちゃんと動いてますね。
移行はちゃんとできたみたいです。
ではでは。