Windows10のWSL2を使う

今回は、素の Windows 10 20H2 に WSL2 を設定して、Ubuntu 環境を構築していきます。

目次

概要

WSL2 がリリースされたのは最近ですが、前身の WSL が実装されたのはだいぶ前になります。

WSL(Windows Subsystem for Linux)は、Linux ファイルを Windows 上でネイティブ実行するための互換レイヤーです。

※以降、WSLは WSL1 と略記します。

しばらく静観していたのですが、去年 WSL2(Windows Subsystem for Linux 2) がリリースされました。

WSL2 の最大のメリットは(WSL1 と異なり)仮想マシンを使った「本物の Linux 環境が提供される」ということです。

この WSL2 を使っていきたいと思います。

  • WSL1
    Windows 10 1709
  • WSL2
    Windows 10 20H1 (2004)

WSL2 は Hyper-V の仮想ディスク上で実行され、標準のファイルシステムは ext4 になります。

WSL2 のメリット

WSL2 は、専用の仮想マシン環境「Light Weight utility Virtual Machine」(軽量ユーティリティーVM)で実行されます。

そのため、Hyper-V と比較すると起動が早く、数秒で起動します。
また、(Hyper-V などのように)管理ツールなどはなく、スタートメニューから直に起動できるため、非常にスピーディに作業開始できます。

また、リセット機能があり、簡単に初期状態に戻すことが出来ます。 ※私の場合、10秒ほどでリセット完了しました。

WSL2 のデメリット

管理ツールが無いので、スナップショットなどの便利機能もありません。

WSL2 を使う

まず、WSL2 を有効化します。

ちなみに、有効化手順を飛ばして PowerShell からアクセスすると「そんなコマンドは無い」と怒られます。

PS C:\Windows\System32> wsl
wsl: The term 'wsl' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

有効化

WSL2 は初期状態で無効化されているため、有効化する必要があります。

以下、Windows 10 20H2 へアップデート直後の PC で作業しています。

  • Win + R キーで "ファイル名を指定して実行" を開き optionalfeatures(optionalfeatures.exe でも可)と入力して実行します
  • "Windows の機能の有効化または無効化" 画面が開きます
  • 一覧から、『Linux用Windowsサブシステム』と『仮想マシン プラットフォーム』にチェックを入れOKをクリックします
    Windows の機能の有効化または無効化
  • 再起動
    インストールが終了すると再起動を促すメッセージが表示されるので "今すぐ再起動" を押下します。
    ※(ちょっと古めの Core-i7 + SSD 構成で)再起動には、3分ほどかかりました。

PowerShell の初期設定

設定は PowerShell から行うのですが、私の時はスタートメニューから PowerShell を開くと、早速 new version の案内がされました。
案内どおりにインストールします。

Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

メッセージにある URL https://aka.ms/ を開くと、Microsoft のページにリダイレクトされます。

https://aka.ms/pscore6

PowerShell のインストール - PowerShell | Microsoft Docs
2021/04/02
PowerShell は GitHub のオープン ソース プロジェクトです。

GitHub - PowerShell/PowerShell: PowerShell for every system!

Windows への PowerShell のインストール

Microsoft Store からインストールする
PowerShell を入手 - Microsoft Store ja-JP

Linux への PowerShell のインストール
macOS への PowerShell のインストール
ARM への PowerShell のインストール

現在の PowerShell はマルチプラットフォームなんですね。時代を感じます。
また、GitHub と Microsoft Store のどちらからでもインストール可能です。

私は、GitHub から「Windows (x64)・Download (LTS)」版をダウンロードしてインストールしました。

導入直後の PowerShell 画像を貼付します。紺色が旧版・黒色が新版で、パッと見だと DOSプロンプトと区別がつきません...。
新旧PowerShell

WSL2 の初期設定

装いも新たになった PowerShell で、WSL2 を既定にセットします。
※WSL1 と WSL2 は共存可能なため、間違いが無いように WSL2 を既定に設定します。

既定化

設定には、set-default オプションを使います。

しかし、またもや new version があるよの表示が・・・。

PS C:\Windows\System32> wsl --set-default-version 2
WSL 2 を実行するには、カーネル コンポーネントの更新が必要です。詳細については https://aka.ms/wsl2kernel を参照してください
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

メッセージ内の URL からダウンロードして、インストールします。

Windows 10 に WSL をインストールする | Microsoft Docs
2021/04/07
手順 4 - Linux カーネル更新プログラム パッケージをダウンロードする
x64 マシン用 WSL2 Linux カーネル更新プログラム パッケージ

インストール自体は、特に難しいこともなく終了しました。
これは、再起動不要です。

再度、set-default すると、今度は通りました。

PS C:\Windows\System32> wsl --set-default-version 2
WSL 2 との主な違いについては、https://aka.ms/wsl2 を参照してください

Ubuntu を入れる

WSL2 の設定が終わったところで、Ubuntu を入れていきます。

以下、Ubuntu の導入手順です。

  1. Microsoft Store から Ubuntu で検索すると、カノニカル謹製の Ubuntu が出てきます。

  2. 入手 ボタンをクリックするだけで、ダウンロードが始まります。

  3. ダウンロードが完了すると、先程まで 入手 と表示されていたボタン部分が 起動 に変わります。

  4. この 起動 ボタンをクリックすると、Ubuntu ターミナルが起動します。

  5. 新たに開いた Ubuntu ターミナル画面で、アカウント名とパスワードの入力を促されます。
    (ここらへんは、シングルボードコンピュータ用 OS ではお馴染みのパターンですね)。

    Enter new UNIX username:
    New password:
  6. アカウント名とパスワードを入力して Ubuntu の新しいアカウントを作成します。

    Installing, this may take a few minutes...
    Please create a default UNIX user account. The username does not need to match your Windows username.
    For more information visit: https://aka.ms/wslusers
    Enter new UNIX username: ***
    New password:
    Retype new password:
    passwd: password updated successfully
    Installation successful!
    To run a command as administrator (user "root"), use "sudo <command>".
    See "man sudo_root" for details.
    
    Welcome to Ubuntu 20.04.2 LTS (GNU/Linux 5.4.72-microsoft-standard-WSL2 x86_64)
    
     * Documentation:  https://help.ubuntu.com
     * Management:     https://landscape.canonical.com
     * Support:        https://ubuntu.com/advantage
    
      System information as of Sat Apr 24 10:36:51 JST 2021
    
      System load:  0.0                Processes:             8
      Usage of /:   0.4% of 250.98GB   Users logged in:       0
      Memory usage: 1%                 IPv4 address for eth0: 172.23.131.172
      Swap usage:   0%
    
    1 update can be installed immediately.
    0 of these updates are security updates.
    To see these additional updates run: apt list --upgradable
    
    The list of available updates is more than a week old.
    To check for new updates run: sudo apt update
    
    This message is shown once a day. To disable it please create the
    /home/***/.hushlogin file.
  7. 無事にアカウント作成が終わったら、環境を確認しておきます。

    $ cat /etc/ec2_version
    Ubuntu 20.04.2 LTS (Focal Fossa)
    
    $ lsb_release -a
    No LSB modules are available.
    Distributor ID: Ubuntu
    Description:    Ubuntu 20.04.2 LTS
    Release:        20.04
    Codename:       focal
  8. UPDATE
    問題なければ、最新版にアップデートしておきましょう。

    $ sudo apt update -y && sudo apt dist-upgrade -y