导入要与 WSL 一起使用的任何 Linux 发行版
通过使用 tar 文件导入任何 Linux 发行版,可在适用于 Linux 的 Windows 子系统 (WSL) 中使用该发行版(即使它不在 Microsoft Store 中提供)。
本文演示了如何通过使用 Docker 容器获取 Linux 发行版 CentOS 的 tar 文件来将它导入,以便与 WSL 一起使用。 此过程可应用于导入任何 Linux 发行版。
首先,需要获取一个 tar 文件,其中包含发行版的所有 Linux 二进制文件。
可通过多种方式获取 tar 文件,其中两种方式包括:
在本示例中,使用 WSL 发行版中的 Docker 来获取 CentOS 的 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 --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
添加到 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 发行版(打包为 UWP 应用),其行为将与 Microsoft Store 中提供的 WSL 发行版完全一样。 若要了解如何操作,请参阅创建适用于 WSL 的自定义 Linux 发行版。