制作适用于 WSL 的任意 Linux 镜像

WSL,Windows Subsystem for Linux 的缩写,意为适用于 Linux 的 Windows 子系统。可让开发人员按原样运行 GNU/Linux 环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动设置开销。
如何在 Windows 10 版本 2004 及更高版本或 Windows 11 上安装 WSL,可以参考微软的官方文档
Microsoft Store 上已存在一些 Linux 发行版,比如 Ubuntu 等,基本上寥寥无几,或者版本比较古老。
微软官方有文档示例,通过使用 tar 文件导入任何 Linux 发行版。通过使用 Docker 容器获取 Linux 发行版的 tar 文件来将它导入 WSL。
本文则是介绍另一种制作适用于 WSL 的任意 Linux 镜像的方法,基于各个 Linux 发行版官方提供的 qcow2 镜像来制作。

下面以 Rocky Linux 8 作为示例,介绍具体制作过程。

1. 下载官方提供的 qcow2 文件

Rocky Linux 提供最新版的 qcow2 文件下载地址:
https://download.rockylinux.org/pub/rocky/8/images/Rocky-8-GenericCloud.latest.x86_64.qcow2

其他常见发行版的 qcow2 文件下载地址(节选)
CentOS 7.9
CentOS 8.4
AlmaLinux 8
Fedora 36
Debian 10
Debian 11
Ubuntu 18.04
Ubuntu 20.04
Amazon Linux 2

2. 制作 rootfs.tar.gz

以下所有的操作依赖的命令有:kpartxqemu-imglosetupfdiskmountumount,如果命令不存在,请自行安装之。
转换 qcow2 文件到 raw 文件

qemu-img convert -f qcow2 -O raw Rocky-8-GenericCloud.latest.x86_64.qcow2 Rocky8.raw

使用 losetup 将 raw 文件虚拟成块设备

losetup /dev/loop1 Rocky8.raw

使用 kpartx 挂载虚拟文件系统

kpartx -a /dev/loop1

使用 fdisk 查看挂载的分区情况

fdisk -l /dev/loop1

返回如下信息

Disk /dev/loop1: 10 GiB, 10737418240 bytes, 20971520 sectorsUnits: sectors of 1 * 512 = 512 bytesSector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytesDisklabel type: dosDisk identifier: 0x2cc9c27eDevice       Boot Start      End  Sectors  Size Id Type/dev/loop1p1 *     2048 16386047 16384000  7.8G 83 Linux

此处的/dev/loop1p1就是等下要 mount 的块设备具体的名称。
挂载块设备到本机路径

mount /dev/mapper/loop1p1 /mnt

进入挂载点 /mnt,查看文件

cd /mnt
ls -la

返回如下信息

total 16dr-xr-xr-x. 17 root root  224 Nov 15 03:17 .dr-xr-xr-x. 18 root root  256 Nov 17 09:09 ..lrwxrwxrwx.  1 root root    7 Oct 11 08:48 bin -> usr/bin
dr-xr-xr-x.  6 root root 4096 Nov 15 03:24 boot
drwxr-xr-x.  2 root root    6 Nov 15 02:50 dev
drwxr-xr-x. 94 root root 8192 Nov 15 03:24 etc
drwxr-xr-x.  2 root root    6 Oct 11 08:48 home
lrwxrwxrwx.  1 root root    7 Oct 11 08:48 lib -> usr/lib
lrwxrwxrwx.  1 root root    9 Oct 11 08:48 lib64 -> usr/lib64
drwxr-xr-x.  2 root root    6 Oct 11 08:48 media
drwxr-xr-x.  2 root root    6 Oct 11 08:48 mnt
drwxr-xr-x.  2 root root    6 Oct 11 08:48 opt
drwxr-xr-x.  2 root root    6 Nov 15 02:50 proc
dr-xr-x---.  2 root root  114 Nov 15 03:47 root
drwxr-xr-x.  2 root root    6 Nov 15 02:50 run
lrwxrwxrwx.  1 root root    8 Oct 11 08:48 sbin -> usr/sbin
drwxr-xr-x.  2 root root    6 Oct 11 08:48 srv
drwxr-xr-x.  2 root root    6 Nov 15 02:50 sys
drwxrwxrwt.  2 root root   84 Nov 15 03:47 tmp
drwxr-xr-x. 13 root root  158 Nov 15 03:01 usr
drwxr-xr-x. 20 root root  262 Nov 15 03:00 var

打包压缩 /mnt 整个目录为 rootfs.tar.gz,保存到 /root

tar zcf /root/rootfs.tar.gz *

查看打包后的文件,确认文件存在,大小一般是在几百 MB

ll -h /root/rootfs.tar.gz

至此,Rocky Linux 8 的文件系统基本上就制作完成了。

3. 后续

卸载挂载点

cd ~umount /mnt

使用 kpartx 卸载虚拟文件系统

kpartx -d /dev/loop1

使用 losetup 卸载虚拟块设备

losetup -d /dev/loop1

4. 搭配 wsldl 使用

wsldl,Advanced WSL launcher / installer,是一个用 Go 编写的多功能和高级 WSL/WSL2 启动器和安装程序。它可用于安装任何 rootfs 软件包或充当现有已安装发行版的启动器。
项目地址:https://github.com/yuk7/wsldl
下载最新版 Release 的 icons.zip 文件
解压 icons.zip 后,你会发现一系列的 Linux 发行版的 exe 文件。如下图:
制作适用于 WSL 的任意 Linux 镜像
找到 Rocky.exe 文件,再将上一步打包压缩好的 rootfs.tar.gz 文件下载回本地。将这 2 个文件放到同一个目录下。
制作适用于 WSL 的任意 Linux 镜像
双击 Rocky.exe 即可安装 Rocky Linux 8,具体过程参考另一篇文章《在 Windows 10 上安装 Rocky Linux 系统
其余发行版的制作过程大同小异。嫌麻烦的可以直接下载我已经制作好的一些常用的 Linux 发行版。

5. 已制作好的 Linux 发行版

下载链接如下:
CentOS 7.9
CentOS 8.4
Fedora 35
Fedora 36
AlmaLinux 8
AlmaLinux 9
Rocky Linux 8.5
Alpine 3.15
Ubuntu 18.04
Ubuntu 20.04
Ubuntu 22.04
Debian 10
Debian 11
Amazon Linux 2


风软资源站
风软资源站管理员

软件分享,如沐春风!

  • 声明:根据我国《计算机软件保护条例》第十七条规定:“为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬。”您需知晓本站所有内容资源均来源于网络,仅供用户交流学习与研究使用,版权归属原版权方所有,版权争议与本站无关,用户本人下载后不能用作商业或非法用途,需在24小时之内删除,否则后果均由用户承担责任。
  • 本文地址:https://www.ifengsoft.com/314.html
上一篇:适用于 UEFI 启动的多个 Windows 系统 DD 镜像
下一篇:硬盘保护工具 Secret Disk Professional 2022.13

留言评论

暂无留言
请先 登录 再评论,若不是会员请先 注册