重新连接未正确断开的磁盘到OS X时,禁用磁盘检查。

如果在未先弹出的情况下断开可移动驱动器,下次连接时,Windows或Mac会对磁盘运行 fsck 检查以确保数据完整性。Windows会询问是否要检查错误,而OS X则在后台执行。 USB3 磁盘在OS X中经常会莫名其妙地断开连接。如果磁盘在数小时内没有使用过,我知道没有问题。在Windows上,我可以简单地拒绝运行检查。而在OS X上,我只能坐在那里等待30分钟,而fsck 在我的磁盘上疯狂操作。这种情况每天都发生,所以OS X会很快损坏我的硬盘。(自回答发布以来,此段落已经编辑过。) 如何禁用这个检查?我可以通过非原生驱动程序连接吗?我可以运行一些东西来翻转磁盘上的标志,告诉OS X磁盘被不正确地断开了吗?我可以更改磁盘格式吗?我可以禁用连接驱动器时设置'不正确断开'标志的任何东西,然后在正确弹出时取消设置吗?我很绝望,因为Mac只有一个小硬盘,现在我无法使用外部设备。无论多么hacky或不合适,都会非常感激任何指导!我尝试通过VirtualBox或Parallels中的Windows访问驱动器,但在OS X停止fsck之前它们无法看到驱动器。 我相信文件系统状态是我需要忽略/覆盖的状态/设置。 该磁盘是exFat格式,使用主引导记录,并且OS X版本为10.11.3。更新:现在在另一个USB插口上也发生了这种情况,使用的是闪存盘(之前只在报告自己为不可移动的HDD上看到过这种情况)。 我所居住的国家没有苹果维修中心,这个磁盘不用于频繁访问的文件,如果有损坏的可能性(例如,在写入磁盘期间或之后突然断开连接),我会进行检查,而且我一直都拒绝在Windows上进行检查(几十年来)因为我唯一遇到过的损坏是由于检查本身引起的。

4我从活动监视器强制终止了fsck_exfat进程。 我已经向苹果提交了一个问题,反映他们没有提供任何关于该进程正在运行的可视指示。我建议他们将磁盘显示为灰色,并在上面添加一个进度圆圈叠加层。 - P i
非常感谢你,你帮我省了好几千美元。花了我好几个月才意识到这是一个fsck_exfat的问题 - 两年后我终于能够再次打开我的硬盘了。 - Jonca33
1个回答

打开终端并输入:
#Get the disk identifier of the ExFAT partition
diskutil list
#Get the UUID of the ExFAT volume with diskXsY being its disk identifier
diskutil info /dev/diskXsY
#Create and edit /etc/fstab 
sudo vifs
在激活插入模式后(例如使用I),添加一行以下内容的代码。
#Replace the UUID below by the one found earlier!
UUID=2FECDB7A-15F0-36F9-9A47-483B9669D6DC none exfat rw,auto 0 0
按下 esc 键退出插入模式。输入 :w! 将文件写入磁盘,输入 :q 退出 vifs。 重新启动您的 Mac。 最后的 0 应该禁用 fsck。
另一种方法可能是:将/sbin/fsck_exfat重命名为/sbin/fsck_exfat.paralyzed。
sudo mv /sbin/fsck_exfat /sbin/fsck_exfat.paralyzed
由于/sbin/fsck_exfat只是一个链接,您可能还需要将原始文件重命名为/System/Library/Filesystems/exfat.fs/Contents/Resources/fsck_exfat。
两种方法都推荐!相反,应该修复USB插座。

