移动硬盘使⽤什么⽂件系统格式
起因
为什么要研究这个问题呢?我最近为了将⼀部 1080p 的电影从 Windows 拷贝到 Mac, 将移动硬盘其中⼀个分区格式成 exFAT。结果拷贝完之后(可能是没有弹出直接拨线了,记不清了),硬盘在 Mac 中两个分区都识别不出来了,不单单是 exFAT 那个分区,连我备份资料的HFS+ 分区也识别不出来。吓了我⼀跳,折腾了⼀天才将资料拷贝回来。
为此我搜索了⽂件系统格式的区别,也看了些知乎的答案。先将我⾃⼰的结论放到前⾯,有兴趣再看后⾯理由。
移动硬盘没有必要不⽤分区,就格式成你最常⽤的系统格式。假如你主要是⽤ Mac, 就格式成 HFS+(Mac OS 扩展);假如主要是⽤Windows,就格式成 NTFS。假如你同时⽤ Mac 和 Windows,都需要备份,就买两个移动硬盘,⼀个格式成 HFS+, ⼀个格式成 NTFS。再购买⼀个 64G(或 128G)的 U 盘,格式成 exFAT, ⽅便拷贝资料。
理由
对于我来说,移动硬盘的主要作⽤是备份资料,不是临时将资料拷来拷去,最重要是安全,⽽不是⽅便。
安全和⽅便同时满⾜当然最好,但安全和⽅便往往是⽭盾的,太追求安全就不够⽅便,太追求⽅便就不够安全。当没有出事的时候,普遍⼈都是贪图⼀时⽅便,当真正出事的时候,才会后悔。我也是这样的啦,⽤备份资料的移动硬盘去分区拷电影,就是⼀种不够谨慎的⾏为。
为什么我那样想拷电影呢?因为我最近搬家了,买了⼀部 55 ⼨的电视,很想试试在⼤屏幕上看电影会有多清晰。⽽刚搬家,⽹线还没有从旧地址迁移过去,家⾥没有⽹络。于是就在公司 Windows 上挂着迅雷下电影,同时下载 1080p 和 4k 的《⾦刚》(2005 版),想对⽐⼀下。周五晚下班下载完那个 1080p 的,就⽤移动硬盘先将 1080p 的拷贝回去。其实我是有个 64G 的 U 盘的,只是快下班了,嫌它拷贝慢。结果就出问题了,Mac 识别不出来了,看不成电视,周末还要去折腾。
原谅我啰啰嗦嗦离题了,⾔归正传。假如你认同我的观点,移动硬盘⽤于备份资料,安全性⽐⽅便性更重要。移动硬盘⾃然选择带有⽇志(Journaling)功能的⽂件系统,Mac 上就是 HFS+ 和 APFS, 其中 HFS+ 主要⽤于传统的机械磁盘,APFS ⽤于 SSD 磁盘。⼤容量的移动硬盘通常是机械磁盘。Windows 上带⽇志功能的只有 NTFS。⽽ U 盘主要⽤于临时拷贝⽂件,⽅便性⽐安全更重要。可同时被 Mac 和Windows ⽅便读取的格式就只有 Fat32 和 exFAT。其中 Fat32 不⽀持⼤于 4G 的⽂件,就被排除了。所以 U 盘格式成 exFAT。exFAT 没有⽇志功能,出错了不可恢复,但没有关系,最多就重新格式⼀下。
当然你可以不认同我基本观点,觉得⽅便使⽤更重要。⾃然也可以⽤移动硬盘去拷贝资料,它速度快些。⽆关系,我只说⾃⼰的理由,作为参考。
上述假设在 Windows 和 Mac 上使⽤,假如在 Linux 上使⽤移动硬盘呢?我其实不知道。但绝⼤多数⼈都是使⽤ Mac 和 Windows, 使⽤Linux 基本是些专业⽤户,也不会被移动硬盘使⽤什么⽂件系统这种琐碎婆妈的问题难住。
其它讨论
中国黑道排行榜很多⼈使⽤移动硬盘主要是⽤来存放电影,⽐如存储了⼀堆经典电影,想在智能电视或者在电视盒⼦上⾯看。这些安卓智能设备只认Windows ⽂件格式,⽐如 NTFS 或 exFAT, 不认 Mac 格式。这种情况下,就算你是⽤ Mac 电脑,也只能将存放电影的移动硬盘格式成NTFS。但这时需要再购买⼀个移动硬盘,专门⽤于存放个⼈资料。个⼈资料和经常观看的电影在物理上隔离,⽽不应该⽤同⼀个移动硬盘分区。
移动硬盘存放资料,但资料的重要性是不同的。越跟个⼈密切相关的资料就越宝贵,⽐如包含回忆的照⽚,⾃⼰写过的代码或⽂章,亲⼿画的设计稿,房⼦装修的⽔电布局图。这些个⼈资料是⽆价的,失去就再也不回了,甚⾄会遗憾⼀⽣,⽐如丢失逝去亲⼈的录⾳或照⽚。⾄于⾼清收藏的电影、漫画、书籍、⾳乐,舍不得删除,时不时就拿出来翻翻。这种公共资料虽然也珍贵,但丢失了只会⼼痛
⼀下,也可以回来。⾄多挂着⽹,⼀天⼆⼗四⼩时重新下载。
假如你真关⼼个⼈资料,⽽存放电影的移动硬盘经常需要连接各设备,拿出来翻翻。就应该将个⼈资料和公共资料的移动硬盘从物理上分开。通常越个⼈的资料容量越⼩,⼀些不怕公开的照⽚存放在云盘上,其它私密资料在家⾥电脑上存放⼀份,移动硬盘上放⼀份,公司电脑存放⼀份基本就⾏了。
来自星星的你 豆瓣NTFS 在 Mac 上默认可读,但不可写⼊,那假如我在 Mac 上下载了⼀部电影,想放到 NTFS 的移动硬盘上,到电视上看怎么办。通常来说,资料读的频率会⽐写的频率⾼得多。想在 Mac 上写⼊ NTFS,可使⽤ mount_ntfs 来加载⼀下,搜索⼀下 mount_ntfs 关键字就可到教程。有个免费软件 Mounty for NTFS 的软件为 mount_ntfs 添了个图形界⾯。嫌 mount_ntfs 不够稳定,也可以⽤虚拟机去装个 Windows, 利⽤虚拟机将⽂件写⼊ NTFS。
有些⼈会觉得会很⿇烦啊,⾃⼰不会,也不想弄。只想⽅便些的,难道就没有⼀种⽂件格式⼜安全,⼜可⽅便同时让 Mac 和 Windows 读写吗?很遗憾,暂时没有。exFAT 够⽅便,但不够安全。
有些⼈可能会觉得⽤移动硬盘备份,再⽤ U 盘拷贝⼜⿇烦⼜费钱,⾃⼰太穷花不起。但其实 1T 的移动硬盘 350 左右,2T 的移动硬盘 500左右,64G 的 U 盘 60 左右,128G 的 U 盘 100 左右。这个钱还是花得起的。不然拿着个移动硬盘去打印店打印,出问题了,再花上移动硬盘⼏倍的钱去修复,并且会很⿇烦。
有些⼈觉得将 exFAT 说得太不安全了,⾃⼰很⼩⼼的,每次都弹出再拨线,没有啥问题的。我⾃问算是很⼩⼼的⼈了。锁门后会⾝体撞撞看看有没有真正锁上,有时下了楼会再跑上去再看看。每个⽹站使⽤⼀个随机密码。加完班,觉得打的回家上⾼速不安全,宁愿⾃⼰花钱坐地铁,就算打车可以报销。但就算我这种⼩⼼的⼈也遇到问题了。当你很想着做某件事时,往往⾃动忽略其它事,危险就在此时发⽣。就算
⾃⼰知道每次都弹出在拨线,有时也会出现不⼩⼼碰到移动硬盘,就断电了。其实我最后也不清楚是否真的是这个 exFAT 的问题,也有可能冤枉了它,只是我不想再试了。
总结⼀下,我认为移动硬盘主要⽤于备份,安全性⽐⽅便性更重要,选⽤带⽇志功能的⽂件系统,也不要经常将资料拷来拷去。真正需要拷贝资料使⽤ U 盘。
飞镖规则总结完毕,但这篇⽂章还没有完。接下来说明⼀些基本概念,做个记录。也可当成科普。
⽂件系统
上⾯提到⽂件系统,以及 NTFS、exFAT 等名词,可能有⼈不清楚具体意思。在我刚接触电脑的时候,也没有⽂件系统这个概念。我只知道C 盘、D 盘、E 盘,只知道装个软件就可以看电影,电影放到 D 盘的某个⽂件夹下。
这就是⽂件系统给我们的好处,让我们直接使⽤路径、⽂件夹、⽂件等具体直观的概念。⽽不⽤直接接触扇区、磁道,⼀个个⼆进制位。磁盘存放的都是⼆进制数据,⼆进制数和⼆进制数据之间,其实没有任何区别。磁盘本⾝并不知道这⽚区域存放的到底是什么东西,是电影、是⾳乐、是软件。磁盘只管存储⼆进制数据,⼆进制数据本⾝代表什么,磁盘根本不在乎。
读取磁盘的⼆进制数据,并将其理解成⼀个个⽂件夹,⼀个个路径、⼀个个电影,是操作系统的任务。读写磁盘的数据需要按照⼀定的规则进⾏,⼤家约定好规则,你按照⼀定规则写⼊,我才能按照规则理解读取出来。假如没有规则,将数据写⼊磁盘是任意的,数据就全乱了,不能识别了。
这种将⽂件如何存放到磁盘的规则,就叫⽂件系统。规则约定如何存放⽂件、如何存放路径、如何存放⽂件夹,只要遵守相同的规则,Mac 存放进去的⽂件,Windows 就可以读取出来。
⽂件存放的规则有很多套,不同的操作系统,规则都有所不同。有些规则是公开的,有些规则是系统私密的。因此就有多种不同的⽂件系统格式,NTFS 是⼀种⽂件系统格式,exFAT 是另⼀种⽂件系统格式。不同⽂件格式都有基本相同的抽象,有⽬录、有路径,就算底层的⽂件系统不同,⽤户的操作习惯都是相同的。
格式化(format)
磁盘格式化,是对磁盘或者分区进⾏初始化。按照⽂件系统定义的规则写⼊基本的数据。⽐如使⽤ NTFS 进⾏格式化后,磁盘的固定位置就记录下这个信息。操作系统载⼊这个磁盘后,从固定位置读取这个信息后,就知道后续的所有读写都按照 NTFS 定义的规则进⾏。
这种初始化会导致现有的磁盘或分区中所有的⽂件被清除。这就导致很多⽤户错误认为,格式化就是清除所有,U 盘格式化,U 盘⾥⾯的东西就没有了。
通常操作系统会同时⽀持多个⽂件系统格式,在磁盘开始位置读取到这个分区是使⽤了什么⽂件系统。假如识别到 NTFS,就按照 NTFS 的规则进⾏读写,识别到 extFAT 就切换到 extFAT 的规则进⾏读写。假如操作系统不⽀持这种⽂件系统,就不能将其中数据读取出来。
快速格式化和⼀般格式化
在 Windows 的格式化对话框中,会有个“快速格式化”的勾选框。勾选后就是快速格式化,不勾选就是⼀般格式化。
他们的区别在于,快速格式化只写⼊基本的数据,清除掉⼀些索引信息,这样所有⽂件索引不到,被认为不存在了,但实际其真正内容还在磁盘中。
⽐如你的某张照⽚内容,在磁盘的 1000 位置。索引信息在开始的位置,当还没有格式化时,系统通
过索引⼀级⼀级到照⽚在磁盘的位置,可以读取到照⽚的资料。当快速格式化时,将基本数据写⼊磁盘 0 到 100 的位置,于是 0 到 100 原有的信息就被覆盖清除掉了。系统就认为这个磁盘中没有⽂件,但实际上 101 到 100000 的位置,数据还是原来的数据,你的照⽚内容还在原来的磁盘位置,只是索引丢失就不到了。
快速格式化⼗分快。⽂件的内容其实还在的,就算经过快速格式化,利⽤⼀些软件,还是可以恢复原来的数据。
⼀般格式化除了写⼊必要的初始化数据,还会将磁盘全部覆盖⼀些新数据,⽐如全部写⼊ 0 或者其它数字。另外⼀般格式化还会扫描磁盘,检查是否有坏道,将坏道记录下来,写⽂件的时候不写在坏的地⽅。
⼀般格式化⽐较慢,⽂件的内容通常不可恢复。
⽇常使⽤,假如没有啥敏感信息,硬盘也没有坏道,快速格式化就⾏了。但假如磁盘有敏感的信息,磁盘读取⽐较慢,怀疑有坏道了,就可以使⽤⼀般格式化。⼀般格式化会更多写磁盘,反复格式化可能会损害磁盘。
同理,⽇常删除⽂件,清空回收站。实际上也只是删除了索引,将⽂件标记成已删除,但实际⽂件的
内容还在的。利⽤⼀些软件,还是可以恢复回来。假如真的太敏感,不想让别⼈恢复,可以⽤⼀些软件的粉碎机功能。⽂件粉碎机除了删除索引,还会往原来的⽂件内容的磁盘位置写⼊垃圾数据。这样就不能被恢复了。
⽇志⽂件系统(Journaling file system)
上⽂说过 exFAT ⽂件系统不安全,是它没有⽇志功能。那什么是⽇志功能呢?⽇志(journaling) 这个词就是记录、登记的意思。⽇志功能就是在写⽂件的时候,先在⽇志中做个记录,记录完后才真正写⼊⽂件中。⽇志也是磁盘中的⼀块⼆进制位置,专门开辟出⼀个⽤于读写⽇志的区域,不⽤来存储⽂件数据。
就算你读了上⾯⼀段话,应该还是不明⽩⽇志功能时什么。要明⽩什么是⽇志功能,先要明⽩假如没有⽇志功能会怎么样。
当系统往磁盘写⼊数据的时候,任何时候都可能断电。典型的是 U 盘或者移动硬盘没有弹出就直接拨掉。⽂件系统需要解决⼀个问题,假如写⽂件写到⼀半就突然断电了,应该怎么办?
⽂件系统给⽤户的是⽬录、⼦⽬录、路径、⽂件这种抽象。这种⽬录、⼦⽬录的抽象是⼀种树状结构。⽂件系统在磁盘上实现了⼀种树状结构,每个⽬录实际上是某种索引。根⽬录是最上层的索引,⼦⽬录是中间的索引,⽂件就是最终的叶⼦。经过⼀级⼀级的索引,才能到⽂件本⾝。
当写磁盘时,除了修改⽂件本⾝的数据,还可能修改⽬录索引。磁盘断电可能会出现在任何时候,假如断电时没有写磁盘,通常没有啥问题。但假如断电时在写⽂件,⽂件数据就丢失了⼀半,⽂件就损坏了。⽽假如断电时正在修改索引数据,就会导致索引不完整,读不出来,这个索引下的⼀⼤⽚数据就不到了。索引在树状结构的位置越⾼,越靠近根索引,不到的⽂件数据就越多。
exFAT ⽂件格式没有⽇志功能,没有记录下操作信息。遇到这种断电⽽数据不完整的情况,就没有⾜够的信息⾃动恢复。可能会丢⼀⽚⽂件,也可能直接分区不再可读。提升执行力
NTFS 这种带⽇志功能的⽂件系统,在写⽂件时,会先在⽇志中做记录。将全部信息都写到⽇志后,再提交⽇志。我们可以举个简化例⼦,跟真实细节会有点不同,但了解其基本思想就够了。
⽐如我要写⽂件,经历了 4 个操作。
op1, op2, op3, op4
这 4 个操作需要同时完成,或者同时不能完全。假如只做完 op1、op2,突然断电,没有做完 op3、op4。⽂件系统处于数据不完整的中间状态。当没有⽇志功能的时候,这种中间状态就很难恢复。
当有⽇志功能的时候,系统不会直接做这个 4 个操作,⽽是将这 4 个操作先记录下来,写到⽇志中。变成
begin, op1, op2, op3, op4, end
begin 为操作开始,end 为操作结束。写⼊⽇志后,将操作提交时。再依次做 begin, op1, op2。假如这时断电,⽂件系统处于中间状态。但当磁盘再次通电的时候,系统从⽇志中获取信息,发觉还没有执⾏ end, 就表⽰上⼀次操作不完整。于是就重新执⾏
begin, op1, op2, op3, op4, end
⽂件系统也就从中间状态恢复过来了。基本原理就是这样,细节上⾯每个带⽇志的⽂件系统都可能有所不同。
这种思路是从数据库中借鉴过来的,数据库必须这种原⼦提交。原⼦(Atom)在这⾥是不可分割,必须是⼀个整体的意思。⽐如⽤户转账,实际分两个步骤,先从 A 账号扣钱,再往 B 账户加钱。两个步骤是不可分的整体,必须全部完全,或者全部不完成,不能处于中间状态。
有个细节需要提⼀下,op1, op2, op3 等操作没有必要是原⼦的,op1 这个操作也可以做⼀半,另⼀半没有完全。但 end 这个操作必须是原⼦的,end 是⼀个结束标记,必须⼀次完成。幸好磁盘可以保证任何 512 字节的写⼊都是原⼦的。
经过上述讨论,前⽂说不带⽇志的⽂件系统不够安全,并⾮是指这种系统将磁盘从物理上弄烂。⽐如
磁头弯曲了,或者某个盘⾯刮花了之类。移动硬盘也没有那样容易烂。这⾥的不安全是指 exFAT 这种⽂件系统格式在⽂件系统不完整时,难以恢复过来。丢失索引,就丢失了⼀⽚数据。不过计算丢失索引,⽂件内容实际还在,是可以恢复过来的。只是恢复起来⿇烦。专业的⼈去恢复,恢复⼀个硬盘的数据,都够你重新买⼏个硬盘了。当⽂件系统不完整,导致分区读不出来时,重新格式⼀下,磁盘就恢复了。只是数据就丢失了。
就算使⽤ NTFS 这种带⽇志的⽂件格式,也应该养成弹出再拨线的好习惯。假如磁盘的碟⽚在⾼速转动,突然拨出断电,相当于⾼速⾏驶的⼤巴来个急刹车,反复多次还是会伤磁盘的。江的故事
Fat32、NTFS、exFAT、HFS+、APFS
有很多种不同的⽂件系统,假如是 Windows 和 Mac ⽤户,常见的就是上述⼏种。其中 Fat32、NTFS、exFAT 这三种格式是微软公司开发的,HFS+、APFS 这两种格式是苹果公司开发的。
FAT 是⽂件配置表(File Allocation Table)的⾸字母缩写,最开始供 MS-DOS 使⽤,⼀直演化。最开始有 Fat12,之后到 Fat16,到现在的Fat32。Fat32 中的 32 是指 32 位。32 位最⼤值为 2 的 32 次⽅,就是 4G。Fat32 最⼤的限制是不能存储⼤于 4G 的⽂件。
NTFS 是 New Technology File System 的缩写,是微软为 Windows NT 开发的⽂件系统。80 年代,中国第一狗仔卓伟
微软和 IBM 合作,开发图形操作系统OS/2。但两个公司在很多问题上都有分歧,合作终⽌。微软让 Dave Cutler 领导开发下⼀代的操作系统。起初项⽬代号为 N10(N-Ten),也就是 NT, 只是后来 NT 的含义变成了很商业的 New Technology。OS/2 的⽂件系统叫 HPFS,包含许多重要功能。NTFS 借鉴了 HPFS,有很多共同之处。因为开发 NTFS、HPFS 这两个⽂件系统的就是同⼀批⼈。在 Windows 系统上,默认的⽂件格式就就是 NTFS。
exFAT 为(Extended File Allocation Table),也被称呼为 Fat64。NTFS 使⽤⽇志,会⽐⾮⽇志的⽂件格式读写更多的磁盘,对闪存储造成较⼤的负担,理论上 NTFS 格式的 U 盘容易损坏。exFAT 是微软专门为闪存开发的⼀种开发的⽂件格式,⽀持存储⼤于 4G 的⽂件。其实 U 盘也没有那样容易烂,烂了就换⼀个。U 盘格式成 exFAT 只是为了⽅便,Mac 和 Windows 都可读写,也可存放⼤⽂件。但正如上述,exFAT 没有⽇志功能。
初代的 Macintosh,⽂件系统叫 HFS(Hierarchical File System)。HFS 之后经过改进,就叫 HFS Plus 或 HFS+。在 APFS 之前,苹果的设备都使⽤ HFS+ ⽂件系统, 包括 iPhone、iPod。使⽤苹果的磁盘管理⼯具,不会直接显⽰为 HFS+, ⽽会显⽰ Mac OS 扩展。HFS+ 有多个选项,
是否带⽇志功能。⽇志功能上⾯说了,应该选择带⽇志功能。貌似⾮⽇志功能已经不能选了。
是否区分⼤⼩写。不区分⼤⼩写时, 和 就是同⼀个⽂件。区分⼤⼩写, 和 AB
< 就是不同的⽂件。默认情况下,Mac 系统不会区分⼤⼩写,iOS 设备区分⼤⼩写。因此在做 iOS 开发时,有时 App 在模拟器上运⾏,可以到⽂件。⽽在真机运⾏,就不到⽂件。
是否加密。选择加密时,要读取这个磁盘数据,就需要输⼊密码。
APFS 最苹果最新的⽂件系统,是 Apple File System 的缩写。HFS+ ⽂件系统有很久历史了,是针对传统的机械磁盘开发的⽂件系统。⽽苹果的所有设备,⽆论是 Mac 还是 iPhone, 都已经使⽤了 SSD 磁盘。因⽽针对于 SSD 做优化,开发了最新的下⼀代⽂件系统 APFS,在iOS 10.3 时正式引⼊。APFS ⽀持写时复制,同⼀个⽂件,⽆论复制多少份,假如不修改,这个⽂件的实际内容只会在磁盘中存储⼀份,只是其索引有 N 份。当这个⽂件被修改,⽂件内容才会被真正复制。
=======================
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论