7
3

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導入してみたらハマった

Posted at

概要

いつも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」を選択してポチポチ進めていく。

1.PNG

ここらへんもいじったかも。頑張ってくれ。
うまくいったら次はWindows Update。次のように2004にUpdateされていればOK

122.png

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

完了!!(これでいいんだよね...??)

7
3
0

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
7
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?