WSL で使用する Linux ディストリビューションをインポートするImport any Linux distribution to use with WSL

Windows Subsystem for Linux (WSL) 内の任意の Linux ディストリビューションを使用できます。これは、 Microsoft Storeで使用できない場合でも、tar ファイルを使用してインポートします。You can use any Linux distribution inside of the Windows Subsystem for Linux (WSL), even if it is not available in the Microsoft Store, by importing it with a tar file.

この記事では、Docker コンテナーを使用して tar ファイルを取得することにより、WSL で使用するために Linux ディストリビューション Centosをインポートする方法について説明します。This article shows how to import the Linux distribution, CentOS, for use with WSL by obtaining its tar file using a Docker container. このプロセスは、Linux ディストリビューションをインポートするために適用できます。This process can be applied to import any Linux distribution.

配布用の tar ファイルを取得するObtain a tar file for the distribution

まず、ディストリビューションのすべての Linux バイナリを含む tar ファイルを取得する必要があります。First you'll need to obtain a tar file that contains all the Linux binaries for the distribution.

Tar ファイルはさまざまな方法で取得できます。次の2つがあります。You can obtain a tar file in a variety of ways, two of which include:

  • 提供された tar ファイルをダウンロードします。Download a provided tar file. Alpine の例については、 Alpine Linux ダウンロード サイトの「ミニルートファイルシステム」セクションを参照してください。You can find an example for Alpine in the "Mini Root Filesystem" section of the Alpine Linux downloads site.
  • Linux ディストリビューションコンテナーを検索し、インスタンスを tar ファイルとしてエクスポートします。Find a Linux distribution container and export an instance as a tar file. 次の例では、 Centos コンテナーを使用してこのプロセスを示します。The example below will show this process using the CentOS container.

CentOS サンプル用の tar ファイルの取得Obtaining a tar file for CentOS example

この例では、WSL ディストリビューション内で Docker を使用して、CentOS の tar ファイルを取得します。In this example, we'll use Docker inside of a WSL distribution to obtain the tar file for CentOS.

前提条件Prerequisites

コンテナーからの tar のエクスポートExport the tar from a container

  1. Microsoft Store (この例では Ubuntu) から既にインストールされている Linux ディストリビューションのコマンドライン (Bash) を開きます。Open the command line (Bash) for a Linux distribution that you've already installed from the Microsoft Store (Ubuntu in this example).

  2. Docker サービスを開始します。Start the Docker service:

sudo service docker start
  1. Docker 内で CentOS コンテナーを実行します。Run the CentOS container inside Docker:
docker run -t centos bash ls /
  1. Grep と awk を使用して CentOS コンテナー ID を取得します。Grab the CentOS container ID using grep and awk:
dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
  1. マウントされた c ドライブ上の tar ファイルにコンテナー ID をエクスポートします。Export the container ID to a tar file on your mounted c-drive:
docker export $dockerContainerID > /mnt/c/temp/centos.tar

上記のコマンドの実行例

このプロセスでは、WSL でローカルに使用するためにインポートできるように、Docker コンテナーから CentOS tar ファイルをエクスポートします。This process exports the CentOS tar file from the Docker container so that we can now import it for use locally with WSL.

WSL に tar ファイルをインポートするImport the tar file into WSL

Tar ファイルを準備したら、コマンドを使用してインポート wsl --import <Distro> <InstallLocation> <FileName> できます。Once you have a tar file ready, you can import it using the command: wsl --import <Distro> <InstallLocation> <FileName>.

CentOS のインポートの例Importing CentOS example

CentOS 配布 tar ファイルを WSL にインポートするには、次のようにします。To import the CentOS distribution tar file into WSL:

  1. PowerShell を開き、ディストリビューションを格納するフォルダーが作成されていることを確認します。Open PowerShell and ensure that you have a folder created where you'd like the distribution to be stored.
cd C:\temp
mkdir E:\wslDistroStorage\CentOS
  1. コマンドを使用して、 wsl --import <DistroName> <InstallLocation> <InstallTarFile> tar ファイルをインポートします。Use the command wsl --import <DistroName> <InstallLocation> <InstallTarFile> to import the tar file.
wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
  1. コマンドを使用し wsl -l -v て、インストールされているディストリビューションを確認します。Use the command wsl -l -v to check which distributions you have installed.

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

  1. 最後に、コマンドを使用し wsl -d CentOS て、新しくインポートした CentOS Linux ディストリビューションを実行します。Finally, use the command wsl -d CentOS to run your newly imported CentOS Linux distribution.

既定のユーザーのような WSL 固有のコンポーネントを追加するAdd WSL specific components like a default user

既定では、--import を使用する場合は、常にルートユーザーとして開始されます。By default when using --import, you are always started as the root user. 独自のユーザーアカウントを設定することもできますが、セットアッププロセスは、各 Linux ディストリビューションによって若干異なることに注意してください。You can set up your own user account, but note that the set up process will vary slightly based on each different Linux distribution.

先ほどインポートした CentOS ディストリビューションでユーザーアカウントを設定するには、まず PowerShell を開き、次のコマンドを使用して CentOS でブートします。To set up user account with the CentOS distribution we just imported, first open PowerShell and boot into CentOS, using the command:

wsl -d CentOS

次に、CentOS コマンドラインを開きます。Next, open your CentOS command line. このコマンドを使用して、sudo とパスワード設定ツールを CentOS にインストールし、ユーザーアカウントを作成して、既定のユーザーとして設定します。Use this command to install sudo and password setting tools into CentOS, create a user account, and set it as the default user. この例では、ユーザー名は ' caloewen ' になります。In this example, the username will be 'caloewen'.

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 インスタンスが終了していることを確認する必要があります。You must now quit out of that instance and ensure that all WSL instances are terminated. PowerShell で次のコマンドを実行して、新しい既定のユーザーを表示するには、もう一度ディストリビューションを開始します。Start your distribution again to see your new default user by running this command in PowerShell:

wsl --shutdown
wsl -d CentOS

[caloewen@loewen-dev]$これで、この例に基づいて出力が表示されます。You will now see [caloewen@loewen-dev]$ as the output based on this example.

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

WSL 設定の構成の詳細については、「 起動コマンド & 構成」を参照してください。To learn more about configuring WSL settings, see Launch commands & configurations.

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

UWP アプリとしてパッケージ化された独自のカスタマイズされた Linux ディストリビューションを作成できます。これは、Microsoft Store で使用できる WSL ディストリビューションと同じように動作します。You can create your own customized Linux distribution, packaged as a UWP app, that will behave exactly like the WSL distributions available in the Microsoft Store. 詳細については、「 WSL 用のカスタム Linux ディストリビューションの作成」を参照してください。To learn how, see Creating a Custom Linux Distribution for WSL.