匯入任何要與 WSL 搭配使用的 Linux 發行版本
您可以使用 Windows 子系統 Linux 版 (WSL) 內的任何 Linux 散發套件,即使在 Microsoft Store 中無法使用,也可以透過使用 tar 檔案匯入它。
本文會說明如何使用 Docker 容器取得其 tar 檔案,以匯入 Linux 發行版本 CentOS,以搭配 WSL 使用。 可以套用此流程來匯入任何 Linux 發行版本。
首先,您必須取得包含散發套件所有 Linux 二進位檔的 tar 檔案。
您可以透過各種方式取得 tar 檔案,其中兩種包括:
- 下載提供的 tar 檔案。 您可以在 Alpine Linux 下載 網站的「迷你根檔案系統」章節中找到 Alpine 的範例。
- 尋找 Linux 發行版本容器,並將執行個體匯出為 tar 檔案。 下列範例將使用 CentOS 容器 來顯示此流程。
在此範例中,我們將使用 WSL 散發套件內的 Docker 來取得 CentOS 的 tar 檔案。
開啟您從 Microsoft Store 安裝之 Linux 發行版本的命令列 (Bash) (在此範例中為 Ubuntu)。
請確定您已執行 Docker Desktop (或者,如果您已在 WSL 散發套件中安裝 Docker,請使用 sudo service docker start
啟動服務)
在 Docker 內執行 CentOS 容器:
docker run -t --name wsl_export centos ls /
將容器識別碼匯出至掛接 C 磁碟機上的 tar 檔案:
docker export wsl_export > /mnt/c/temp/centos.tar
清除容器
docker rm wsl_export
此流程會從 Docker 容器匯出 CentOS tar 檔案,讓我們現在可以將其匯入以在本機搭配 WSL 使用。
備妥 tar 檔案之後,您可以使用 下列命令匯入它: wsl --import <Distro> <InstallLocation> <FileName>
。
若要將 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 發行版本。
根據預設,使用 --import 時,您一律會以根使用者身分啟動。 您可以設定自己的使用者帳戶,但請注意,設定流程會根據每個不同的 Linux 發行版本稍有不同。
若要使用我們剛匯入的 CentOS 散發套件來設定使用者帳戶,請先開啟 PowerShell 並開機進入 CentOS,使用命令:
wsl -d CentOS
接下來,開啟 CentOS 命令列。 使用此命令將 sudo 和密碼設定工具安裝到 CentOS、建立使用者帳戶,並將其設定為預設使用者。 在此範例中,使用者名稱會是 'caloewen'。
注意
您會想要將使用者名稱新增至 sudoers 檔案,讓使用者能夠使用 sudo。 命令 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 應用程式,其行為與 Microsoft Store 中提供的 WSL 散發套件完全相同。 若要了解如何進行,請參閱 建立 WSL 的自訂 Linux 發行版本。