WSL で使用する Linux ディストリビューションをインポートする
Microsoft Store にない場合でも、tar ファイルと一緒にインポートすることで、Linux 用 Windows サブシステム (WSL) 内で任意の Linux ディストリビューションを使用できます。
この記事では、Linux ディストリビューション CentOS を、Docker コンテナーを使用してその tar ファイルを取得することで、WSL で使用するためにインポートする方法について説明します。 このプロセスは、あらゆる Linux ディストリビューションのインポートに適用できます。
ディストリビューションの tar ファイルを取得する
まずは、そのディストリビューションのすべての Linux バイナリが含まれる tar ファイルを取得する必要があります。
tar ファイルは、さまざまな方法で取得できます。そのうちの 2 つは次のとおりです。
- 提供されている tar ファイルをダウンロードする。 Alpine Linux のダウンロード サイトの「MINI ROOT FILESYSTEM」セクションで、Alpine に関する例を確認できます。
- Linux ディストリビューション コンテナーを探し、インスタンスを tar ファイルとしてエクスポートする。 以下の例は、CentOS コンテナーを使用したこのプロセスを示します。
CentOS 用の tar ファイルを取得する例
この例では、WSL ディストリビューション内の Docker を使用して、CentOS 用の tar ファイルを取得します。
前提条件
- WSL が有効になっており、Linux ディストリビューションがインストールされていて、WSL 2 が実行されている必要があります。
- WSL 2 エンジンを有効にして Windows 用 Docker Desktop をインストールし、統合をオンにする必要があります。使用条件の更新については、「Docker Desktop の使用許諾契約書」 を参照してください。
コンテナーから tar をエクスポートする
Microsot Store から既にインストールしている Linux ディストリビューション (この例では Ubuntu) のコマンド ライン (Bash) を開きます。
Docker Desktop が実行されていることを確認します (WSL ディストリビューション内に Docker がインストールされている場合は、
sudo service docker start
を使用してサービスを開始します)Docker 内で CentOS コンテナーを実行します。
docker run -t --name wsl_export centos ls /
そのコンテナー ID を、マウントされた C ドライブにある tar ファイルにエクスポートします。
docker export wsl_export > /mnt/c/temp/centos.tar
コンテナーをクリーンアップする
docker rm wsl_export
このプロセスにより、Docker コンテナーから CentOS の tar ファイルがエクスポートされます。これにより、ローカルで WSL と使用するためにインポートできるようになります。
tar ファイルを WSL にインポートする
tar ファイルの準備ができたら、コマンド wsl --import <Distro> <InstallLocation> <FileName>
を使用してインポートできます。
CentOS のインポートの例
CentOS ディストリビューションの tar ファイルを WSL にインポートするには、次のようにします。
PowerShell を開き、ディストリビューションを格納するフォルダーが作成されていることを確認します。
cd C:\temp mkdir E:\wslDistroStorage\CentOS
コマンド
wsl --import <DistroName> <InstallLocation> <InstallTarFile>
を使用して、tar ファイルをインポートします。wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
コマンド
wsl -l -v
を使用して、インストールしたディストリビューションを確認します。最後に、
wsl -d CentOS
コマンドを使用して、新しくインポートした CentOS Linux ディストリビューションを実行します。
WSL 固有のコンポーネントを既定のユーザーのように追加する
既定では、--import を使用する場合は、常にルート ユーザーとして開始されます。 独自のユーザー アカウントを設定することもできますが、セットアップ プロセスは、各 Linux ディストリビューションによって若干異なることに注意してください。
先ほどインポートした CentOS ディストリビューションでユーザー アカウントを設定するには、まず PowerShell を開き、次のコマンドを使用して CentOS を起動します。
wsl -d CentOS
次に、CentOS コマンド ラインを開きます。 このコマンドを使用して、sudo とパスワード設定ツールを CentOS にインストールし、ユーザー アカウントを作成して、既定のユーザーとして設定します。 この例では、ユーザー名は "caloewen" になります。
Note
ユーザーが sudo を使用できるように、sudoers ファイルにユーザー名を追加する必要があります。 コマンド adduser -G wheel $myUsername
で、ユーザー myUsername
をホイールグループに追加します。 ホイールグループ内のユーザーには 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 の設定の構成の詳細については、「.wslconfig と wsl.conf を使用して設定を構成する」を参照してください。
カスタム Linux ディストリビューションを使用する
UWP アプリとしてパッケージ化された、独自のカスタマイズされた Linux ディストリビューションを作成できます。これは、Microsoft Store にある WSL ディストリビューションと同じように動作します。 詳細については、「WSL 用のカスタム Linux ディストリビューションの作成」を参照してください。
Windows Subsystem for Linux