你可以使用适用于 Linux 的 Windows 子系统 (WSL) 中的任何 Linux 分发版(即使它在 Microsoft Store中不可用),方法是将其导入到 tar 文件。
本文介绍如何通过使用 Docker 容器获取其 tar 文件,导入用于 WSL 的 Linux 分发 CentOS。 此过程可用于导入任何 Linux 分发版。
获取用于分发的 tar 文件
首先,你需要获取一个 tar 文件,其中包含用于分发的所有 Linux 二进制文件。
可以通过多种方式获取 tar 文件,其中两种方法包括:
- 下载提供的 tar 文件。 可以在 Alpine Linux 下载 站点的 "微型根文件系统" 部分中找到 Alpine 的示例。
- 查找 Linux 分发容器并将实例导出为 tar 文件。 下面的示例将使用 CentOS 容器显示此进程。
获取用于 CentOS 的 tar 文件示例
在此示例中,我们将使用 WSL 分布中的 Docker 获取 CentOS 的 tar 文件。
先决条件
- 必须 启用 WSL,并且安装了运行 WSL 2 的 Linux 分发版。
- 你必须在 启用了 WSL 2 引擎的情况下安装适用于 Windows 的 Docker Desktop,并检查 你将在后续步骤中使用的分发的集成。
从容器中导出 tar
-
在此) 示例中,为已从 Microsoft Store (Ubuntu 的 Linux 发行版打开命令行 (Bash) 。
-
启动 Docker 服务:
Bash复制
sudo service docker start
- 在 Docker 中运行 CentOS 容器:
Bash复制
docker run -t centos bash ls /
- 使用 grep 和 awk 获取 CentOS 容器 ID:
Bash复制
dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
- 将容器 ID 导出到已装载的 c 驱动器上的 tar 文件:
Bash复制
docker export $dockerContainerID > /mnt/c/temp/centos.tar
此过程从 Docker 容器中导出 CentOS tar 文件,以便现在可以将其导入,以便在本地使用 WSL。
将 tar 文件导入 WSL
完成 tar 文件后,可以使用命令导入它: wsl --import <Distro> <InstallLocation> <FileName>
。
导入 CentOS 示例
将 CentOS 分发 tar 文件导入 WSL:
- 打开 PowerShell 并确保在要存储分发的位置创建一个文件夹。
PowerShell复制
cd C:\temp
mkdir E:\wslDistroStorage\CentOS
- 使用命令
wsl --import <DistroName> <InstallLocation> <InstallTarFile>
导入 tar 文件。
PowerShell复制
wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
- 使用命令
wsl -l -v
检查已安装的分发。
- 最后,使用命令
wsl -d CentOS
运行新导入的 CentOS Linux 分发版。
添加特定于 WSL 的组件,例如默认用户
默认情况下,使用--import 时,始终以根用户的身份启动。 你可以设置自己的用户帐户,但请注意,根据每个不同的 Linux 分发,设置过程会略有不同。
若要使用我们刚刚导入的 CentOS 分发设置用户帐户,请先打开 PowerShell,然后使用命令启动到 CentOS 中:
PowerShell复制
wsl -d CentOS
接下来,打开 CentOS 命令行。 使用此命令将 sudo 和 password 设置工具安装到 CentOS、创建用户帐户并将其设置为默认用户。 在此示例中,用户名为 "caloewen"。
Bash复制
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 中运行以下命令,再次开始分发以查看新的默认用户:
PowerShell复制
wsl --terminate CentOS
wsl -d CentOS
现在,你将看到 [caloewen@loewen-dev]$
基于此示例的输出。
若要详细了解如何配置 WSL 设置,请参阅 & 配置启动命令。
使用自定义 Linux 分发版
你可以创建自己的自定义 Linux 分发版(打包为 UWP 应用),其行为与 Microsoft Store 中可用的 WSL 分发完全相同。 若要了解如何操作,请参阅 创建 WSL 的自定义 Linux 分发。
建议的内容
-
有关此主题的适用于 Linux 的 Windows 子系统
查找有关适用于 Linux 的 Windows 子系统的常见问题的解答,例如“我可使用 WSL 执行哪些操作?”。
-
适用于 Linux 的 Windows 子系统文档
浏览适用于 Linux 的 Windows 子系统文档。
-
排查适用于 Linux 的 Windows 子系统问题
提供有关在适用于 Linux 的 Windows 子系统上运行 Linux 时遇到的常见错误和问题的详细信息。
-
有关适用于 Linux 2 的 Windows 子系统的常见问题
查找有关适用于 Linux 的 Windows 子系统 2 的常见问题的解答,例如“我能否在虚拟机上运行 WSL 2?”。
-
通过 WSL 运行 Linux GUI 应用
了解 WSL 支持如何运行 Linux GUI 应用。
-
比较 WSL 1 和 WSL 2
比较适用于 Linux 的 Windows 子系统版本 1 和版本 2。 了解 WSL 2 中的新增功能。
-
为 Linux 分发版创建用户帐户
适用于 Linux 的 Windows 子系统的用户帐户和权限管理参考。