刚刚接触这个linux子系统,感觉坑比较多。原本打算在子系统中搭建openwrt编译环境的,结果发现与原生的或者虚拟的linux系统还真不一样啊。由于子系统默认将windows10系统的磁盘挂载为/mnt/分区名称(小写)的方式,方便了windows与linux的互访。但我在准备openwrt编译环境和准备编译的过程中,居然发现说我的子系统的目录不支持大小写敏感,导致后续编译工作无法继续。于是艰难的到微软开发组中心去啃了几篇文章,得到一些提示:
1、Per-directory case sensitivity and WSL这篇文章中提到在windows10系统中用fsutil.exe file setCaseSensitiveInfo <path> enable方式对子目录path赋予大小写敏感属性,但这样只能对path这一级目录有效,子目录无法继承该属性;
2、Improved per-directory case sensitivity support in WSL这篇文章提到可以在wsl在系统中直接用setfattr -n system.wsl_case_sensitive -v 1 <path>命令对子目录赋予大小写敏感属性,并说从windows10的build 17692版本开始新建的子目录可以继承上级目录的大小写敏感属性了,但我运行该命令缺提示Permission dennied!
最后的最后,我突然想到,既然新版windows10中linux在系统已经可以继承上级目录的大小写敏感属性了,能不能先在windows系统中对需要大小写敏感的目录(我的openwrt编译环境目录为lede)赋予属性,再来git源码编译呢?(即现在准备作为openwrt编译环境的分区中建立lede目录,然后在此分区中用fsutil.exe file setCaseSensitiveInfo lede enable赋予lede目录大小写敏感属性,再在wsl环境中git源码进行编译)一试,居然成功了!不敢独享,写出来给大家共勉,少踩坑吧。