WSL 导入任何 Linux 发行版

1 minute read

通过使用 tar 文件导入任何 Linux 发行版,可在适用于 Linux 的 Windows 子系统 (WSL) 中使用该发行版(即使它不在 Microsoft Store 中提供)。

本文演示了如何通过使用 Docker 容器获取 Linux 发行版 CentOS 的 tar 文件来将它导入,以便与 WSL 一起使用。 此过程可应用于导入任何 Linux 发行版。

获取发行版的 tar 文件

首先,需要获取一个 tar 文件,其中包含发行版的所有 Linux 二进制文件。

可通过多种方式获取 tar 文件,其中两种方式包括:

  • 下载提供的 tar 文件。 可在 Alpine Linux 下载站点的 “MINI ROOT FILESYSTEM” 部分找到 Alpine 的示例。
  • 查找 Linux 发行版容器,将实例导出为 tar 文件。

以下示例将使用 CentOS 容器演示此过程。

获取 CentOS 的 tar 文件示例

在本示例中,使用 Docker Desktop 来获取 CentOS 的 tar 文件。

先决条件

从容器导出 tar

  1. 打开命令提示符,运行如下命令,在 Docker 中运行 CentOS 容器

    C:\Users\aluop>docker run -t centos bash ls /
    Unable to find image 'centos:latest' locally
    latest: Pulling from library/centos
    a1d0c7532777: Pull complete
    Digest: sha256:a27fd8080b517143cbbbab9dfb7c8571c40d67d534bbdee55bd6c473f432b177
    Status: Downloaded newer image for centos:latest
    
  2. 查看 CentOS 容器 ID(或容器名字)

    C:\Users\aluop>docker container ls -a
    CONTAINER ID   IMAGE     COMMAND       CREATED          STATUS                      PORTS     NAMES
    7e13143e28f5   centos    "bash ls /"   15 minutes ago   Exited (0) 15 minutes ago             laughing_banach
    
  3. 将容器 ID 导出到 tar 文件

    C:\Users\aluop>docker export 7e13143e28f5 > centos.tar
    

此过程从 Docker 容器导出 CentOS tar 文件,这样我们现在就可以导入它,以在本地将其与 WSL 一起使用。

将 tar 文件导入 WSL

准备好 tar 文件后,可使用以下命令导入它:wsl --import <Distro> <InstallLocation> <FileName>

导入 CentOS 示例

将 CentOS 发行版 tar 文件导入 WSL:

  1. 打开命令提示符并创建用于存储发行版的文件夹

    C:\Users\aluop>mkdir D:\wslDistroStorage\CentOS
    
  2. 导入 tar 文件

    C:\Users\aluop>wsl --import CentOS8 D:\wslDistroStorage\CentOS .\centos.tar
    
  3. 使用命令 wsl -l -v 检查已安装的发行版

    C:\Users\aluop>wsl -l -v
      NAME                   STATE           VERSION
    * docker-desktop         Running         2
      docker-desktop-data    Running         2
      CentOS8                Stopped         2
    
  4. 最后,使用 wsl -d CentOS8 命令运行新导入的 CentOS Linux 发行版

    C:\Users\aluop>wsl -d CentOS8
    [root@aluo aluop]#
    

Tags: ,

Categories:

Updated: