Apple 静悄悄地升级了数百万 iOS 设备的文件系统

  • Sergio De Simone
  • 大愚若智

2017 年 3 月 31 日

话题:移动iOS语言 & 开发

随着 iOS 10.3 的正式发布,数百万设备即将升级为使用 Apple 的全新文件系统APFS。然而根据多方评论,这是一次大胆,同时暗藏一定风险的举措。

APFS 亮相于去年 WWDC,InfoQ 也对其进行了报道,该文件系统将取代最初伴随 Mac OS 8.1问世,沿用将近 20 年的老旧 HFS+ 文件系统。APFS 增加了与ZFSHAMMER类似的大量新功能,包括对加密、写入时复制、灵活的分区、快照、原子化保存等功能提供了更好的支持。

与曾经安装过 iOS 10.3 测试版的开发者类似,在自己设备上安装 10.3 正式版的用户也会面临一个极为漫长的升级过程,似乎是因为要对文件系统进行转换,截至撰写本文时尚未听说这一过程出现过什么重大已知问题。

有趣的是,这是 APFS 首次正式登场,之前该文件系统仅通过开发者预览的形式出现在 macOS Sierra 中,并且包含诸多局限,例如无法将 APFS 格式的磁盘用作启动磁盘。因此 Apple 决定通过推送文件系统转换操作让上千万设备同时使用该文件系统,这一决定让人有些吃惊,毕竟这会导致任何潜在的问题被无限放大。正如 Ars Technica 的 Andrew Cunningham所说,考虑到 Apple 实际上控制着整个 iOS 平台,对于该平台所用硬件和分区架构的所有细节了然于胸,这一举措似乎显得很合理。此外 iOS 设备封闭的本质也使得未越狱用户基本不可能破坏掉设备的存储系统,这也让转换的效果更为可控。

然而这并不意味着升级到 APFS 的所有用户都不会遇到任何非预期的后果。macOS 和 iOS 开发者 Michael Tsai 在他的博客中写到,一些因素导致 APFS 与 HFS+ 之间存在一些固有的冲突,例如 APFS 并不会对 Unicode 文件名进行标准化,并且 APFS 允许同一个目录下使用多个同名文件,而仅名称字符的大小写有所差异。InfoQ 也将密切关注此类问题,如果有任何有趣的发现将在第一时间报道。

尽管技术上可以做到使用对用户来说完全透明的方式升级文件系统,但 Reddit 用户applishish介绍说,迁移工作实际上并未实际移动数据,而是直接将 APFS 元数据写入 HFS+ 的可用空间。这种方法的优势在于,如果转换过程中出现任何错误,用户依然具备一个可用的 HFS+ 分区。在同一个帖子中,Reddit 用户 1337Gandalf 称,Apple 的此番举措让人回想起 Microsoft 在推广 Windows XP 时应对 FAT32 卷升级未 NTFS 文件系统时的做法,不过当时用户可以自行选择是否要在升级系统的过程中同时升级到 NTFS 文件系统。

阅读英文原文Apple Quietly Upgrades the File System of Millions of iOS Devices

移动iOS语言 & 开发