概要
いつもMacの僕がWindows買ってシェルって何?Ubuntu聞いたことある程度のレベルからWSL2というものを知って、導入したい!!!と思ったけど、少しはまってしまったのでその内容を。
普通にすればLinux カーネル更新プログラム パッケージをインストールして、「管理者として実行」でPowerShell立ち上げて下記コマンドを舐めればすんなりいけるはず。。。
# "Linux 用 Windows サブシステム" オプション機能を有効に
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
# "仮想マシン プラットフォーム" オプション機能を有効に
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
# =========
# PC再起動
# =========
# 現在のバージョン確認
> wsl -l -v
NAME STATE VERSION
Ubuntu Stopped 1
* Ubuntu-18.04 Stopped 1
# WSL2セット
> wsl --set-default-version 2 Ubuntu-18.04
# セット後のバージョン確認
> wsl -l -v
NAME STATE VERSION
Ubuntu Stopped 1
* Ubuntu-18.04 Stopped 2
ハマったところ
ゼロからの僕にはwsl -l -v
なんてそんなもんはないんだよなぁ。。。
> wsl -l -v
==========
Copyright (c) Microsoft Corporation. All rights reserved.
使用法: wsl.exe [引数] [オプション...] [コマンド ライン]
Linux バイナリを実行するための引数:
コマンド ラインを指定しないと、wsl.exe は既定のシェルを起動します。
--exec, -e <コマンド ライン>
指定したコマンドを、既定の Linux シェルを使用しないで実行します。
--
残りのコマンド ラインをそのまま渡します。
オプション:
--distribution, -d <ディストリビューション>
指定したディストリビューションを実行します。
--user, -u <ユーザー名>
指定したユーザーとして実行します。
Linux 用 Windows サブシステムを管理するための引数:
--export <ディストリビューション> <ファイル名>
ディストリビューションを tar ファイルにエクスポートします。
標準出力の場合は、ファイル名を - とすることができます。
--import <ディストリビューション> <インストール場所> <ファイル名> [オプション]
指定した tar ファイルを新しいディストリビューションとしてインポートします。
標準入力の場合は、ファイル名を - とすることができます。
オプション:
--version <バージョン>
新しいディストリビューションに使用するバージョンを指定します。
--list, -l [オプション]
ディストリビューションの一覧を表示します。
オプション:
--all
現在インストール中またはアンインストール中のものを含めて
すべてのディストリビューションを一覧表示します。
--running
現在実行中のディストリビューションのみを一覧表示します。
--quiet, -q
ディストリビューション名のみを表示します。
--verbose, -v
すべてのディストリビューションについての詳細情報を表示します。
--set-default, -s <ディストリビューション>
ディストリビューションを既定として設定します。
--set-default-version <バージョン>
新しいディストリビューションの既定のインストール バージョンを変更します。
--set-version <ディストリビューション> <バージョン>
指定したディストリビューションのバージョンを変更します。
--shutdown
実行中のすべてのディストリビューションと WSL 2 ライトウェイト ユーティリティ仮想マシンを直ちに終了します。
--terminate, -t <ディストリビューション>
指定したディストリビューションを終了します。
--unregister <ディストリビューション>
ディストリビューションの登録を解除します。
--help
使用法を表示します。
とりあえず自分に合わない記事見るよりも公式見よう。結局これ見れば誰でもできる。
読んでみてわかったことだけど、ゼロからの僕はUbuntuもないし、そもそもWindowsUpdateもしていなかった。なのでエラー出て当然。ということでWindowsを最新に。
Windows Update
WSL 2 に更新するには、次の条件を満たす必要があります。
「バージョン 2004、ビルド 19041 以上に更新された Windows 10 を実行している。」
どうやらこれが条件らしい
その前に、バージョン2004に更新するための条件もある
現時点では、Windows 10、バージョン 2004 (ビルド 19041) に更新するには、Windows Insider プログラムに参加し、[リリース プレビュー] リングを選択する必要があります。
右下の入力欄から「WindowsUpdateの設定」を検索して設定画面を開くいて、左サイドバーから「Windows Insider Program」を選択してポチポチ進めていく。
ここらへんもいじったかも。頑張ってくれ。
うまくいったら次はWindows Update。次のように2004にUpdateされていればOK
Linuxディストリビューションをインストール
ぜろからの僕はUbuntuとか入ってないので手に入れないといけない。
よくわからなかったので欲張りな僕はUbuntuとUbuntu-18.04とUbuntu20.04をいれた。1つでいいはず。
MS storeからインストールする
WSL2に更新
「管理者として実行」でPowerShell立ち上げてからコマンド実行するように
"Linux 用 Windows サブシステム" オプション機能を有効に
下記コマンドを実行
> dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
"仮想マシン プラットフォーム" オプション機能を有効に
下記コマンドを実行
> dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
ここでPC再起動必要
現在のバージョン確認
宿敵wsl -l -v
実行
> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 1
Ubuntu Stopped 1
Ubuntu-18.04 Stopped 1
ここで勝利を確信。勝ちました。
WSL2セット
そのままセットしようとすると次のようにカーネルコンポーネントの更新を促されるので言われたとおりに更新する
> wsl --set-version Ubuntu-20.04 2
変換中です。この処理には数分かかることがあります...
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
「Linux カーネル更新プログラム パッケージ」をダウンロードしてインストールしてもう一度実行
> wsl --set-version Ubuntu-20.04 2
変換中です。この処理には数分かかることがあります...
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください
...数分後
変換が完了しました。
セット後のバージョン確認
> wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Stopped 2
Ubuntu Stopped 1
Ubuntu-18.04 Stopped 1
完了!!(これでいいんだよね...??)