
如果您在Windows系统中启用了WSL2,但无法通过/mnt/c路径正常访问Windows的C盘文件,可能是由于WSL发行版未正确挂载Windows文件系统、权限配置异常或自动挂载功能被禁用。以下是实现WSL2中稳定访问Windows磁盘文件的具体操作步骤:
一、确认WSL2已启用并运行对应发行版
WSL2需在Windows 10版本2004及以上或Windows 11中启用,且必须安装支持WSL2的Linux发行版(如Ubuntu、Debian等),并确保其后端为WSL2而非WSL1。只有运行于WSL2模式的发行版才默认启用/mnt/c自动挂载机制。
1、以管理员身份打开PowerShell,执行wsl -l -v命令,查看当前所有发行版及其版本状态。
2、若某发行版显示为1,则需将其转换为WSL2:执行wsl –set-version <发行版名称> 2(例如wsl –set-version Ubuntu-22.04 2)。
3、等待转换完成,重启该发行版终端,输入cat /proc/version,确认内核字符串中包含WSL2字样。
二、检查/mnt/c是否已自动挂载
WSL2默认会在启动时自动将Windows各驱动器挂载至/mnt/目录下,其中C:对应/mnt/c。若该路径不存在或为空,说明挂载未触发或被手动卸载。
1、在WSL终端中执行ls /mnt,观察是否列出c子目录。
2、若无c目录,尝试手动挂载:执行sudo mkdir -p /mnt/c && sudo mount -t drvfs C: /mnt/c。
3、验证挂载结果:运行mount | grep drvfs,确认输出中包含C: on /mnt/c type drvfs。
三、启用Windows驱动器自动挂载配置
WSL2允许通过/etc/wsl.conf文件控制挂载行为。若该文件缺失或配置项被注释,可能导致重启后/mnt/c不可见。需显式启用自动挂载并设定挂载选项。
1、在WSL中执行sudo nano /etc/wsl.conf,创建或编辑该文件。
2、输入以下内容(不含注释行):[automount]<br>enabled = true<br>options = "metadata,uid=1000,gid=1000,umask=22,fmask=11"
3、保存退出后,关闭所有WSL终端窗口,在PowerShell中执行wsl –shutdown,再重新启动发行版。
4、启动后立即执行ls /mnt/c,确认C盘根目录内容可见。
四、处理NTFS文件权限与特殊字符路径问题
Windows文件系统使用NTFS格式,其权限模型与Linux不同;同时,路径中含空格、中文或Unicode符号时,WSL2默认可能无法正确解析。需调整挂载参数以兼容元数据和特殊字符。
1、编辑/etc/wsl.conf,在[automount]区块中追加crossdv = true和root = /mnt两行。
2、确保options值中包含metadata(启用Linux权限映射)和case = off(关闭大小写敏感,适配Windows默认行为)。
3、修改完成后再次执行wsl –shutdown并重启,然后进入/mnt/c/Users/<用户名>,测试能否访问含中文名的文档文件夹。
五、绕过/mnt/c直接访问Windows应用数据目录
部分用户发现/mnt/c访问受限(如权限拒绝、只读),尤其涉及AppData、Program Files等受保护路径。此时可利用Windows内置的\wsl$网络路径从Windows资源管理器反向访问WSL,或通过explorer.exe命令在WSL中打开指定Windows路径。
1、在WSL终端中执行explorer.exe .,将打开当前Linux路径对应的Windows资源管理器窗口(需Windows 10 2004+)。
2、若需打开Windows桌面,运行explorer.exe /mnt/c/Users/<用户名>/Desktop(替换为实际用户名)。
3、对于需要写入权限的敏感目录,可先在Windows中右键对应文件夹→“属性”→“安全”→添加Everyone用户并赋予“完全控制”,再返回WSL访问/mnt/c/Users/<用户名>/AppData/Local。

评论(0)