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

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

原文链接: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系统。
wsl --install

aaw21r12rt4g2

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

挂载与准备Ext4分区

  1. 通过下面这条指令查看Windows当前磁盘
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
wsl --mount \\.\PHYSICALDRIVE1 --bare
# 卸载指令是 wsl --unmount \\.\PHYSICALDRIVE1

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

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

  1. 挂载Ext4分区
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/

Read more

香港银行开户指南

香港银行开户指南

注意:本文所有内容,都是需要前往香港的情况下才能使用! 本文主要介绍2家实体银行和3家虚拟银行! 实体银行包含: * 中国银行(香港) * 汇丰银行(香港),该银行也被称为“香港上海汇丰银行” 虚拟银行包含: * 众安银行 * 天星银行 * 蚂蚁银行 1、各银行所需资料和办理方式 银行名称 办理方式 所需材料 & 要求 备注 汇丰银行(香港) 提前预约,线下到营业点办理 (如果没预约,只能很早排队取线下号,不一定能取到) 必备证件: 1. 港澳通行证 2. 入境海关小票 3. 身份证 投资证明: 1. 证券App近三月股票交割单 2. 中国结算近三月交割单 3. 银行近三月流水单 4. 支付宝投资流水 资产证明: 1. 银行资产证明 2.

By 夕元
C++协程(Coroutines)

C++协程(Coroutines)

原文链接:https://ovea-y.cn/cpp_coroutine_20/ C++协程(Coroutines) 1. 简单介绍协程 协程可以简单的理解为,它是一个可以随时“中断”,并再次恢复执行的函数。 C++协程框架的特点: * 无栈协程 * 非对称设计(开发者可以自行设计协程调度器,做成对称设计) 2. 协程和函数的区别 函数:函数调用是线性、同步、一次性的执行模式,调用者必须等待被调用方法执行完成后返回。 协程:协程可以异步执行,调用者不需要等待协程完成,可以在协程挂起时继续做其他事情。在执行过程中通过特定的语法(co__yield_和_co__await)暂停执行,并在之后的某个时刻恢复执行。 2.1 普通函数的执行过程 一个普通函数在执行的时候,主要包含两个操作,分别是调用(call)和返回(return)

By 夕元
GitHub Workflows

GitHub Workflows

原文链接:https://ovea-y.cn/github_workflows/ 本文介绍GitHub工作流的创建和作用。 工作流创建方式 在git项目下,创建.github/workflows文件夹,里面编写的任何yml文件都是工作流的一部分。 secrets的创建方式 secrets.GITHUB_TOKEN是GitHub自动创建的,不需要自己创建。 secrets.SERVER_HOST这个的来源,需要在GitHub对应的项目的设置中设置。 readme的构建标签 配置好Branch、Event类型后,把下面这段内容复制到markdown文档里,就会自动显示自动化流程状态了。其实就是一张图片,由GitHub自动生成提供。 一. 自动构建网站并推送到远程服务器 自动构建hugo,并更新远程服务器的静态网站内容。 自动化流程文件 name: Deploy Hugo Site # 当推送到main分支时触发部署流程 on: push: branches: - main

By 夕元
代码版本管理工具(git/gerrit/repo)

代码版本管理工具(git/gerrit/repo)

原文链接:https://ovea-y.cn/code_version_control_tools__git_gerrit_repo/ 一、版本控制工具的历史 1.1 版本控制雏形 在版本控制软件出现之前,就具备diff与patch工具来对源码进行比较和打补丁了,在CVS出来的一段时间里,Linus一直在使用diff与patch工具管理着Linux的代码。diff与patch也是源码版本控制中最基本的概念。 1.1.1 diff —— 用于比较两个文件或目录之间的差异 -u 表示使用 unified 格式 -r 表示比较目录 -N 表示将不存在的文件当作空文件处理,这样新添加的文件也会出现在patch文件中 diff -urN a.c b.c > c.patch 1.1.2 patch —— 用于应用差异修改 通过patch可以将原始文件变成目标文件,

By 夕元