関連記事:やさしい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実行時のエラーに記載
はじめに
だらだらとはじめに
自分の使っている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 のインストール手順)をもとに進めます。
要求される環境
- Windows 10 ビルド 18917 以降であること
- Windows Insider Programに入っていること
1. Windows 10 ビルド 18917 以降であること
Windowsビルド 確認
コマンドプロンプト、またはwindowsの設定から確認できます
ただし、Windowsの最新バージョン(Windows 1903以降?)からはWindows アップデートが自動で行われていないようなのでほとんどの人はビルドの更新が必要になる可能性が高いです
コマンドプロンプトから確認
- コマンドプロンプトを開く
-
var
コマンドを実行 - 出てきたバージョンが18917以上ならOK!
Windowsの設定から確認
Windowsビルド の更新
WindowsのOSビルドが18917以下である場合、ビルドの更新が必要です
- Windowsの設定⇒更新とセキュリティ⇒Windows Updateを開く
-
オプションの更新プログラムがあります。 windows10 バージョン190xの機能更新プログラム
とあればいますぐダウンロードしてインストール
をクリック - インストール後再起動
の手順で完了します。
このとき、Windows Updateがたまっている状態(久しぶりにアップデートするときなど)では上記の オプションの更新プログラムがあります。 windows10 バージョン190xの機能更新プログラム
が出てこない場合があるようです。
先にWindows Updateを片付けておいてください。
それでもうまくいかない場合は下記ページが参考になるのではと思います。
最新のWindows 10 November 2019 Updateを手動でインストールする
2. Windows Insider Programに入っていること
このページを訪れる人はほとんど入っていなと考えられます
以下の手順を行ってください
- Windowsの設定⇒更新とセキュリティ⇒Windows Insider Programを開く
- 開始する(Get start)をクリック
- 出てくる文章に同意し、Windowsアカウントを紐づける
- Insiderの設定で
スロー(推奨)
をクリック - 再起動をクリック
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で以下のコマンドを実行
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
がダウンロードされるので実行します
うまく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
と表示され、先に進まない場合があります
この解決法がこちらのページに書いてあったので紹介します(私もこれでうまくいきました)
上記ページには
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.msi
をC:\Windows\System32\lxss\tools
にコピーしてそこで実行しろ
ということですね
以下のようにダウンロードしたwsl_update_x64.msi
をC:\Windows\System32\lxss\tools
にコピーしてください
-
wsl_update_x64.msiを実行
-
終了
手順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」とは