[HFS+的元数据有全局锁,同一时间只有一个进程可以访问更新文件系统。在单核处理器连手机平板都较少见到的当今,这种设计显得很幼稚。]
[HFS+亦没有稀疏文件的支持]
[此外,HFS+不具备元数据校验功能、快照功能、写入时复制功能、就地执行功能、逻辑卷管理功能等很多现代磁盘系统所具备的功能,也不能动态调整文件块大小。这些功能的加入并不容易。]
[其中最要命的是,HFS+不像一些先进的文件系统,支持写入时复制事务模型,也没有快照和克隆。这使得用户数据时时处于风险之中。例如由于因为断电、内核崩溃等原因,文件系统上写到一半的数据,小则导致个别文件损坏,大则导致整个文件系统崩溃。]
全文见 https://www.evernote.com/shard/s102/sh/f87ec062-7202-4159-923f-bb85ade713b4/3bdb40cdd132beb6
Apple 知道 HFS+这么不稳定,所以很早就搞出了 Time Machine ?
1
sfz97308 2017-06-02 16:37:08 +08:00
所以有了 APFS
|
2
QAPTEAWH 2017-06-02 16:44:49 +08:00
很多功能 ext4、ntfs 也没有嘛。只有真正比较新(unstable)的 fs 才有。
[文件系统上写到一半的数据,小则导致个别文件损坏,大则导致整个文件系统崩溃。] 一般日志型文件系统,断电会丢文件,整个挂掉没听说过。 |
3
Weny 2017-06-02 16:46:02 +08:00 via iPhone
APFS 这不马上都换上了嘛
|
4
ivmm 2017-06-02 16:47:07 +08:00
作为商业公司的苹果出 APFS,效率比开源社区的 FS 高
|
5
likuku 2017-06-02 16:54:20 +08:00
[此外,HFS+不具备元数据校验功能、快照功能、写入时复制功能、就地执行功能、逻辑卷管理功能等很多现代磁盘系统所具备的功能,也不能动态调整文件块大小。这些功能的加入并不容易。]
... 这些也只有 ZFS,btrfs 才具有好吗... |
6
Totato5749 2017-06-02 16:55:55 +08:00
macOS 上 APFS 遥遥无期
|
7
Oamin 2017-06-02 17:01:15 +08:00
iOS 已经换 APFS 了,就等 macOS 了。
|
8
WheatField 2017-06-02 17:02:29 +08:00 via iPhone
乔布斯曾说,计算机根本不需要文件系统
|
9
goodryb 2017-06-02 17:04:02 +08:00
https://zh.wikipedia.org/wiki/HFS%2B HFS+ 1998 年发布的
https://zh.wikipedia.org/wiki/Windows_XP Windows_XP 2001 年发布的 批判之前,先好好了解历史 |
11
Felldeadbird 2017-06-02 17:09:33 +08:00
用了 3 年多 MAC OS,没遇到过系统崩溃。也就试过一次为了解决环境问题,重新安装系统。
|
12
we000 2017-06-02 17:10:49 +08:00
|
13
porrat OP 还有 Mac 和 iOS 至今不支持增量更新,坑爹
|
14
milugt 2017-06-02 17:12:20 +08:00 via iPhone
所以你承认自己是脑残了?周末了刷一波存在感是吧
|
15
UnknownR 2017-06-02 17:12:29 +08:00
楼主你猜一下带这些功能的 ReFS 格式是几几年发布的,HFS+又是几几年发布的
|
19
shoaly 2017-06-02 17:22:52 +08:00
减少对 apple 的期待之后, 回归正常. 就发现这事很正常了
|
20
goodryb 2017-06-02 17:24:43 +08:00
@we000 #12
为什么落后到 2017 年就是大问题,用 Mac 也有两三年了,没遇到过文件系统相关的问题。作为一个 98 年发布的文件系统,难道要预测 20 年后的需求? APFS 也应在 iOS 上使用了,MacOS 也许过不了多久就能用上, 另外,你所说的“别家都知道升级 FS ”,请看下面的 https://zh.wikipedia.org/wiki/NTFS#.E7.89.88.E6.9C.AC 微软正式发布的 NTFS 版本有五个: v1.0,随 Windows NT 3.1 在 1993 年中旬发布[4]。v1.0 和 v1.1 和之后的所有版本不兼容。也即使用 NT 3.5x 写入的卷无法被 NT 3.1 读取。该问题的一个解决方案是使用 NT 3.5x 光盘更新 NT 3.1,并添加对 FAT 系统的长文件名支持。[6] v1.1,随 Windows NT 3.5 于 1994 年秋季发布。 v1.2,随 Windows NT 3.51 于 1995 年中旬发布。支持压缩文件、命名流、基于 ACL (访问控制列表)的安全性等功能。[1] v3.0,随 Windows 2000 发布。支持磁盘限额、加密、稀疏文件、重解析点[来源请求],更新序列数( USN )日志、$Extend 文件夹(及其中的文件),并改进安全描述符设计方案,允许使用同样的安全设置的多个文件共享一个安全描述符。[1] v3.1 随 Windows XP 于 2001 年秋季发布,而后也用于 Windows Vista 和 Windows 7。在 MFT 中提供冗余 MFT 记录数扩展项,可用于恢复受损的 MFT 文件。 不应将 NTFS.sys 文件版本(如 Windows 2000 中的 v5.0 )和 NTFS 磁盘格式版本(如 Windows XP 开始的 v3.1 )相混淆。[7] 后续的 Windows 的版本更新增加了许多文件系统相关的功能,但并没有改变 NTFS 本身。例如 Windows Vista 增加了 NTFS 符号链接、事务 NTFS、磁盘收缩和自我修复,但除了符号链接外其他功能其实都由操作系统实现。 |
22
sobigfish 2017-06-02 17:32:05 +08:00
我就想知道 磁盘高度文件碎片是不是 NTFS FAT 独有的
|
23
we000 2017-06-02 17:35:47 +08:00
@goodryb 问题就是慢啊, iPhone 改用 APFS 简直就是喜大普奔. 这么老的系统一直等到 2017 年才升级实在是说不过去. 事实上, HFS+发布的时候就是落后于时代的...
而且很多说没遇见过文件系统问题的朋友, 我个人拙见就是场景太简单, 如果作为一个服务器的应用场景, HFS+都不够格. 强调一遍, 个人意见, 拙见. |
24
ayang23 2017-06-02 17:40:59 +08:00
前几天刚刚在把一个文件夹 B 复制到 ntfs 移动硬盘的一个文件夹 A 下,结果移动硬盘供电不足中间断开,导致文件夹 A 整个丢失,B 下的原有文件也没了。操作系统是 ubuntu 16.04. 这个锅是 ntfs 的还是 linux 下 ntfs 驱动的就不知道了。起码说明 linux 下 ntfs 文件系统是不抗断电的,断电会导致文件夹整个消失。
|
26
gemini767 2017-06-02 18:04:58 +08:00
@goodryb 落后到 2017 年就是大问题的意思是一个 fs 用了快 20 年不更新是一个问题,apple 早应该迭代掉 HFS+,而并不是说 HFS+本身设计有问题
|
27
fatedier 2017-06-02 18:16:10 +08:00
@Felldeadbird 是因为你不是重度使用吗?我觉得稳定性非常一般,两年内死机,自动重启,黑屏,各种问题应该不下 10 次了,遇到问题都是重启解决。
|
28
honeycomb 2017-06-02 18:50:54 +08:00
|
29
nicevar 2017-06-02 19:00:37 +08:00
这是该更新换代了,用 mac 一定得用 time machine 时不时备份,文件系统挂掉几率还是有的,有时候系统升级就会导致,还有时候莫名其妙 volume 就不能挂载了
|
30
327beckham 2017-06-02 20:01:16 +08:00
我就想了解一下,macOS 的文件系统的过时,对于大家使用 macOS 系统,有没有带来什么样的负面影响?我个人,用了 8 年 mac 系统的程序员,目前还没有遇到文件系统的坑。
|
32
ItzhacLea 2017-06-02 22:26:00 +08:00
Time Machine 賴以實現的硬連結,個人覺得是非常不優雅的解決方案,它的實現方式參考如下:
As long as a file is not multi-linked, everything is fine; when it gets its first 'hard link' some major shuffling is needed. 1. Create the directory \0\0\0\0HFS+ Private Data if it doesn't already exist. 2. Grab the record for the original file (and its CNID) and put it in \0\0\0\0HFS+ Private Data. 3. Transform the original record from type 'hfs+' to type 'hlnk' and give it a new CNID (and make sure the thread CNID points to this new record instead). 4. Make a similar 'hlnk' record for the new file name. 所有被硬連結的文件都會放入「 HFS+ Private Data 」文件夾下,然後把原文件替換成一個指向該文件夾下相應文件的連結。#這文件夾崩了硬連結豈不美滋滋?# 幾年前玩黑蘋果的時候,想通過 Paragon HFS+ for Windows 查看 Time Machine 下的文件時,發現文件佈局和我在 macOS 下看的完全不一樣。當時的我還太年輕,不知命運給我的硬連結,都會有怎樣的代價。 |
33
ItzhacLea 2017-06-02 22:29:31 +08:00
忘了補上 ref: http://rixstep.com/2/20040621,00.shtml
|
34
lydasia 2017-06-02 22:49:06 +08:00 via iPhone
你也不看看 hfs+是什么年代的东西了。你看看 fat32 对大文件的支持和 exfat 的坑爹可靠性吧。
|
35
sinxccc 2017-06-02 22:55:06 +08:00
@327beckham 最直观的问题就是无处不在的 .DS_Store 文件了。
|
36
levn 2017-06-02 22:57:16 +08:00
当初企图换 zfs 没换成而已……
|
37
sinxccc 2017-06-02 22:57:20 +08:00
至于 Time machine 本身是个不错的备份方案,跟 HFS+ 的稳定性没什么大关系吧。即使后面有了新文件系统,TM 还是会继续存在,而且在效率和空间利用上应该会有提高。
|
38
daimao 2017-06-02 22:59:53 +08:00
哪家公司没有历史包袱
|
41
swsh007 2017-06-02 23:18:19 +08:00 via Android
fat 还能用,而像小米这种到现在也不支持在 tf 卡上支持 ext4.
|
42
ayang23 2017-06-03 00:03:13 +08:00
@honeycomb 那只能说同喜了。我用 photorec 恢复了所有的文件,但太杂乱。准备编个程序通过 exif 的 camera model 信息来找到我丢失的图片。
|
43
msg7086 2017-06-03 00:12:03 +08:00
@ayang23 只要数据没有写完,断电百分百会丢数据。
文件系统抗断电不是说数据没写完断电还能神奇地找回数据来,而是说突然断电不会导致文件系统本身爆炸。 |
44
ayang23 2017-06-03 00:42:24 +08:00
|
46
winglight2016 2017-06-03 13:44:55 +08:00
macOS 作为桌面电脑使用非常稳定,我有两个 mac,一个五年,一个三年半,都没有碰到过文件系统的错误,相对 windows 已经超出预期了。至于是否升级 HFS+,全新替换难度太高,容易出问题,只能一点点升级比较稳妥。服务器还是用 linux 比较靠谱,我从来没考虑过使用 macOS 作为服务器,估计苹果也没有。
|
47
cnZary 2017-06-03 15:46:59 +08:00
@winglight2016 Apple:不然你以为我做 macOS server 是为了什么.......
|
48
uyhyygyug1234 2017-06-03 21:41:29 +08:00
时间精度是 1 秒~
|
49
kojirou 2017-06-03 22:39:07 +08:00
win10 的文件剪切在断电时才是真的会丢数据
|
50
ecloud 2017-06-04 03:53:15 +08:00
谁知道当年 zfs 下马的内幕原因究竟是什么?
|