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 ファイルを取得します。
[前提条件]
- WSL 2 を実行している Linux ディストリビューションをインストールして WSL を有効にする必要があります。
- WSL 2 エンジンを有効にして Windows 用 Docker Desktop をインストールし、統合をオンにする必要があります。使用条件の更新については、Docker Desktop ライセンス契約を参照してください。
コンテナーから tar をエクスポートする
Microsoft Store (この例では Ubuntu) から既にインストールされている Linux ディストリビューションのコマンド ライン (Bash) を開きます。
Docker Desktop が実行されていることを確認します (または、WSL ディストリビューションに Docker がインストールされている場合は、
sudo service docker start
でサービスを開始します)Docker 内で CentOS コンテナーを実行します。
docker run -t --name wsl_export centos ls /
マウントされた c ドライブ上の tar ファイルにコンテナー ID をエクスポートします。
docker export wsl_export > /mnt/c/temp/centos.tar
コンテナーをクリーンアップする
docker rm wsl_export
このプロセスにより、CentOS tar ファイルが Docker コンテナーからエクスポートされるため、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" になります。
注
ユーザーが 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 設定の構成の詳細については、「 .wslconfig と wsl.conf を使用した設定の構成」を参照してください。
カスタム Linux ディストリビューションを使用する
Microsoft Store で使用できる WSL ディストリビューションとまったく同じように動作する、UWP アプリとしてパッケージ化された独自のカスタマイズされた Linux ディストリビューションを作成できます。 方法については、「 WSL 用のカスタム Linux ディストリビューションの作成」を参照してください。
Windows Subsystem for Linux