macOS 文件系统的大小写敏感转换

栏目: 后端 · 发布时间: 7年前

内容简介:本文介绍如何通过命令转换一个大小写敏感的 macOS 文件系统到非敏感。感谢前不久因为硬盘事故重装了系统,无意重装时无意选择了 Case Sensitive(大小写敏感) 的 APFS 进行格式化。直到昨天安装 Steam 时发现安装后运行不了,查了一下原来是因为之前选择文件系统大小写敏感的原因,然后搜索到了 GitHub 上前文提到的 repo,了解到还有一系列应用比如 Creative Cloud 不能运行,索性晚上按照其提供的方法转换了文件系统格式。总体步骤如下:

本文介绍如何通过命令转换一个大小写敏感的 macOS 文件系统到非敏感。

感谢 https://github.com/cr/MacCaseSensitiveConversion 提供的宝贵经验,本文主要复述原作者提供的方法。

前不久因为硬盘事故重装了系统,无意重装时无意选择了 Case Sensitive(大小写敏感) 的 APFS 进行格式化。直到昨天安装 Steam 时发现安装后运行不了,查了一下原来是因为之前选择文件系统大小写敏感的原因,然后搜索到了 GitHub 上前文提到的 repo,了解到还有一系列应用比如 Creative Cloud 不能运行,索性晚上按照其提供的方法转换了文件系统格式。总体步骤如下:

  1. 解决现有系统下所有因为大小写造成的命名冲突
  2. 生成一个全新的 TimeMachine 备份
  3. 修改该备份中的一个关于大小写敏感的变量
  4. 从这个备份中进行恢复

解决问题之前的准备

尽量关闭磁盘加密,因为加密磁盘会极大的增加以下几个步骤的时间。

1. 解决命名冲突

可以借助上述 repo 中提供 casecheck.py 来检查现有系统中大小写不敏感时的文件冲突。这里的冲突是指例如 appstoreAppStore 两个目录在同一路径下,在大小写敏感的文件系统时它是合法的,但是在大小写不敏感的文件系统下就是有冲突的。我们要转换成大小写不敏感的文件系统首先要解决的就是这个问题。使用该脚本后会输出很多文件,理论上你要一个个手动处理这些文件。如果文件位于缓存路径下可以直接删掉,位于用户目录下则要自己决定如何避免命名上的冲突。

2. 做一个全新的备份

这点没什么好说的,TimeMachine 作为 macOS 自带应用,可以方便的把系统备份到一个硬盘上。建议备份完成后把备份文件再多存一份,这样即使后面的操作失败了,至少你还可以恢复到之前的大小写敏感的文件系统下。

备份之前确保已经完成了第一步的命名冲突。如果你之前已经有了备份而只进行的增量备份,可以把之前备份删除掉,进入到你的硬盘目录下,使用 tmutil 删除之前的备份,只保留最后一个:

查看有多少备份:

$ ls -l /Volumes/TimeMachiiine/Backups.backupdb/tin/
total 9
drwxr-xr-x@ 3 root  wheel  204 29 Aug 10:04 2016-08-29-100422/
drwxr-xr-x@ 3 root  wheel  204 29 Aug 11:05 2016-08-29-110526/
lrwxr-xr-x  1 root  wheel   17 29 Aug 11:08 Latest -> 2016-08-29-110526

删除之前的备份:

$ tmutil delete /Volumes/TimeMachiiine/Backups.backupdb/tin/2016-08-29-100422

千万不要使用 rm -rf 来操作备份中的文件,那样会损坏备份文件的结构导致备份无法恢复(我猜的)。

3. 改表备份文件中的一个标志

使用以下命令改变备份文件中关于大小写敏感的标志,其中 TimeMachiiine 是你存放备份的硬盘名, MacHD 是你现在系统的硬盘名。

$ sudo /System/Library/Extensions/TMSafetyNet.kext/Contents/Helpers/bypass \
    xattr -w com.apple.backupd.VolumeIsCaseSensitive 0 \
    /Volumes/TimeMachiiine/Backups.backupdb/tin/Latest/MacHD

4. 恢复系统

  1. 重启你的 Mac
  2. 按住 Cmd+R 后按开机键,进入恢复模式的系统
  3. 选择从 TimeMachine 恢复
  4. 选择你之前操作过的那个备份
  5. 进行恢复

恢复时会提示你要抹点目标硬盘所以你不需要手动格式化。如果之前操作进行的顺利,恢复完之后就完全解决了该问题。再次感谢文本头部提到的 repo 中提供的宝贵经验和脚本。


以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入浅出Ext JS

深入浅出Ext JS

何启伟、徐会生、康爱媛 / 人民邮电出版社 / 2010-5 / 69.00元

以用户为中心的时代,应用的界面外观变得越来越重要。然而,很多程序员都缺乏美术功底,要开发出界面美观的应用实属不易。Ext JS的出现,为广大程序员解决了这一难题。它有丰富多彩的界面和强大的功能,是开发具有炫丽外观的RIA应用的最佳选择。 本书是《深入浅出Ext JS》的升级版,涵盖了最新发布的Ext JS 3.2新特性,并对上一版的内容进行增补,充实了示例代码,同时补充了两个功能强大的实例。......一起来看看 《深入浅出Ext JS》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

在线进制转换器
在线进制转换器

各进制数互转换器

HEX HSV 转换工具
HEX HSV 转换工具

HEX HSV 互换工具