
WSL 是Windows Subsystem for Linux的缩写, 是适用于Linux的Windows 子系统, 借助于Windows 内置的Hyper-V和虚拟磁盘(VHD)等特性, 让Windows 用户可以在不借助于虚拟机管理软件(VM)和电脑双重启动等方式, 方便的在Windows 下运行Linux, 因此也受到了很多喜欢Linux 环境,但是又不得不在Windows下日常办公的用户的赞扬, 甚至有人认为,有了WSL, Windows 开始了向Linux的进化, 戏称Windows 为“Winux”, 也有人认为“Windows 10 是Linux的最好的发行版”, 由此可见WSL 是非常受Linux 用户欢迎的一个Windows 特性。
在Win11 中, WSL2的使用是非常简单的,仅仅通过wsl –install 就可以默认安装Ubuntu , 但是, 微软的Linux 分发版代码库中, 并没有提供对Fedora的支持, 使用wsl –list –online 即可看出:

wsl –list –online
在这里就简单介绍下如何在WSL中( 这里主要是WSL2中),如何创建Fedora 发行版。
一、下载
微软在WSL的文档中指出, WSL 是可以支持任意Linux发行版本的,对于没有明确列出的Linux 发行版, WSL 可以通过导入的方式自行构建,而且提供了 wsl –import 和wsl –export 命令,方便用户导入和导出各种Linux 。
为了安装Fedora 并导入, 我们首先要下载Fedora的发行版, 打开Fedora 容器基础网站(
https://koji.fedoraproject.org/koji/packageinfo?buildStart=0&packageID=26387&buildOrder=-completion_time&tagOrder=name&tagStart=0#buildlist):
可以看到,在本文写作时, 最新的版本是39, 这里我们选用Version38
Fedora-Container-Base-38-20240325.0 | Build Info | koji:

下载下来之后,用RAR 解压,在里面找到layer.tar文件,

并改名为fedora-38-rootfs.tar:
mv .\layer.tar fedora-38-rootfs.tar
然后, 在用户根目录创建wsl\fedora, 这个目录的主要用途是Fedora 发行版运行时候的工作目录。
并将上面的tar 文件复制到用户根目录, 放到$HOME根目录主要是为了后面导入的时候容易查找tar 文件
mkdir ~\wsl\fedora
mv .\fedora-38-rootfs.tar ~\
执行结果:

二、WSL中安装fedora
在WSL中导入tar 文件,执行下面的文件:
wsl --import fedora $HOME\wsl\fedora $HOME\fedora-38-rootfs.tar
在这个命令中, 第一个参数指定Fedora 发行版的工作目录, 第二个参数指定Fedora的rootfs 文件。
然后,我们就可以查看本地的WSL 子系统:
wsl --list --verbose
执行结果:

三、使用以及常用操作
下面我们在WSL中启动Fedora:
wsl -d fedora
执行结果:

可以看到,启动非常简单,只需要通过参数-d 指定名称即可,进入fedora 之后,默认是root 用户, 我们还通过whoami 来确认了。
在Linux 中使用root 账号并不安全, 因此我们来创建一个常用的操作账号。
首先, 来更新一下系统:
sudo dnf update
然后, 我们来安装一些必要的工具:
sudo dnf install -y util-linux passwd cracklib-dicts
执行结果:

然后,我们来创建账号:
useradd -G wheel devops
passwd devops
这样,我们就创建了一个新的账号 devops

接下来,我们就可以使用这个devops账号来登录fedora :
wsl -d fedora -u devops
执行结果可以看到, 我们成功的用devops账号登陆fedora系统:

最后,我们还可以利用wsl的导出机制, 把当前配置好的fedora 系统导出, 达到系统备份的目的:
wsl --export fedora $HOME\fedora-38-wslbakup.tar
执行结果:

总结
虽然基于WSL的Fedora 39的 可以在Windows 商店中找到, 但是通过我们自己的搭建,我们熟悉了WSL的操作。

没有回复内容