63
64

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

やさしいWSL2のインストール手順とエラー

Last updated at Posted at 2020-04-11

関連記事:やさしいWindows Subsystem for Linux (WSL) のインストール手順

導入時の主だったエラー:
wsl_update_x64.msi(Windows Subsystem for Linux Update Setup Wizard) 実行時にThis update only applies to machines with the Windows Subsytem for Linuxと表示され、先に進まない
wsl_update_x64.msi実行時のエラーに記載
wslmsi.png

はじめに

だらだらとはじめに 自分の使っているUbuntu on Windows(WSL1)にSelenium等を入れてスクレイピングをしてみようと意気込んでいたのですが、そもそもwslにブラウザが入らず困っていました。 Firefoxなら入るだろうと高を括っていましたが、残念ながら大量のエラーを吐き出しながらあえなく撃沈 いろいろ調べてみると以下のページで「WSL2なら動くよ!」という記述を発見したので入れてみました [Cannot run Firefox #4964](https://github.com/microsoft/WSL/issues/4964)

これを書いている途中に、WSL2入れてみた を見つけてしまったので、本記事では差別化を図るべく、幾分か丁寧にWSL2の導入手順を説明していきます

基本的にはWSL2の導入は簡単なので、安心してください

本記事のターゲット

  • WSL2に興味があるがなんとなく敷居が高く感じている人
  • 外出自粛で暇なので、何か新しいことにチャレンジしたい人

なお、本記事では導入後の話には触れません(きっともっとすごい人たちがたくさん教えてくれると思うので)
また、現時点では問題なく動作している上、あとからWSL1に戻すこともできるので安心してください。

以下、
公式ページ(:WSL 2 のインストール手順)をもとに進めます。

要求される環境

  1. Windows 10 ビルド 18917 以降であること
  2. Windows Insider Programに入っていること

1. Windows 10 ビルド 18917 以降であること

Windowsビルド 確認

コマンドプロンプト、またはwindowsの設定から確認できます
ただし、Windowsの最新バージョン(Windows 1903以降?)からはWindows アップデートが自動で行われていないようなのでほとんどの人はビルドの更新が必要になる可能性が高いです

コマンドプロンプトから確認

  1. コマンドプロンプトを開く
  2. varコマンドを実行
  3. 出てきたバージョンが18917以上ならOK!

Windowsの設定から確認

  1. 設定⇒システム⇒バージョン情報 を開く
  2. OSビルドが18917以上であるならOK!図1.png

Windowsビルド の更新

WindowsのOSビルドが18917以下である場合、ビルドの更新が必要です

  1. Windowsの設定⇒更新とセキュリティ⇒Windows Updateを開く
  2. オプションの更新プログラムがあります。 windows10 バージョン190xの機能更新プログラム とあればいますぐダウンロードしてインストールをクリック
  3. インストール後再起動

の手順で完了します。

このとき、Windows Updateがたまっている状態(久しぶりにアップデートするときなど)では上記の オプションの更新プログラムがあります。 windows10 バージョン190xの機能更新プログラム が出てこない場合があるようです。
先にWindows Updateを片付けておいてください。

それでもうまくいかない場合は下記ページが参考になるのではと思います。
最新のWindows 10 November 2019 Updateを手動でインストールする

2. Windows Insider Programに入っていること

このページを訪れる人はほとんど入っていなと考えられます
以下の手順を行ってください

  1. Windowsの設定⇒更新とセキュリティ⇒Windows Insider Programを開く
  2. 開始する(Get start)をクリック
  3. 出てくる文章に同意し、Windowsアカウントを紐づける
  4. Insiderの設定でスロー(推奨)をクリック
  5. 再起動をクリック

WSL2の導入

手順1. 仮想マシンプラットフォームWSL が有効であることを確認

Powershellを管理者として開く

開き方 1. `windowsボタン` + `xキー`を押す 2. 下記ボタンをクリック ![2020-04-12 (23).jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/521871/51f941fd-133a-7c59-46ff-7b850e065c7d.jpeg)

Powershellで以下のコマンドを実行

Powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

設定を反映するためにWindowsを再起動してください

手順2. ディストリビューションのインストール

すでに何らかのディストリビューションをインストールしてある方は飛ばして結構です。

WSLに対応したディストリビューションをインストールします。
こちらを参考に好きなディストリビューションをインストールしてください。
よくわからなければ、とりあえずUbuntuを選んでください
インストールが終わったら、設定に入る前に本記事に戻って次の手順を進めてください

手順3. ディストリビューションのバージョンをWSL2に変更する

再びPowershellを管理者として起動します
wsl -lを実行し、ディストリビューションの名前を確認してください

私の場合
> wsl -l
Linux  Windows サブシステム ディストリビューション:
Ubuntu (既定) # ここにディストリビューションの名前が表示される

次に、ディストリビューションをWSL2によってサポートされているものに変更します
wsl --set-version <Distro> 2 を、"<Distro>"の部分に先ほど確認したディストリビューションの名前を入れて実行してください

私の場合
> wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
変換が完了しました。

うまくいった人はそのまま手順4.へ進んでください

カーネルコンポーネントの更新が必要

手順3.実行時、以下の出力が表示される場合があります

カーネルコンポーネントの更新が必要
> wsl --set-version Ubuntu 2
変換中です。この処理には数分かかることがあります...
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください

ここで表示されているhttps://aka.ms/wsl2kernelに飛びます(こちら

以下のこのリンクをクリックするとwsl_update_x64.msiがダウンロードされるので実行します
キャプチャ3.PNG

うまくwizardが終了したら、finishをクリックし手順4.

wsl_update_x64.msi実行時のエラー

wsl_update_x64.msi(Windows Subsystem for Linux Update Setup Wizard) 実行時にThis update only applies to machines with the Windows Subsytem for Linuxと表示され、先に進まない場合があります
wslmsi.png

この解決法がこちらのページに書いてあったので紹介します(私もこれでうまくいきました)

上記ページには

Also it seems some people have problems with the installer extracting the kernel.
You can always extract it manually with:
msiexec /a "wsl_update_x64.msi" /qb TARGETDIR="C:\temp"
and then copy the kernel file from C:\temp to C:\Windows\System32\lxss\tools

と書いてありました。

要約すると
wsl_update_x64.msiC:\Windows\System32\lxss\toolsにコピーしてそこで実行しろ
ということですね

以下のようにダウンロードしたwsl_update_x64.msiC:\Windows\System32\lxss\toolsにコピーしてください

  1. wsl_update_x64.msiをコピー
    image

  2. C:\Windows\System32\lxss\toolsに貼り付け(管理者権限を要求されるので従ってください)
    3.png

  3. wsl_update_x64.msiを実行

  4. 終了

手順4. WSL 2 を既定のアーキテクチャにする

Powershellで以下のコマンドを実行してください

wsl --set-default-version 2

手順5. WSL のバージョンを確認して終了

Powershellでwsl --list --verbose または wsl -l -vと実行するとWSLのバージョンが表示されます

私の場合
> wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Stopped         2

これで全行程終了です

WSL1に戻す

もしなんらかの事情でWSL1に戻したくなった場合、手順3. と手順4. を2から1に変えて行うだけで変更できます
具体的には、以下のコマンドを実行

> wsl --set-version <Distro> 2 # <Distro>はディストリビューションの名前
> wsl --set-default-version 2

おわりに

まだ全然触ってないので違いはあまりわかりませんが、多少動きが早くなったのかな...?

参考

記事内のリンクを参考に加え、以下を参考にしました
完全なLinuxがWindows 10上で稼働する?「WSL 2」とは

63
64
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
63
64

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?