非常感谢 @klanomath,我会测试每一个更改并回报(并接受你的答案)。昨天我花了很多时间寻找这些细节 - 非常感激。在我待在一个有苹果服务中心的国家之前,我将手动运行 fsck_exfat - Chris
@Chris 我无法适当地测试这两种方法中的任何一种。所以它们都有一些推测性质。但第一种方法在 man fstab 中提到过。 - klanomath
UUID在diskutil info命令中没有返回,并且根据this answer(以及许多其他资源)并不容易获取。但是由于fstab已经有了一行使用LABEL=DISKLABEL的设置。我测试的一个驱动器断开连接后重新出现所需的时间并没有减少,但是在添加这行之前,64GB的闪存只需要3秒钟,也许flash fscks更快。我已经为我的外部硬盘添加了这行,并将在下次它消失时进行反馈。即便使用sudo命令,另一种方法也会报告“操作不允许”。 - Chris
@Chris 使用LABEL=而不是UUID=是一种可能的且被允许的选项。在El Capitan中,重命名/sbin/fsck_exfat也是可能的(你在问题中没有指明你的系统)。在禁用SIP之后。 - klanomath
我的诊断是错误的 - 另一个USB插口上的不同硬盘,使用不同的电缆也会随机断开连接,只是这一次笔记本电脑或电缆附近没有任何东西,所以我怀疑这不是物理问题。问题总是出现在USB3接口上,硬盘可能处于低功耗状态,其他USB3设备正常工作,所以我现在怀疑有其他设备干扰了USB3外部存储驱动程序,可能是另一个设备在总线上进行非法操作(比如我的Native Instruments Audio 8)。(可能与此无关,但USB3外部硬盘从未通过USB3集线器连接,而USB3闪存驱动器则可以,外部硬盘通过USB2集线器时间不定地连接。) - Chris
谢谢,一直试图避免这样做,但我会禁用SIP。抱歉,我使用的是OS X 10.11.3。 - Chris
1@Chris 重命名文件后,你可以重新启用SIP!但是,在更新OS X之后,这些文件可能会被较新的版本替换! - klanomath
还在字符串rw,auto中添加了noasync,希望能够防止写缓存。 - Chris
我实施了这两个解决方案,但磁盘断开连接了。当我重新连接驱动器时,它转动了20多分钟,然后像以前一样出现在Finder中。所以我非常感谢详细的解决方案,但不幸的是它们似乎没有起作用 - fsck已运行,但仍然找到并重命名。我可以删除文件的执行权限,但直到fsck完成后驱动器才出现在Finder中(哎呀,没想到要检查正在运行的进程)。 - Chris
我后来遇到了其他人,他们抱怨说如果在OS X中连接外部驱动器超过几个小时,有时会自动断开连接。现在我尽量少连接我的外部硬盘驱动器,只连接足够长的时间来移动我需要的文件到闪存盘上。我猜每个操作系统都有它的烦恼。 - Chris
我最近多次注意到闪存盘会突然无缘无故断开连接,然后我就会听到OS X发出的“先断开连接”的声音。我还有一块SSD硬盘,除非我在启动时将其连接上,否则它无法连接。我的理解是,OS X对外部驱动器的连接存在问题,无论是连接还是保持连接都很糟糕。这真的让我担心,因为我依赖外部硬盘来进行演出,如果一个硬盘消失或者无法工作,我就会陷入大麻烦。除了带上几个相同的硬盘(同步和端口的噩梦),您有什么加强连接的建议吗? - Chris
1@Chris 我有很多外接硬盘(FW/USB2/USB3),在使用OS X时从未遇到任何问题。不过,我一直坚持使用GUID/OSX Journaled格式。这主要取决于外接硬盘的固件和控制芯片(USB->SATA),以及连接线的质量。 - klanomath
@klanomath,你真是耐心如圣人!这是一个非常好的观点 - 我所有的外部硬盘都是exfat格式。我现在正在格式化一个断开连接的闪存,并将在插入一天后回报结果。非常感谢你容忍我无知的挫折。 - Chris
1@klanomath 我认为启用日志记录是答案!我不再遇到“先断开连接”错误了,我可以经常断开和重新连接,即使我不弹出,OS X 也运行正常,我可以通过USB2、USB3甚至通过2个集线器连接而不会出现问题。我甚至都不会注意到一个短暂的断开连接。因为我与Windows和Ubuntu用户合作,所以我将携带一个带有Paragon HFS+的驱动器给同事们使用。我刚刚安装了Parallels Access试用版来尝试NTFS,但我怀疑它并不是近核心/本地化的解决方案。@klanomath 非常感谢,真的非常感谢您帮助我度过这个难关,这简直是一种巨大的解脱。 - Chris
确切地说,我按照第一种方法做了,但没有起作用。当我连接驱动器时,它仍然出现同样的问题(运行无休止的fsck_exfat)。 - Can Poyrazoğlu
2@CanPoyrazoğlu 很遗憾,我从来没有找到一种方法来禁用这个检查,或者解决间歇性的断开连接问题。甚至买了一台全新的Mac,它仍然会随机断开连接,然后在重新连接时翻滚。唯一的“解决办法”就是只使用日志记录的磁盘,这样至少在磁盘自检时不会有巨大的延迟。但是对于那些对于微秒级断开连接非常敏感的东西,比如外部磁盘上的Docker,在macOS上根本无法工作。真是令人震惊的是,这样一个基本的事情居然被留下了破损的状态。 - Chris
4@Chris虽然我理解苹果希望一切都“受控”和稳定,但我希望他们至少提供一种方法,即使默认禁用也可以跳过对高级用户的检查。 - Can Poyrazoğlu
1这并没有明确说明是要将卷UUID还是分区UUID添加到/etc/fstab文件中。 - Kallaste