WSL2 导入并配置定制版 Ubuntu (以 18.04.2 为例) 的完整教程

0 阅读5分钟

WSL2 导入并配置定制版 Ubuntu (以 18.04.2 为例) 的完整教程

引言:在日常开发中,许多工具或交叉编译环境对特定的系统版本(如 Ubuntu 18.04)有严格要求。随着 WSL2 的普及,它为我们提供了极大的便利。然而,官方支持通过 wsl --install 命令直接下载的往往是只包含较新版本的 Linux 系统。如果我们需要旧版本或特定版本,只能从官方或镜像站下载 .iso 镜像文件。由于 WSL2 导入自定义系统需要 .tar 格式的根文件系统压缩包,本教程将详细演示如何从 ISO 镜像中提取根文件系统,并将其导入到 WSL2 中运行。

1. 下载 ISO 系统镜像

首先,我们需要下载目标系统的 ISO 镜像。本文以 Ubuntu 18.04.2 为例。 访问旧版镜像归档站点:old-releases.ubuntu.com/releases/18…,下载 ubuntu-18.04.2-server-amd64.iso

注意:请务必下载 Server(服务器)版本。在 WSL2 中我们主要使用命令行环境,无需安装臃肿的桌面环境。

下载Server版系统镜像

2. 提取特定的 squashfs 文件

下载完成后,双击挂载或解压我们下载好的 .iso 文件。

挂载ISO文件

进入 install 文件夹:

找到install文件夹

在其中找到 filesystem.squashfs 文件,将其复制并粘贴到你电脑上的一个临时文件夹中(例如 D:\Temp)。

复制squashfs文件 粘贴到临时目录

3. 提取根文件系统打造 tar 包

为了将 squashfs 转换为 WSL2 需要的 .tar 压缩包,我们首先需要借助一个临时的 Linux 环境。

打开终端(建议使用 PowerShell),输入以下命令查看当前所有支持直接下载的 Linux 系统:

wsl --list --online

查看在线系统列表

这里我们直接下载一个最新的临时环境(如 Ubuntu-24.04)用来做提取工作:

wsl --install -d Ubuntu-24.04

下载临时环境

等待安装完成并设置好初始用户名和密码。 设置用户名和密码 创建成功

成功进入这个临时的 Linux 环境后,我们需要挂载刚才提取出的 filesystem.squashfs 文件。假设该文件存放在 Windows 系统的 D:\Temp 目录下,那么在 WSL 访问的路径就是 /mnt/d/Temp(如果是C盘则是 /mnt/c/...)。

找到squashfs所在路径

/mnt/ 目录下创建一个文件夹作为挂载点(截图里我多创建了一个iso文件夹,这个用不到,不用创建):

sudo mkdir /mnt/squashfs

创建挂载点

接着,将 .squashfs 文件挂载到刚才创建的目录中:

sudo mount -t squashfs /mnt/d/Temp/filesystem.squashfs /mnt/squashfs/

挂载文件系统

进入挂载目录并使用 ls 查看,此时你就能看到完整的 Ubuntu 18.04 根文件系统了:

cd /mnt/squashfs
ls

查看根文件系统内容

最后一步,在当前目录下(/mnt/squashfs),将所有文件打包压缩并存放到我们的临时目录中:

sudo tar --numeric-owner -p -cvf /mnt/d/Temp/ubuntu18.04.2.tar .

⚠️ 关键提示: 上述命令最后的点 . 代表当前目录,千万不要漏掉!

等待打包结束返回 Windows,进入 D:\Temp 文件夹,你就能看到打包好的 .tar 文件了。 打包过程 打包完成 查看tar文件

4. 将提取的文件系统导入 WSL2

首先,我们需要在之前的临时 Linux 环境中取消挂载,并退出该环境(因为我忘记取消挂载了,所以截图里没有这条命令):

sudo umount /mnt/squashfs
exit

退出临时环境

回到 Windows PowerShell 终端,使用 wsl --import 命令将刚才打包的 .tar 环境导入为全新的 WSL2 实例。 命令语法:wsl --import <自定义实例名称> <实例安装目录> <tar文件绝对路径> --version 2

wsl --import Ubuntu D:\Temp\WSL_Ubuntu18 D:\Temp\ubuntu18.04.2.tar --version 2

导入WSL环境 导入成功

导入完成后,查看现有的 WSL 环境列表,确认名为 Ubuntu 的环境已存在:

wsl -l -v

确认镜像环境

启动并进入我们刚创建的 Ubuntu 环境:

wsl -d Ubuntu

进入特定WSL环境

(可选) 为了防止系统内核被意外升级破坏兼容性,可以锁定内核相关包的更新:

sudo apt-mark hold linux-image-generic linux-headers-generic

锁定内核

5. 配置软件源并安装常用工具

因为我们提取的是一个最小化的服务器根文件系统,包含的内容极其精简,通常连 gitvim 都没有。

ls /usr/bin

查看现有工具

如果直接查看当前的软件源 /etc/apt/sources.list 并尝试下载包,可能会遇到源失效或无法解析的问题: 查看报错 下载报错

我们需要一键替换为兼容的官方镜像源。直接在终端执行以下命令覆写配置:

sudo bash -c 'cat << EOF > /etc/apt/sources.list
deb http://archive.ubuntu.com/ubuntu/ bionic main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted universe multiverse
deb http://security.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse
EOF'

替换源

替换完成后,必须先执行更新软件列表命令,然后再安装我们需要的工具:

sudo apt-get update
sudo apt-get install git vim -y

安装工具

安装完毕后,验证一下是否安装成功:

git --version
vim --version

验证版本

6. 清理临时环境与收尾

既然我们的目标环境已经调优完毕,之前用于提取文件的 Ubuntu-24.04 临时环境就可以删除了。

退出当前的 WSL 环境:

exit

退出目标环境

先关闭所有运行中的 WSL 实例:

wsl --shutdown

关闭所有实例

注销并清理临时环境(注意数据无价,确认名称不要打错):

wsl --unregister Ubuntu-24.04

注销环境

确认清理结果:

wsl --list

确认清理结果

最后,你可以将刚配置好的系统设置为 WSL 的默认启动环境。这样日后只需要在终端敲击 wsl即可直接进入:

wsl --set-default Ubuntu

配置默认环境

进入系统通过 lsb_release -a 查看版本,确认一切正常:

lsb_release -a

查看系统版本

🎉 好了,至此我们的定制化 Ubuntu 18.04.2 环境就已经全部配置完成了!