如何让Windows端以不区分大小写的方式访问WSL2的\\wsl.localhost\Ubuntu共享目录?
如何让Windows端以不区分大小写的方式访问WSL2的\wsl.localhost\Ubuntu共享目录?
嘿,我完全懂你的困扰——Windows应用都是按大小写不敏感的逻辑写的,哪想到访问WSL的共享目录时,因为Linux本身大小写敏感,换个大小写就找不到文件了。之前改wsl.conf没生效,大概率是配置项没选对或者没彻底重启WSL,我给你说几个靠谱的解决办法:
方法一:全局配置WSL挂载时开启大小写不敏感
这个方法能让整个Ubuntu发行版的文件系统在被Windows访问时忽略大小写,步骤如下:
- 先彻底关停WSL:打开Windows的PowerShell,输入
wsl --shutdown,确保所有WSL进程都停掉 - 进入Ubuntu终端,编辑wsl.conf文件:输入
sudo nano /etc/wsl.conf - 在文件里添加以下配置内容:
这里的[automount] options = "metadata,umask=22,fmask=11,case=off"case=off就是关键,它会让自动挂载的文件系统支持大小写不敏感访问 - 保存并退出nano编辑器:按
Ctrl+O,回车确认保存,再按Ctrl+X退出 - 再次运行
wsl --shutdown关停WSL,然后重新打开Ubuntu发行版,之后Windows端通过\\wsl.localhost\Ubuntu访问时,大小写就不影响了
方法二:给特定目录单独设置大小写不敏感
如果你不想全局改,只想让某个特定目录支持大小写不敏感,可以这么做:
- 先卸载目标目录(比如你的用户目录
/home/joe):在Ubuntu终端输入sudo umount /home/joe - 重新挂载该目录并开启大小写不敏感:输入
sudo mount -o remount,case=off /home/joe - 要是想让这个设置重启后依然生效,就编辑
/etc/fstab文件:输入sudo nano /etc/fstab,添加一行类似下面的内容(根据你的实际分区调整):
这里的/dev/sda1 /home/joe ext4 defaults,case=0 0 0case=0代表大小写不敏感(case=1是默认的敏感模式)
为啥之前的配置没生效?
大概率是这两个原因:
- 没彻底关停WSL:如果WSL还有后台进程在跑,修改的wsl.conf不会立即生效,必须用
wsl --shutdown完全停掉再重启 - 配置项写错了:之前可能加的是其他模块的配置,而不是
[automount]下的options,只有这个模块的配置才会影响Windows通过\\wsl.localhost访问的挂载规则
备注:内容来源于stack exchange,提问作者Joe C




