导入要与 WSL 一起使用的任何 Linux 发行版
通过使用 tar 文件导入任何 Linux 发行版,可在适用于 Linux 的 Windows 子系统 (WSL) 中使用该发行版(即使它不在 Microsoft Store 中提供)。
本文演示了如何通过使用 Docker 容器获取 Linux 发行版 CentOS 的 tar 文件来将它导入,以便与 WSL 一起使用。 此过程可应用于导入任何 Linux 发行版。
获取发行版的 tar 文件
首先,需要获取一个 tar 文件,其中包含发行版的所有 Linux 二进制文件。
可通过多种方式获取 tar 文件,其中两种方式包括:
- 下载提供的 tar 文件。 可在 Alpine Linux 下载站点的“微型根文件系统”部分找到 Alpine 的示例。
- 查找 Linux 发行版容器,将实例导出为 tar 文件。 以下示例将使用 CentOS 容器演示此过程。
获取 CentOS 的 tar 文件示例
在本示例中,使用 WSL 发行版中的 Docker 来获取 CentOS 的 tar 文件。
先决条件
- 必须在安装了运行 WSL 2 的 Linux 发行版的情况下启用 WSL。
- 必须安装了适用于 Windows 的 Docker Desktop,启用了 WSL 2 引擎并选中了集成,请参阅 Docker Desktop 许可协议,了解使用条款的更新。
从容器导出 tar
打开已从 Microsoft 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”。
注意
你需要将用户名添加到 sudoers 文件,以便允许用户使用 sudo。 命令 adduser -G wheel $myUsername
会将用户 myUsername
添加到 wheel 组中。 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 发行版
可创建自己的自定义 Linux 发行版(打包为 UWP 应用),其行为将与 Microsoft Store 中提供的 WSL 发行版完全一样。 若要了解如何操作,请参阅创建适用于 WSL 的自定义 Linux 发行版。