为什么你崭新的 WD 移动硬盘在 Mac 上只能读不能写(问题不在硬盘)

less than 1 minute read

Published:

我把一块装满数据的西部数据(WD)移动硬盘插到 MacBook Air 上,想往里拷一个文件,结果什么都没发生。没有报错弹窗,没有进度条,就是一块能读出所有东西、却一个字节都写不进去的硬盘。我的第一反应是它坏了,或者是我得去修一下权限。这两个判断都是错的,而且顺着错误的解释找下去,差点让我把整台笔记本的安全性永久降级。

作者:Koutian WuGitHub: ktwu01

硬盘本身没问题。哪怕是最新、最贵的硬盘,也会一模一样。

这一点最出乎我意料,也值得直说:跨平台的读写能力,跟硬盘的硬件毫无关系。硬盘只是一个装存储的盒子。真正决定 macOS 和 Windows 能不能都往里写的,是它被格式化成的那个文件系统——这是格式化那一刻做出的软件决定,而不是刻在金属里的硬件能力。没有哪块”黑科技”硬盘能解决这个问题,因为硬盘上根本没有需要解决的东西。你尽管买最豪华的 WD、闪迪或三星的硬盘盒;只要它出厂时格式化成 NTFS,插上 Mac 就是只读,跟一个十块钱的 U 盘没有任何区别。

NTFS 是微软的格式,而苹果只买到了”读”的那一半授权。

大多数移动硬盘(包括几乎所有 WD 的产品)出厂预格式化为 NTFS,因为 Windows 是更大的市场,而 NTFS 是 Windows 的原生格式。macOS 能把 NTFS 得好好的,它只是故意不写。NTFS 归微软所有,微软没有把一个官方支持的写入驱动授权给苹果,于是苹果只提供只读支持,到此为止。这也是为什么 chmod 和那个权限标签页毫无用处:这不是权限问题,也不是 bug,而是操作系统层面缺了一个驱动。写入在”谁有资格做这件事”成为问题之前,就已经被拒绝了。

兔子洞:在 Mac 上获得 NTFS 写入权限,意味着要加载一个内核扩展。

大家最常伸手去够的免费路线,是通过 Homebrew 安装 macFUSE 加 ntfs-3g。它确实能用,但在 Apple Silicon 的 Mac 上(我的是 M4),macFUSE 是一个内核扩展,而 Apple Silicon 拒绝加载第三方内核扩展,除非你进入”恢复”模式,在”启动安全性实用工具”里把机器切换到”降低安全性”。再读一遍:为了往一块 U 盘里写东西,你被要求永久性地降低整台笔记本的启动安全级别。这是一个实打实的取舍,不是勾一个框那么轻描淡写,而且为了一次本该很简单的文件拷贝,这套流程实在太重了。Paragon NTFS for Mac(付费,约 20 美元)更省心一些,但在 Apple Silicon 上它同样要你批准一个系统扩展并重启,所以本质上并没有绕开同一个步骤。

更好的解法根本不碰 Mac 的安全设置。

一旦你想明白这是个格式问题,好的选项就变得显而易见了。如果这块硬盘在别的地方本来就是可读写挂载的——比如它原本所在的那台 Windows 电脑——那就直接在那边写;Windows 原生处理 NTFS,压根不需要任何 Mac 驱动。如果你需要从 Mac 长期访问它,就在 Windows 那台机器上把硬盘通过网络共享出来(SMB),让 Windows 去负责 NTFS 的写入,而 Mac 只做普通的网络文件操作。这两种做法都不会降级任何东西。

真正的长期解法,是重新格式化为 exFAT——一个正是为此而生的格式。

exFAT 在 macOS 和 Windows 两边都是原生可读写的,不需要驱动,不需要恢复模式,不需要重启。它能到处通用并不是偶然:exFAT 由微软创造,两家公司都支持它,目的就是让硬盘能在两个系统之间来回搬。要是我买硬盘那天就把它格式化成 exFAT,上面这一切都不会发生。代价是重新格式化会抹掉硬盘上的数据,所以流程是:先把数据拷到另一块盘或那台 Windows 电脑上,格式化成 exFAT,再拷回来。之后它就在两边都能用,永远如此。有一件事我绝对不会去做,就是那个老掉牙的 /etc/fstab 技巧——强行开启苹果自带的 NTFS 写入。那条写入路径是实验性的,且有实打实的”损坏数据”名声,而这正是你面对一块装满数据的硬盘时最不想遇到的事。

这些都不是什么高深的知识,但它属于那种”不咬你一口就看不见”的东西;而当它真咬你的时候,那个看起来最顺理成章的解法(装个驱动、批准扩展、重启)恰恰是完全错误的方向。硬盘从来都不是问题所在。格式才是——而格式,恰恰是你唯一能自己做主的那件事。

Related posts: