原来 Mac 和 iPhone 的文件系统 HFS+这么烂

2017-06-02 16:32:22 +08:00
 porrat

[HFS+的元数据有全局锁,同一时间只有一个进程可以访问更新文件系统。在单核处理器连手机平板都较少见到的当今,这种设计显得很幼稚。]

[HFS+亦没有稀疏文件的支持]

[此外,HFS+不具备元数据校验功能、快照功能、写入时复制功能、就地执行功能、逻辑卷管理功能等很多现代磁盘系统所具备的功能,也不能动态调整文件块大小。这些功能的加入并不容易。]

[其中最要命的是,HFS+不像一些先进的文件系统,支持写入时复制事务模型,也没有快照和克隆。这使得用户数据时时处于风险之中。例如由于因为断电、内核崩溃等原因,文件系统上写到一半的数据,小则导致个别文件损坏,大则导致整个文件系统崩溃。]

全文见 https://www.evernote.com/shard/s102/sh/f87ec062-7202-4159-923f-bb85ade713b4/3bdb40cdd132beb6

Apple 知道 HFS+这么不稳定,所以很早就搞出了 Time Machine ?

13408 次点击
所在节点    程序员
51 条回复
swsh007
2017-06-02 23:18:19 +08:00
fat 还能用,而像小米这种到现在也不支持在 tf 卡上支持 ext4.
ayang23
2017-06-03 00:03:13 +08:00
@honeycomb 那只能说同喜了。我用 photorec 恢复了所有的文件,但太杂乱。准备编个程序通过 exif 的 camera model 信息来找到我丢失的图片。
msg7086
2017-06-03 00:12:03 +08:00
@ayang23 只要数据没有写完,断电百分百会丢数据。
文件系统抗断电不是说数据没写完断电还能神奇地找回数据来,而是说突然断电不会导致文件系统本身爆炸。
ayang23
2017-06-03 00:42:24 +08:00
@msg7086 恩,我这文件系统已经出错了,目录丢了。

@honeycomb 最新消息,目录找回来了。方法是在 windows10 下加载移动硬盘,就会看到丢失的目录,但不能打开,弹出一个对话框说有错,然后我用系统自带的磁盘修复工具扫描了不到一分钟就修好了。所有文件都在!你可以一试。

总结:1. NTFS 确实牛逼,2. linux 下的 ntfs 工具和驱动可能都和 windows 下的有差距。
Valyrian
2017-06-03 00:43:35 +08:00
@sinxccc 那个文件和文件系统没有关系好吧
winglight2016
2017-06-03 13:44:55 +08:00
macOS 作为桌面电脑使用非常稳定,我有两个 mac,一个五年,一个三年半,都没有碰到过文件系统的错误,相对 windows 已经超出预期了。至于是否升级 HFS+,全新替换难度太高,容易出问题,只能一点点升级比较稳妥。服务器还是用 linux 比较靠谱,我从来没考虑过使用 macOS 作为服务器,估计苹果也没有。
cnZary
2017-06-03 15:46:59 +08:00
@winglight2016 Apple:不然你以为我做 macOS server 是为了什么.......
uyhyygyug1234
2017-06-03 21:41:29 +08:00
时间精度是 1 秒~
kojirou
2017-06-03 22:39:07 +08:00
win10 的文件剪切在断电时才是真的会丢数据
ecloud
2017-06-04 03:53:15 +08:00
谁知道当年 zfs 下马的内幕原因究竟是什么?
likuku
2017-06-05 10:49:19 +08:00
@ecloud 授权不兼容是最大可能...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/365499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX