きままに記録箱

フロントエンドたまに他のはなし

WSL1をWSL2にアップデートする

今回はWSL1をWSL2にアップデートする手順を掲載する。

前提条件

  • PCのWindows10がVersion2004、build19041 以上であること
  • WSL1をインストール済み

注意:Windows10のバージョン2004へのアップデートは不具合対応のため、現在対象PCは不具合の影響を受けないPCのみに限定されています。WindowsUpdateからインストールできる場合だけアップデートしてください。「お使いのデバイスでは、まだ準備が完了していません」とか「まもなく~リリース」とか出ている場合は自己責任でやりたい人以外は実行しないでください。*1

WSL2にアップデートする主なメリット

  • DockerがWindows 10 Homeでも利用可能になる

近年のWeb技術では欠かせないDockerがようやく利用できます。PCの環境関係なく、コード化されたファイルを作成し、コンテナというものからそのファイルを実行することで指定した開発環境で実行できるという優れものです。詳しくは後日・・・

  • その他WSL1では動作しなかったLinuxソフトが実行可能になる(勿論コマンドからインストールするものだけ)

  • (予定)LinuxGUIアプリが使用可能にする計画あり

今回使用した動作環境

Windows10 Home Version2004の

Ubuntu 18.04 LTS(WSL1)

※今回はこのバージョン名を例にしています。該当箇所は自分の環境のものに置き換えてください。

アップデートまでの手順

1.仮想マシンプラットフォームオプション機能を有効にする

まずWSL 2 をインストールする前に、「仮想マシンプラットフォームオプション機能」を有効にする必要がある。

管理者権限で立ち上げたPowerShellで次のコマンドを入力する。

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

f:id:miruoon:20200718184150p:plain

コマンド入力後はPCで再起動して「仮想マシンプラットフォームオプション機能」を有効にします。

2.WSL 2 を既定のバージョンに設定する

再び管理者権限のPowerShellで次のコマンドを入力します。

wsl --set-default-version 2
(オプション)手順2のコマンド入力で「WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。」がメッセージが出た場合

<<該当メッセージが出なかった場合は飛ばしてください>>

ここで「WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。」というメッセージが出た場合はPowerShellの案内にある https://aka.ms/wsl2kernelに飛んで、「Linux カーネル更新プログラムパッケージ」をクリックしwsl_update_x64.msiをインストールしてください。

インストールすると次の画面が出るはずです。 f:id:miruoon:20200718190041p:plain

Nextボタンを押すと次の画面が出てインストールが完了するはずです。 f:id:miruoon:20200718190416p:plain

ここで改めて手順2を実行するとエラーがでなくなっているはずです。 f:id:miruoon:20200718190621p:plain

3.WSL1で使用中のLinuxをWSL2にアップデートする

まず以下のコマンドでWSL1で使用中のLinuxを確認してください。

wsl --list --verbose

ここで出てくるNAME列の値を使って、以下のコマンドでアップデートします。今回はWSL2へのアップデートなので、2を指定します。

wsl --set-version Ubuntu-18.04 2

f:id:miruoon:20200718191221p:plain

「変換が完了しました。」というメッセージが出れば問題ありません。

更新したWSLを立ち上げてから上記のwsl --list --verboseをもう一度入力するとSTATE列がRunningに変わっていたら完了です。 f:id:miruoon:20200718192809p:plain

参考記事

Windows Subsystem for Linux (WSL) を Windows 10 にインストールする | Microsoft Docs

WSL1からWSL2への更新 – variable.jp [データベース,パフォーマンス,運用]

WSL2導入|WinアップデートからWSL2を既定にするまでのスクショ - Qiita