在 macOS 内使用大小写敏感的 APFS 卷存储代码

由于 macOS 默认分区和卷都是大小写不敏感的,对于开发者来说,通常需要面对的是大小写敏感的环境。并且,这个小差异的确带来了一些不便,例如 使用 Git 时遇到的坑。然而,自己又没有勇气重新格式化、装系统。直到最近,在跟同事聊天时给了我一个启发……

思路

macOS 最新的 APFS 文件系统支持在 Container 内任意创建 Volume(卷),比分区简单快捷很多,同时还可以单独指定是否大小写敏感。再加上 Unix 能够任意挂载的特性,因此我只需创建一个新卷,将项目文件移动过去,随后将该卷挂载至原代码目录即可。

具体操作方式如下。

步骤

创建大小写敏感的卷

首先,打开 Disk Utility,确保你的文件系统是 APFS;若是 HFS,请 升级

在左侧列表右键单击 Macintosh HD,选择 Add APFS Volume

给它起个名字,随后 Format 选择 APFS (Case-sensitive),务必注意大小写敏感。

确认无误后点击 Add 即可。

迁移数据

没有问题的话,新创建的卷应该已经挂载到 /Volumes/<NAME> 目录,接下来需要把原有代码文件移动到这个卷。使用 mv 命令,或是通过 Finder 操作均可。

修改挂载点

默认情况下,系统会将所有卷挂载至 /Volumes 目录下,以卷名区分。我的项目存放于 /Projects,因此需要将新卷挂载到该目录。

再次打开 Disk Utility,在左侧列表右键单击新创建的卷,选择 Get Info。点击 File system UUID 一行,使用 Command + C 复制出来:

File system UUID : XXXXXXXX-ABCD-DCBA-1234-XXXXXXXXXXXX

记住冒号后的 UUID。接下来点击 Unmount 按钮卸载该卷。

打开终端,使用 sudo vifs 即可编辑 /etc/fstab 文件,输入以下内容并保存:

UUID=XXXXXXXX-ABCD-DCBA-1234-XXXXXXXXXXXX <MOUNT_POINT> apfs rw 0 2

请注意将 <MOUNT_POINT> 替换为挂载目录,例如 /Projects。若该目录不存在,不要忘记创建它。

重新挂载

重新点击 Mount 按钮或是 mount -a 命令均可。

完成!效果如下:

file

结语

参考:

我感谢自己平凡,敢爱敢恨没负担。
我感谢自己不凡,可爱可恨都包揽。

讨论数量: 9
Cooper

区分大小写 ,有些软件不能安装,比如 adobe 系列。 :joy:

4个月前 评论

@Cooper 没关系,不格式化原数据盘,将新卷挂载到独立的目录,不影响软件安装。

4个月前 评论

这样倒是可以,但是如果是整个系统都是的话就不怎么方便了(之前也重新格盘重装过系统,因为部分软件由于这个大小写的问题无法使用,又重新格式化了~ :0 ) :joy:

4个月前 评论

@Cooper 看来你也干过这种事儿~ :sweat_smile:

4个月前 评论

还有一个就是。。。大佬真的比母猪都高产~ 实在佩服。

4个月前 评论
Cooper

@iMactool 系统重装的时候选了一个 区分大小写,装完就是 MMP 了。 :sweat_smile:

4个月前 评论

@iMactool 是的,还有比如 Steam... 所以默认还是不区分大小写,专门开个卷存代码大小写敏感吧。

不高产不高产 😂,其实最近还在谋划另外一件事情,所以博客更新偷懒了。

4个月前 评论
aen233

我也这么做的,基本是macOS入手基础配置项了

2个月前 评论
frowhy

不一定非要把磁盘格成大小写敏感的,曾经试过,后来放弃了,确实有很多地方不是很方便。码代码的时候注意就行了,而且我基本都是在虚拟机里跑程序的。。。

2周前 评论
Wi1dcard: 大小写敏感可以预防一些没有注意到的问题。 2周前
frowhy: @Wi1dcard 虚拟机不就是大小写敏感么 = = 2周前

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!