win10中wsl如何配置文件(夹)名区分大小写

本文介绍了解决Windows Subsystem for Linux (WSL) 2 中文件名大小写敏感性问题的方法。通过调整wsl.conf配置文件和注册表设置,可以实现在特定目录下区分文件名大小写的功能,提升WSL2环境下Linux开发体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

win10版本1803,内部版本17134.885
由于最近卸载了以前安装的 Legacy 版本的 wsl(ubuntu 16.04),然后重新安装了 ubuntu 18.04. 之后偶然发现居然只在wsl的根目录下创建的文件(夹)区分大小写,而 /mnt/c 和 /mnt/d 都不能区分大小写了。网上的文章大多是让大家使用 fsutil 工具来修改CaseSensitive Flag,但是这样并不能使子文件以及wsl创建的目录生效。
我根据查找的资料,总结了以下方法,来解决这个问题。

  1. 确定windows build 大于 17110,因为 17110 以前的版本不存在这个问题
  2. 进入 wsl,输入mount 命令,查看 /mnt/c 等路径的信息

rootfs on / type lxfs (rw,noatime)
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,noatime)
proc on /proc type proc (rw,nosuid,nodev,noexec,noatime)
none on /dev type tmpfs (rw,noatime,mode=755)
devpts on /dev/pts type devpts (rw,nosuid,noexec,noatime,gid=5,mode=620)
none on /run type tmpfs (rw,nosuid,noexec,noatime,mode=755)
none on /run/lock type tmpfs (rw,nosuid,nodev,noexec,noatime)
none on /run/shm type tmpfs (rw,nosuid,nodev,noatime)
none on /run/user type tmpfs (rw,nosuid,nodev,noexec,noatime,mode=755)
binfmt_misc on /proc/sys/fs/binfmt_misc type binfmt_misc (rw,noatime)
C: on /mnt/c type drvfs (rw,noatime,uid=0,gid=0,case=off)
D: on /mnt/d type drvfs (rw,noatime,uid=0,gid=0,case=off)

可以看到 C: 和 D: 的挂载选项是 case=off,关于这个选项的说明如下表:

case=dircase=offcase=force
Flag为enable的目录Case SensitiveCase SensitiveCase Sensitive
Flag为disable的目录Case InsensitiveCase InsensitiveCase Sensitive
wsl中创建目录的FlagEnabledDisabledEnabled
  1. 我们可以通过创建或者修改 /etc/wsl.conf 来进行配置。
[automount]
options = "case=dir"
  1. 然后 exit 退出控制台,重新打开 wsl 即可(也有需要重启计算机才能生效的情况)。
  2. 注意,如果你希望使用 case=force 选项,那么你还需要在管理员权限的powershell下执行以下命令
reg.exe add HKLM\SYSTEM\CurrentControlSet\Services\lxss /v DrvFsAllowForceCaseSensitivity /t REG_DWORD /d 1

好了,现在大家就可以愉快的享受“完美”的 Linux 体验了。
注意:由于微软不愿意花费人力与资源,wsl 目前没有办法在 64位系统下运行 32 位的程序。

引用:
Per-directory case sensitivity and WSL
Automatically Configuring WSL
Improved per-directory case sensitivity support in WSL

附一个遍历文件夹修改 CaseSensitive 的 BAT 脚本

for /R /d %%i in (*) do (
    fsutil.exe file setCaseSensitiveInfo "%%i" enable
)
pause
### 如何在 Windows 10 上配置 WSL (Windows Subsystem for Linux) #### 启用 WSL 功能 为了使能在 Windows 10 中使用 WSL,需先启用此功能。可以通过 PowerShell 执行以下命令来开启: ```powershell dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart ``` 这一步骤会激活必要的组件以便支持 Linux 子系统的运行[^1]。 #### 安装适用于 Linux 的内核更新包 对于某些版本的 Windows 10 来说,还需要单独下载并安装最新的 Linux 内核更新包。可以从 Microsoft Store 或者官方文档链接获取最新版的内核更新程序,并按照指示完成安装过程[^3]。 #### 获取 Linux 发行版 前往 Microsoft Store 并搜索想要使用的 Linux 发行版(例如 Ubuntu)。点击“获取”按钮将其安装到计算机中;一旦安装完毕,则可通过开始菜单找到对应的发行版应用图标启动之[^2]。 #### 初次初始化与用户创建 首次启动所选的 Linux 发行版时,系统将会经历一次性的初始化流程,在这个过程中需要设定用户以及密码用于后续登录验证目的。注意这里的账户信息仅限于该特定的 Linux 环境内有效[^4]。 #### 配置文件共享选项 为了让两个不同操作平台之间更好地协作交流,可以考虑调整默认行为使得 Windows 文件能够被 WSL 下面的 Linux 更加便捷地访问。具体做法是在 `.wslconfig` 文件里加入如下所示的内容片段: ```ini [wsl2] filesharing = ["Users", "Documents"] ``` 上述设置意味着将 `C:\Users\YourUsername` 和其他指定路径下的资料开放给 WSL 使用。 #### 更新和维护 随着时间和需求变化,定期检查是否有新的补丁发布非常重要。不仅包括 Windows 自身的安全性和功能性改进,也涵盖了各个已安装 Linux 版本所提供的软件包升级服务。保持整个生态链处于最佳状态有助于提高工作效率的同时减少潜在风险隐患。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值