移动硬盘使用什么文件系统格式

news/2024/10/31 1:23:06/

 

起因

为什么要研究这个问题呢?我最近为了将一部 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+ 有多个选项,

  • 是否带日志功能。日志功能上面说了,应该选择带日志功能。貌似非日志功能已经不能选了。
  • 是否区分大小写。不区分大小写时,abc.txt 和 ABC.txt 就是同一个文件。区分大小写,abc.txt 和 ABC.txt 就是不同的文件。默认情况下,Mac 系统不会区分大小写,iOS 设备区分大小写。因此在做 iOS 开发时,有时 App 在模拟器上运行,可以找到文件。而在真机运行,就找不到文件。
  • 是否加密。选择加密时,要读取这个磁盘数据,就需要输入密码。

APFS 最苹果最新的文件系统,是 Apple File System 的缩写。HFS+ 文件系统有很久历史了,是针对传统的机械磁盘开发的文件系统。而苹果的所有设备,无论是 Mac 还是 iPhone, 都已经使用了 SSD 磁盘。因而针对于 SSD 做优化,开发了最新的下一代文件系统 APFS,在 iOS 10.3 时正式引入。APFS 支持写时复制,同一个文件,无论复制多少份,假如不修改,这个文件的实际内容只会在磁盘中存储一份,只是其索引有 N 份。当这个文件被修改,文件内容才会被真正复制。


http://www.ppmy.cn/news/203915.html

相关文章

关于电脑硬盘的讲解

电脑的硬盘,属于电脑的外存分类,它与U盘,还有早时候的储存卡是处于相同位置的产品,可以进行粗浅的互通理解。 首先导入一个思维导图来方便简单理解: 其实对于PCI-E来言,它大体属于总线的扩展分支&#xff…

海康iv4200支持多少_体验固态移动硬盘怎么选?1TB 才 900 不到的海康威视 T100F 怎么样?...

资源置换合作请加 VX 15216685489 硬件产品众测请加 VX 282711398 公众号后台回复「华为」,进入华为微信交流群! 本文来源:ZEALER 海康威视移动硬盘众测 本文作者:Ben 移动硬盘估计大家都有,我也有好几个,但…

海康iv4200支持多少_追赶极速:海康威视C2000 Pro 2T固态硬盘到手简评

购买理由 穷玩电脑富玩表,看来自己还是穷啊!自从1995年配了台Cyrix5X86兼容机,玩电脑就停不下来了。内存4M,硬盘540M,你知道这配置能玩啥么?不过DOS下的游戏还是留下不少回忆的,例如《仙剑奇侠传…

三星固态硬盘ssd产品线收集

目录 三星ssd按时间展示:三星ssd后缀带a与不带a的区别,举其中一例:下面是从三星中国的官网截图的产品线:产品线列表:总结:参考:最近在淘宝看到了很多拆机ssd,三星作为世界上唯一一家主控和颗粒都生产的厂家,比较受关注,而且因为另外一家大厂英特尔太有名的缘故,导致英…

代码随想录 二叉树 Java (一)

文章目录 (简单)144. 二叉树的前序遍历(简单)94. 二叉树的中序遍历(简单)145. 二叉树的后序遍历二叉树的统一遍历方法(参考代码随想录)(中等)102. 二叉树的层…

Maven高级——继承与聚合——版本锁定

在前面的文章已经实现了Maven的继承,初次之外,还可以在父工程当中统一管理依赖的版本。 场景介绍 有一些依赖不是各个模块共有的,则需要到那些子模块当中单独配置了,这时需要到各个模块单独配置了,比如下图有一个模块…

【C++11】可变参数模板

文章目录 C11的新特性可变参数模板能够让您创建可以接受可变参数的函数模板和类模板,相比C98/03,类模版和函数模版中只能含固定数量的模版参数,可变模版参数无疑是一个巨大的改进。然而由于可变模版参数比较抽象,使用起来需要一定…

ADS8688驱动(FPGA)

ADS8688 为 16 位采样芯片,最大采样范围 − 10.24 V ∼ 10.24 V -10.24V\sim10.24V −10.24V∼10.24V ,最大采样率 500 k S P S 500 kSPS 500kSPS,8 采样通道,每个通道都可支持双极性 10.24 V \pm 10.24V 10.24V、 5.12 V \…