You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何让Windows端以不区分大小写的方式访问WSL2的\\wsl.localhost\Ubuntu共享目录?

如何让Windows端以不区分大小写的方式访问WSL2的\wsl.localhost\Ubuntu共享目录?

嘿,我完全懂你的困扰——Windows应用都是按大小写不敏感的逻辑写的,哪想到访问WSL的共享目录时,因为Linux本身大小写敏感,换个大小写就找不到文件了。之前改wsl.conf没生效,大概率是配置项没选对或者没彻底重启WSL,我给你说几个靠谱的解决办法:

方法一:全局配置WSL挂载时开启大小写不敏感

这个方法能让整个Ubuntu发行版的文件系统在被Windows访问时忽略大小写,步骤如下:

  1. 先彻底关停WSL:打开Windows的PowerShell,输入 wsl --shutdown,确保所有WSL进程都停掉
  2. 进入Ubuntu终端,编辑wsl.conf文件:输入 sudo nano /etc/wsl.conf
  3. 在文件里添加以下配置内容:
    [automount]
    options = "metadata,umask=22,fmask=11,case=off"
    
    这里的case=off就是关键,它会让自动挂载的文件系统支持大小写不敏感访问
  4. 保存并退出nano编辑器:按Ctrl+O,回车确认保存,再按Ctrl+X退出
  5. 再次运行 wsl --shutdown 关停WSL,然后重新打开Ubuntu发行版,之后Windows端通过\\wsl.localhost\Ubuntu访问时,大小写就不影响了

方法二:给特定目录单独设置大小写不敏感

如果你不想全局改,只想让某个特定目录支持大小写不敏感,可以这么做:

  1. 先卸载目标目录(比如你的用户目录/home/joe):在Ubuntu终端输入 sudo umount /home/joe
  2. 重新挂载该目录并开启大小写不敏感:输入 sudo mount -o remount,case=off /home/joe
  3. 要是想让这个设置重启后依然生效,就编辑/etc/fstab文件:输入 sudo nano /etc/fstab,添加一行类似下面的内容(根据你的实际分区调整):
    /dev/sda1 /home/joe ext4 defaults,case=0 0 0
    
    这里的case=0代表大小写不敏感(case=1是默认的敏感模式)

为啥之前的配置没生效?

大概率是这两个原因:

  • 没彻底关停WSL:如果WSL还有后台进程在跑,修改的wsl.conf不会立即生效,必须用wsl --shutdown完全停掉再重启
  • 配置项写错了:之前可能加的是其他模块的配置,而不是[automount]下的options,只有这个模块的配置才会影响Windows通过\\wsl.localhost访问的挂载规则

备注:内容来源于stack exchange,提问作者Joe C

火山引擎 最新活动