导入要用于 WSL 的任何 Linux 分发版

你可以使用适用于 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 文件。

先决条件

从容器中导出 tar

  1. 在此) 示例中,为已从 Microsoft Store (Ubuntu 的 Linux 发行版打开命令行 (Bash) 。

  2. 启动 Docker 服务:

Bash复制

sudo service docker start
  1. 在 Docker 中运行 CentOS 容器:

Bash复制

docker run -t centos bash ls /
  1. 使用 grep 和 awk 获取 CentOS 容器 ID:

Bash复制

dockerContainerID=$(docker container ls -a | grep -i centos | awk '{print $1}')
  1. 将容器 ID 导出到已装载的 c 驱动器上的 tar 文件:

Bash复制

docker export $dockerContainerID > /mnt/c/temp/centos.tar

导入要用于 WSL 的任何 Linux 分发版

此过程从 Docker 容器中导出 CentOS tar 文件,以便现在可以将其导入,以便在本地使用 WSL。

将 tar 文件导入 WSL

完成 tar 文件后,可以使用命令导入它: wsl --import <Distro> <InstallLocation> <FileName> 。

导入 CentOS 示例

将 CentOS 分发 tar 文件导入 WSL:

  1. 打开 PowerShell 并确保在要存储分发的位置创建一个文件夹。

PowerShell复制

cd C:\temp
mkdir E:\wslDistroStorage\CentOS
  1. 使用命令 wsl --import <DistroName> <InstallLocation> <InstallTarFile> 导入 tar 文件。

PowerShell复制

wsl --import CentOS E:\wslDistroStorage\CentOS .\centos.tar
  1. 使用命令 wsl -l -v 检查已安装的分发。

导入要用于 WSL 的任何 Linux 分发版

  1. 最后,使用命令 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 分发版

若要详细了解如何配置 WSL 设置,请参阅 & 配置启动命令

使用自定义 Linux 分发版

你可以创建自己的自定义 Linux 分发版(打包为 UWP 应用),其行为与 Microsoft Store 中可用的 WSL 分发完全相同。 若要了解如何操作,请参阅 创建 WSL 的自定义 Linux 分发


建议的内容

上一篇:Windows Linux 子系统的 I/O 性能有望得到提高


下一篇:Win10安装WSL