🐧

WSL 2: GitHub からパッケージをダウンロードして WSL をセットアップする方法

2025/03/08に公開

はじめに

atsushifx です。
WSL 2環境のセットアップ中に、ENOENTエラーが発生しました。
このエラーは、「ファイルまたはディレクトリが見つからない」ことを示し、その結果、wslコマンドが実行できませんでした。
機能を無効化してから再度有効化しましたが、改善しませんでした。
最終的に、Microsoft のGitHubリポジトリからWSLをダウンロードして手動でセットアップしました。

この記事では、WSLのセットアップ中に発生したENOENTエラーを手動で解決する方法を解説します。

用語集

  • WSL (Windows Subsystem for Linux):
    Windows上で Linuxバイナリを直接実行できる互換レイヤー

  • GitHub:
    バージョン管理やイシュー管理が可能なソフトウェア開発プラットフォーム

  • dism.exe:
    Windows のイメージ管理・修復ツール

  • shutdown /r /t 0:
    設定変更の最後に使用される、PC を即時再起動するコマンド

  • ENOENT:
    "No such file or directory"を意味する、システムエラーコード

1. 前提条件

WSL 2を利用するには、Windows 10 (バージョン 2004以降) または Windows 11 が必要です。
PC のBIOS設定で仮想化支援機能 (Intel VT-x または AMD-V) を有効にし、Windows の「仮想マシン プラットフォーム」機能を有効化する必要があります。

2. WSLとは

WSL (Windows Subsystem for Linux) は、Windows上で Linuxバイナリを直接実行できる互換レイヤーです。
これにより、Linuxディストリビューションを Windows上でネイティブに動作させることができます。

3. WSL1WSL2の主な違い

WSL 1WSL 2の主な違いを紹介します。

  • WSL 1:
    Linuxシステムコールを Windowsカーネルに変換する互換レイヤーとして動作し、起動が高速だが、互換性に一部制限がある。

  • WSL 2:
    軽量な仮想マシンを利用して、Microsoft がカスタマイズした Linuxカーネルを実行することで、高い互換性とパフォーマンスを実現する。

4. WSL環境のセットアップ

エラーが発生した際のWSL環境のセットアップ手順を説明します。

4.1 WSL、仮想化機能の有効化手順

管理者権限のターミナルで、WSLおよび仮想化機能を有効化します。
以下の手順で、有効化を実行します。

  1. 管理者権限でターミナルを開く:

    • スタートメニューを右クリックし、[ターミナル(管理者)]を選択する。

    • 管理者権限でターミナルが起動する。
      管理者ターミナル
      管理者ターミナルの起動手順

  2. 機能の無効化:

    • dismコマンドを使用して、仮想マシン プラットフォームWSLを無効化する。

      # 仮想マシン プラットフォームを無効化する
      dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
      # Hyper-Vを無効化する
      dism.exe /online /disable-feature /featurename:Microsoft-Hyper-V-All /norestart
      # WSL を無効化する
      dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
      
  3. PC の再起動:

    • shutdownコマンドで、PC を再起動する。

      # PC の即時再起動
      shutdown /r /t 0
      
  4. 再度、管理者ターミナルを起動:
     - スタートメニューを右クリックし、[ターミナル(管理者)]を選択する。

  5. 機能の有効化:

    • dismコマンドで、機能を有効化する。

      # 仮想マシン プラットフォームを有効化する
      dism.exe /online /enable-feature /all /featurename:VirtualMachinePlatform /norestart
      # Hyper-Vを有効化する
      dism.exe /online /enable-feature /all /featurename:Microsoft-Hyper-V-All /norestart
      # WSL を有効化する
      dism.exe /online /enable-feature /all /featurename:Microsoft-Windows-Subsystem-Linux /norestart
      

      機能の有効化
      機能の有効化

  6. PC の再起動:

    • shutdownコマンドで、PC を再起動する。

      # PC の即時再起動
      shutdown /r /t 0
      

以上で、仮想化機能の有効化は完了です。

4.2 手動でのWSLのインストール

GitHubから最新のWSLインストーラーをダウンロードし、インストールする手順を説明します。
次の手順を実行します。

  1. GitHubから最新のWSLインストーラーをダウンロード:

    • WSLのリリースページ にアクセスする。

      WSL release

    • 最新のWSLインストーラー (wsl.2.xx.arch.msi) を、Windows のアーキテクチャ (x64 または arm64) に応じてダウンロードする。

  2. WSLのインストール:

    • WSLインストーラーを実行して、インストールする。

      インストール
  3. WSLの確認:

    • wsl --versionを実行する。

      wsl --version
      
    • wsl --versionの出力を確認する。
      出力例

      WSL バージョン: 2.4.11.0
      カーネル バージョン: 5.15.167.4-1
      WSLg バージョン: 1.0.65
      MSRDC バージョン: 1.2.5716
      Direct3D バージョン: 1.611.1-81528511
      DXCore バージョン: 10.0.26100.1-240331-1435.ge-release
      Windows バージョン: 10.0.26100.3194
      

上記のように、バージョンが表示されれば、WSLのインストールは完了です。

4.3 WSLの動作確認

