怎样配置WSL实现文件映射呢?

常见问题 2025-08-23 890

手把手教你搞定WSL文件映射配置,让Linux和Windows文件无缝互通!


最近我换了台新电脑,装了Windows 11系统,想着用WSL(Windows Subsystem for Linux)跑点Linux命令行工具,结果发现个头疼的问题——在WSL里编辑的文件,Windows里找不到;Windows里存的文件,WSL里又得用绝对路径才能访问,这哪行啊?我平时开发得在两个系统间来回倒腾文件,效率低得要命,我咬咬牙,决定把WSL的文件映射配置彻底搞明白,现在就把我的经验分享出来,保证你看完也能轻松搞定!

WSL文件映射是啥?为啥要配置?

先简单说说WSL文件映射是干啥的,WSL本质上是在Windows上跑了个Linux子系统,但这两个系统的文件系统是分开的,默认情况下,WSL的Linux文件系统藏在Windows的\\wsl$\路径下,而Windows的文件系统对Linux来说就是个“外部磁盘”,配置文件映射,就是让这两个系统的文件能像在一个盘里一样互相访问,不用再记一堆路径,直接复制粘贴就行,多方便!

如何配置WSL文件映射-更新日志-更新日志

举个例子,我之前在WSL里用vim编辑了个Python脚本,存到了/home/user/scripts/目录下,结果在Windows里想用VS Code打开,得先找到\\wsl$\Ubuntu-20.04\home\user\scripts\(假设我用的是Ubuntu 20.04),路径长不说,还容易输错,配置了文件映射后,我直接在Windows资源管理器里就能看到这个目录,双击就开,爽歪歪!

配置前的准备工作

在动手之前,得先确认几个事儿:

  1. WSL版本:确保你用的是WSL 2,因为WSL 1的文件系统性能太差,不支持映射,在PowerShell里运行wsl --list --verbose,看看版本是不是2,如果不是,运行wsl --set-version <发行版名称> 2升级。

  2. Windows版本:WSL 2需要Windows 10版本2004或更高,或者Windows 11,在“设置”->“系统”->“里能看到版本号。

  3. 管理员权限:配置文件映射需要管理员权限,所以后面操作得用管理员身份运行命令提示符或PowerShell。

    如何配置WSL文件映射-更新日志-更新日志

具体配置步骤

创建共享目录

在Windows里找个地方建个文件夹,专门用来放WSL和Windows共享的文件,比如我在D盘建了个WSL_Share文件夹。

修改WSL配置文件

WSL的配置文件在%USERPROFILE%\.wslconfig(用户目录下),如果没有就新建一个,用记事本打开,添加以下内容(根据实际情况修改):

[wsl2]
kernelCommandLine = "root=/dev/sdc rootfstype=ext4 rootflags=rw"
# 下面这行是关键,指定WSL启动时挂载的Windows目录
additionalMounts = "D:\\WSL_Share=/mnt/d/WSL_Share,type=bind,options=bind,metadata"

这里解释下:

  • D:\\WSL_Share是Windows的共享目录路径。
  • /mnt/d/WSL_Share是WSL里访问的路径(/mnt/d对应Windows的D盘)。
  • type=bind表示绑定挂载。
  • options=bind,metadata确保文件权限正确。

保存后关闭。

重启WSL

在PowerShell里运行wsl --shutdown关闭所有WSL实例,然后重新启动你的WSL发行版(比如wsl -d Ubuntu-20.04)。

验证配置

启动WSL后,运行ls /mnt/d/WSL_Share,看看能不能列出Windows共享目录里的文件,如果能,说明配置成功了!

双向访问测试

  • 在WSL里创建文件:运行touch /mnt/d/WSL_Share/test.txt,然后在Windows资源管理器里打开D:\WSL_Share,看看test.txt是不是出现了。
  • 在Windows里修改文件:用记事本打开test.txt,输入点内容保存,回到WSL,运行cat /mnt/d/WSL_Share/test.txt是不是变了。

常见问题解决

权限问题

如果WSL里访问共享目录时提示“Permission denied”,可能是权限没设好,试试在WSL里运行:

sudo chmod -R 777 /mnt/d/WSL_Share

(注意:777是最大权限,生产环境慎用,这里只是为了测试。)

路径不存在

如果WSL里找不到/mnt/d/WSL_Share,先确认Windows的共享目录路径对不对,再检查.wslconfig文件里的路径有没有写错。

WSL启动失败

如果修改配置后WSL启动不了,可能是配置文件语法错了,检查.wslconfig里的引号、逗号是不是英文的,路径有没有转义(比如D:\\而不是D:\)。

进阶用法:自动挂载多个目录

如果需要映射多个目录,可以在.wslconfig里这样写:

[wsl2]
additionalMounts = "D:\\WSL_Share=/mnt/d/WSL_Share,type=bind,options=bind,metadata;E:\\Projects=/mnt/e/Projects,type=bind,options=bind,metadata"

用分号分隔多个挂载点。

配置WSL文件映射其实不难,关键是要理解两个系统的文件系统差异,然后通过挂载点把它们“连”起来,配置好后,开发效率能提升不少,再也不用在两个系统间来回切换路径了,希望我的经验能帮到你,如果有啥问题,欢迎留言讨论!

怎样通过WSL来运行脚本呢?
« 上一篇 2025-08-23
怎样才能有效卸载那些不必要的软件呢?
下一篇 » 2025-08-23

文章评论