wsl1升级到wsl2跨 OS 文件系统的性能是降低的,也就是在子系统中操作父windows系统上的文件,wsl2是较wsl1慢的。

原因很简单,wsl2使用了VM来运行Linux内核,在wsl2上面操作windows上的文件需要在windows文件系统、VM上绕一圈。

大家知道运行在VM上的系统是无法直接与宿主系统进行跨系统通信的,这两者之间的通信需要依赖于网络,尽管他们是运行在同一台电脑之上。wsl2子系统与父windows系统之间的文件互通也是依靠网络端口的,这也就是wsl2跨OS文件操作慢的根本原因。

既然知道了原因,那么问题就很好解决了。

尽量不要跨系统操作文件

跨系统直接操纵文件需要经过网络,速度自然很慢,所以要尽量避免跨系统直接操作对方系统上的文件。

将需要跨系统使用的文件提前拷贝到目标系统上,或者将文件直接存到目标系统上

在需要跨系统使用文件的时候,我们可以提前在当前系统上将文件拷贝到目标系统上。例如:

我们需要在子系统上访问windows系统上的某个文件时,可以先在windows文件资源管理器上,将文件拷贝到子系统上的目标位置,然后再子系统上直接访问,这样可以节省在两个系统之间做磁盘映射的时间。

父子系统之间文件系统的相互访问

父windows系统访问子linux系统的文件:
直接在文件资源管理器输入\\wsl$就可以访问到wsl子系统的文件系统:
在这里插入图片描述
或者WIN+R输入\\wsl$
在这里插入图片描述
linux子系统访问父windows系统的文件:
直接cd /mnt就可以看到c/、d/两个文件夹,对应的就是电脑上的C盘、D盘,cd进去就可以访问对应windows上的文件:
在这里插入图片描述

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