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

背景介绍

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

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

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

配置环境

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

wsl --install
  1. 重启系统,重启后会自动弹出下面这个安装框

  1. 按照提示设置好用户名和密码

挂载与准备Ext4分区

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

GET-CimInstance -query "SELECT * from Win32_DiskDrive"
  1. 打开磁盘管理器,清空一个需要用于WSL 2的磁盘

  1. 下载和安装diskgenius

  1. 打开diskgenius,将这个分区格式化为Ext4

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

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

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

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

  1. 挂载Ext4分区

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

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

性能测试

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

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

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

参考资料

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)

附录

  1. 挂载块设备节点出现问题

按照提示去看log(WSL 2中)

发现它默认会找ext4,所以就先对这个磁盘创建EXT4分区,然后再回来挂载块设备节点

  1. 背景延申

再此之前,我是用虚拟机开虚拟化技术在Windows上构建Android的,性能会有较多的损失。

如果全部换成WSL 2至少性能方面要比虚拟机高不少,但是有个最大的缺点!难以对这块硬盘进行全盘加密…

全盘加密的好处就在于,别人偷了你电脑的硬盘,什么数据都获取不了。

Windows上是BitLocker加密(自动与TPM 2芯片配合),Linux上是Luks加密,macOS上是FileVault加密(自动在T2或M系列芯片加速这个过程)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值