次の方法で共有


WSL で使用する Linux ディストリビューションをインポートする

Windows Subsystem for Linux (WSL) 内の Linux ディストリビューションは、 Microsoft Store で使用できない場合でも、tar ファイルでインポートすることで使用できます。

この記事では、Docker コンテナーを使用して tar ファイルを取得して、WSL で使用する Linux ディストリビューション CentOS をインポートする方法について説明します。 このプロセスは、任意の Linux ディストリビューションをインポートするために適用できます。

ディストリビューションの tar ファイルを取得する

まず、ディストリビューションのすべての Linux バイナリを含む tar ファイルを取得する必要があります。

tar ファイルはさまざまな方法で取得できます。そのうちの 2 つを次に示します。

  • 提供された tar ファイルをダウンロードします。 Alpine の例については、Alpine Linux ダウンロード サイトの 「Mini Root Filesystem」セクションを参照してください。
  • Linux ディストリビューション コンテナーを見つけて、インスタンスを tar ファイルとしてエクスポートします。 次の例は、 CentOS コンテナーを使用したこのプロセスを示しています。

CentOS の tar ファイルの取得の例

この例では、WSL ディストリビューション内の Docker を使用して CentOS の tar ファイルを取得します。

[前提条件]

コンテナーから tar をエクスポートする

  1. Microsoft Store (この例では Ubuntu) から既にインストールされている Linux ディストリビューションのコマンド ライン (Bash) を開きます。

  2. Docker Desktop が実行されていることを確認します (または、WSL ディストリビューションに Docker がインストールされている場合は、 sudo service docker start でサービスを開始します)

  3. Docker 内で CentOS コンテナーを実行します。

    docker run -t --name wsl_export centos ls /
    
  4. マウントされた c ドライブ上の tar ファイルにコンテナー ID をエクスポートします。

    docker export wsl_export > /mnt/c/temp/centos.tar
    
  5. コンテナーをクリーンアップする

    docker rm wsl_export
    

上記のコマンドの実行例

このプロセスにより、CentOS tar ファイルが Docker コンテナーからエクスポートされるため、WSL でローカルに使用するためにインポートできます。

tar ファイルを WSL にインポートする

tar ファイルの準備ができたら、次のコマンドを使用してインポートできます: wsl --import <Distro> <InstallLocation> <FileName>

CentOS のインポートの例

CentOS 配布 tar ファイルを WSL にインポートするには:

  1. PowerShell を開き、ディストリビューションを保存するフォルダーが作成されていることを確認します。

    cd C:\temp
    mkdir E:\wslDistroStorage\CentOS
    
  2. コマンド wsl --import <DistroName> <InstallLocation> <InstallTarFile> を使用して tar ファイルをインポートします。

    wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
    
  3. コマンド wsl -l -v を使用して、インストールしたディストリビューションを確認します。

    WSL で実行されている上記のコマンドの例

  4. 最後に、コマンド wsl -d CentOS を使用して、新しくインポートした CentOS Linux ディストリビューションを実行します。

既定のユーザーなどの WSL 固有のコンポーネントを追加する

--import を使用する場合、既定では常にルート ユーザーとして開始されます。 独自のユーザー アカウントを設定できますが、設定プロセスは、各 Linux ディストリビューションによって若干異なる点に注意してください。

インポートした CentOS ディストリビューションでユーザー アカウントを設定するには、最初に PowerShell を開き、次のコマンドを使用して CentOS を起動します。

wsl -d CentOS

次に、CentOS コマンド ラインを開きます。 このコマンドを使用して、sudo とパスワード設定ツールを CentOS にインストールし、ユーザー アカウントを作成し、既定のユーザーとして設定します。 この例では、ユーザー名は "caloewen" になります。

ユーザーが sudo を使用できるように、sudoers ファイルにユーザー名を追加する必要があります。 コマンド adduser -G wheel $myUsername は、ユーザー myUsername をホイール グループに追加します。 wheel グループ内のユーザーには sudo 権限が自動的に付与され、管理者特権を必要とするタスクを実行できます。

yum update -y && yum install passwd sudo -y
myUsername=caloewen
adduser -G wheel $myUsername
echo -e "[user]\ndefault=$myUsername" >> /etc/wsl.conf
passwd $myUsername

ここで、そのインスタンスから終了し、すべての WSL インスタンスが終了していることを確認する必要があります。 PowerShell で次のコマンドを実行して、ディストリビューションをもう一度開始して、新しい既定のユーザーを表示します。

wsl --terminate CentOS
wsl -d CentOS

これで、この例に基づく出力として [caloewen@loewen-dev]$ が表示されます。

WSL で実行されている上記のコードの例

WSL 設定の構成の詳細については、「 .wslconfig と wsl.conf を使用した設定の構成」を参照してください。

カスタム Linux ディストリビューションを使用する

Microsoft Store で使用できる WSL ディストリビューションとまったく同じように動作する、UWP アプリとしてパッケージ化された独自のカスタマイズされた Linux ディストリビューションを作成できます。 方法については、「 WSL 用のカスタム Linux ディストリビューションの作成」を参照してください。