Windows 11使用WSL2进行日常工作测试

注意
本文最后更新于 2024-01-20,文中内容可能已过时。

原文链接:https://ovea-y.cn/windows11_uses_wsl2_for_daily_work_testing/

背景介绍

由于Linux上缺少很多常用的软件,并且Linux加上图形界面时,有时会出现很多匪夷所思的BUG(包括但不限于压缩文件的默认打开方式变成了文本编辑器、界面卡死等情况),因此将工作流迁移到Windows上也不失为一种选择。

WSL 2相比WSL 1最大的缺点就是它运行在虚拟化层中,并且对NTFS的读写性能极差!(还有一个问题是硬件和网络端口不再共享了)但是优点是它是完整的linux系统,可以发挥Linux全部的功能。

如果要使用WSL 2进行日常工作,就必须避免使用NTFS,而是使用其他Linux上原生支持的文件系统。本篇文章的重点就是如何让WSL 2用上原生支持的文件系统。

配置环境

  1. 启用Linux子系统功能(需要管理员权限),下面这个指令可以自动配置好所有环境,默认使用WSL 2,Ubuntu系统。

text

wsl --install

aaw21r12rt4g2

  1. 重启系统,重启后会自动弹出下面这个安装框 greg23r1rt1
  2. 按照提示设置好用户名和密码 y34tgfg32tewr

挂载与准备Ext4分区

  1. 通过下面这条指令查看Windows当前磁盘

text

GET-CimInstance -query "SELECT * from Win32_DiskDrive"

gh43t2tasfbs 2. 打开磁盘管理器,清空一个需要用于WSL 2的磁盘 oh45y2rg2 fewrr1t43h2 3. 下载和安装diskgenius 4. 打开diskgenius,将这个分区格式化为Ext4 reg23þhwer23t htrh242gfwer2 sgg2tr2h24g jtrh4t2fwef2 nhtrh4t2g2

  1. 执行以下指令进行块设备节点挂载(其实如果把磁盘彻底删除分区表,即把MSR分区也删除就不需要加参数 –bare,也不需要diskgenius进行处理。但是我以前吃过MSR的亏,这个有可能引发Windows的一个BUG,所以就没有彻底删除掉它,具体情况可以看这个链接:Windows 10 开启快速启动关机回到登入界面的问题!原因已经找到,求解决方案! - Microsoft Community

text

wsl --mount \\.\PHYSICALDRIVE1 --bare
# 卸载指令是 wsl --unmount \\.\PHYSICALDRIVE1

此时可以看到已经将设备映射到WSL 2中了 hterg23rt43

此处sdd1是msr分区,sdd2是我创建的新ext4分区,可以用**diskgenius**观察分区顺序

  1. 挂载Ext4分区

text

mkdir ~/AndroidCodes
sudo mount /dev/sdd2 ~/AndroidCodes
sudo chown [用户名] ~/AndroidCodes/

hryj24t2f23t

Windows 11甚至可以直接在文件管理器看到这个WSL 2的目录结构!操作就很方便了! fg223r1r1g43

性能测试

  1. 搞份redis代码编译一下,顺便看看时间(尤其是NTFS和Ext4的时间,可以看出WSL 2在NTFS上的IO有多低,以至于一定要挂载一块Ext 4硬盘用于Android编译)

NTFS分区(已经禁用了Windows Security)上redis构建完成时间:4分47秒

Ext4分区上redis构建完成时间:1分37秒

原生Ubuntu 21.10:1分34秒

参考资料

Install WSL | Microsoft Docs

Windows 下哪个软件能把硬盘分区转换为 ext4 格式? - 知乎 (zhihu.com)

Get started mounting a Linux disk in WSL 2 | Microsoft Docs

Redis仓库

Connecting USB devices to WSL - Windows Command Line (microsoft.com)

原文链接:https://ovea-y.cn/windows11_uses_wsl2_for_daily_work_testing/

相关内容