WSLが正常に動作しているかを、Linuxディストリビューションをインストールして確認します。
以下の手順で、WSLが正常に動作するか確認します。

  1. 規定バージョンの設定:
    wsl --set-default-versionコマンドで、WSL 2を設定します。

    wsl --set-default-version 2
    
    WSL 2 との主な違いについては、https://aka.ms/wsl2
     を参照してください
    この操作を正しく終了しました。
    
  2. wslコマンドの実行:
    wsl --installを実行し、既定のディストリビューション (Ubuntu) をインストールします。

     wsl --install
    
    ダウンロード中: Ubuntu
    [==============            24.7%                           ]
    
    インストール中: Ubuntu
    [==============            24.7%                           ]
    
    ディストリビューションが正常にインストールされました。'wsl.exe -d Ubuntu' を使用して起動できます
    
  3. ディストリビューションの削除:
    wslが正常に動作したので、インストールしたディストリビューションを削除します。

    wsl --unregister Ubuntu
    
    登録解除。
    この操作を正しく終了しました。
    

以上で WSL のセットアップは完了です。

5. トラブルシューティング

Windows にWSL環境をセットアップする際に発生したトラブルとその対処法を掲載します。

5.1 代表的なトラブルと対処法

[WSL-001]: wslが実行できない

トラブル: ENOENT、その他のエラーメッセージが出力され、wslコマンドが実行できない。

  • 原因:
    WSLのシステム設定が無効になっている、または必要なシステムファイルが破損している可能性があります。
    Windows Updateによる設定変更や、不完全な再インストールが原因となることがあります。

  • 対処法:
    WSLを手動でダウンロードしてインストールすることで問題を解決できます。
    以下の手順で、機能を一度無効化してから再度有効化し、WSLを手動でインストールします。

    1. 機能の無効化:

      • 機能を無効化する。

        # WSL を無効化する
        dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
        # 仮想マシン プラットフォームを無効化する
        dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
        # Hyper-V を無効化する
        dism.exe /online /disable-feature /featurename:Microsoft-Hyper-V-All /norestart
        
      • PC を再起動する。

        shutdown /r /t 0
        
    2. 機能の有効化:

      • 機能を有効化する。

        # 仮想マシン プラットフォームを有効化する
        dism.exe /online /enable-feature /all /featurename:VirtualMachinePlatform /norestart
        # Hyper-V を有効化する
        dism.exe /online /enable-feature /all /featurename:Microsoft-Hyper-V-All /norestart
        # WSL を 有効化する
        dism.exe /online /enable-feature /all /featurename:Microsoft-Windows-Subsystem-Linux /norestart
        
      • PC を再起動する。

        shutdown /r /t 0
        
    3. WSLのインストール:

      • WSLをダウンロードする:
        Microsoft のWSLリリースページ から最新のWSLインストーラーをダウンロードします。

      • WSLをインストールする。
          ダウンロードしたWSLインストーラーを実行し、WSLをインストールします。

以上で、WSLがセットアップできます。

[FEAT-001]: 機能が有効化できない

トラブル: WSLなどの機能が有効化できない。

  • 原因:
    機能に関連するファイルが壊れている、中途半端に残っている。

  • 対処法:
    機能を完全に無効化し、再度、有効にする。
    次の手順で、機能を完全に無効化し、再度有効にする。

    1. 機能の無効化:

      • 機能を無効化する。

        # WSL を無効化する
        dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux /norestart
        # 仮想マシン プラットフォームを無効化する
        dism.exe /online /disable-feature /featurename:VirtualMachinePlatform /norestart
        # Hyper-V を無効化する
        dism.exe /online /disable-feature /featurename:Microsoft-Hyper-V-All /norestart
        
      • PC を再起動する。

        shutdown /r /t 0
        
    2. ファイル、イメージの修復:

      • システムファイル、イメージを修復する。

        sfc /scannow
        dism /Online /Cleanup-Image /RestoreHealth
        
      • PC を再起動する。

        shutdown /r /t 0
        
    3. 機能の有効化:

      • 機能を有効化する。

        # WSL を有効化する
        dism.exe /online /enable-feature /all /featurename:Microsoft-Windows-Subsystem-Linux /norestart
        # 仮想マシン プラットフォームを有効化する
        dism.exe /online /enable-feature /all /featurename:VirtualMachinePlatform /norestart
        # Hyper-V を有効化する
        dism.exe /online /enable-feature /all /featurename:Microsoft-Hyper-V-All /norestart
        
      • PC を再起動する。

        shutdown /r /t 0
        

おわりに

この記事では、WSL環境のセットアップ中に発生する可能性のあるエラーに対処するための手順を解説しました。
GitHubからWSLをダウンロードしてセットアップすることで、最新のWSLをインストールし、使用できます。

WSL を活用することで Windows上で Linux環境を構築できるため、開発やテストなど幅広い用途に活用できます。
ネイティブな Linux環境が必要な開発者にとって、デュアルブートや仮想マシンなしで Linux環境を利用できるのが大きなメリットです。
また、Docker との統合や、Linux 向けの開発ツールの利用も容易になり、開発効率が向上します。

これを機にWSLを導入し、より快適な開発環境を構築してみてください。

それでは、Happy Hacking!

参考資料

Webサイト

GitHubで編集を提案

Discussion