良许Linux教程网 干货合集 图解 FAT 文件系统基础知识

图解 FAT 文件系统基础知识

FAT 文件系统是什么,当你格式化 U 盘之后 U 盘发生了什么,为什么删除的文件还可以再恢复?买的 U 盘明明写着 16 G,实际却只有15 G,这里隐藏了什么事实?

FAT 文件系统随着发展,经历了多个版本,从 FAT12 到 FAT16 再到 FAT32,exFAT,每一个版本的迭代都是容量的巨大提升……

文件系统整体结构

我们看看当你的 U 盘(16 G,作者亲自试验并图解)格式化FAT32 格式后,U盘发生了什么:

image-20231114215439575
image-20231114215439575

这里将 U盘分成了三个分区,类似你将电脑的硬盘分成C盘、D盘、E盘,这里的新加卷分区2、分区****3 就是目前 U盘上建立的三个分区,但事实上,我们一般不会将 U 盘分成三个分区,一个就够用了,只是作者想告诉你,这在 U 盘也可以做到。

MBR

在 FAT 文件系统中, 0 扇区必定是 MBR,这个扇区包含了磁盘(U 盘)很多信息,比如整个 U 盘的大小(容量),即扇区总数,各个分区的起始扇区、分区大小,引导代码等。

image-20231114215449186
image-20231114215449186

前面 446 个字节和主引导代码有关,因为在单片机系统中一般不会使用这种引导方式引导操作系统,所以按下不表。

我们主要关注后面的分区信息和一些标志:

image-20231114215453352
image-20231114215453352

分区表项具体含义可看该图:

image-20231114215456582
image-20231114215456582

这里有一个标志,即扇区最后的两个字节,一般是 55 AA(0xAA55),如果说你的扇区里面没有这个标志,那么系统就不认为这是一个 FAT 文件系统,更不用说进行接下来的其他验证操作了。

我们从上图可以看到,一个 MBR 可以记录四个分区信息,但是你会发现你的 U盘可以分成超过四个分区,那么这又是怎么回事?

原因在于,可以使用逻辑分区。即可设置三个主分区,另一个分区设置为逻辑分区,这个逻辑分区里面可以分成很多很多分区,这就是它为什么能创建超过四个分区的原因。

当然,我们目前也没必要深入了解逻辑分区是怎么一回事,先把基本分区搞定再说。

MBR

说完 MBR,我们再说一个和 MBR 很像的一个扇区,DBR。

image-20231114215459713
image-20231114215459713

从上图我们可以看到,每一个分区的第一个扇区必定是 DBR,这是做什么用的?

我们知道 MBR 记录的分区信息十分有限,只有分区的开始扇区、分区的大小、分区类型、引导标志(表示该分区是否可被引导,通俗的话说,就是这个分区是否存在操作系统)等有限信息,我们不知道这个分区叫什么名字,文件系统的版本号是多少等。所以我们需要一个扇区保存这些信息。这就是 DBR的作用。

如果说MBR保存的是整个磁盘的基本信息,那么 DBR 保存的就是当前分区的基本信息。

image-20231114215514363
image-20231114215514363

我们可以看到 DBR 的扇区结尾也是一样的结束标志,所以它们是比较相似的,在有些资料中,如果不区分它们的话,很容易让人迷惑。

隐藏扇区

image-20231114220023155
image-20231114220023155

细看这张图,你会发现其中存在隐藏扇区****。隐藏扇区指的是扇区0到DBR扇区之间的空间。换句话说,从整个磁盘开始到分区部分的扇区称之为隐藏扇区(每一个分区都有自己的隐藏扇区),因为这些扇区对于分区而言是不可见的,也不可以被分区内的文件系统所管理。

这部分扇区数保存在 DBR 中。

当然,除了这部分扇区不被当前分区管理外,其他分区也不可以被当前分区管理,也可说其他分区也对当前分区隐藏了,但不被 DBR 所记录。

从这个角度说,每一个分区都是一个独立的文件系统,比如一个 U 盘可以同时创建一个 FAT32 文件系统分区,同时还可以创建一个 FAT16 文件系统分区,他们之间并不会相互影响。

同时,格式化某个分区不会影响其他分区的正常使用,比如 C盘格式化或重装系统并不会影响D盘的数据,这就是为什么说要分区的原因了,否则一个硬盘只分一个区,想重装系统的话,很多数据都会丢失,包括桌面文件。

这就是为什么最好把数据放在除 C 盘外的区域了,当然为了方便,你也可以使用快捷方式,将文件指向其他盘,而将快捷方式放桌面。

保留扇区

image-20231114220019345
image-20231114220019345

在每个分区之内,我们可以看到有部分扇区被文件系统认为是保留扇区,而这些所谓的保留扇区才是实现FAT文件系统的关键。

image-20231114220016113
image-20231114220016113

(这里为了图解清晰,并没有按照比例图解,实际上,数据区比保留区空间大的多)

这里有 DBR、FSINFO、FAT,还有为了安全考虑,存有他们的备份信息(如果文件系统损坏,可以尝试使用备份恢复他们)。

但我们还可以从上面知道,除了这些,还有一部分是真正的保留扇区,即上面的空白部分,这些保留扇区大小不是固定的,但确实占用了空间,而你却无法使用它们。

文章开头,有个疑问,为什么明明买的是 16 G U盘,格式化后,系统却提示我们只有 15 G,这少了 1 G 空间去哪了?

最大头,我相信大家都知道了,就是 1024 和 1000 进制的区别了,商家说的 16 G 是按照1000 为单位的,而系统按照 1024 计算,当然不一致了。

还有就是一般 MBR 之后会有一些保留分区存在(如果磁盘空间有限,可以不需要)。

另外就是文件系统本身占用的空间了(即上面的保留扇区),如果有多个分区,那么显示的只有当前分区的大小,其他分区大小是无法查看的。

而如果是单个分区,那么显示的大小只是数据区大小而已,保留区并不在显示空间内,你也不能直接通过文件的方式操作它。

image-20231114220012471
image-20231114220012471

还有就是数据区的空间使用来进行管理的,不满一簇大小的扇区空间,将直接丢弃不被文件系统所使用,这也会损失一点空间。

而有些分区为了效率,会将分区进行对齐处理,未对齐部分也不能使用。

种种原因,导致显示的空间比实际要小,不过对于大容量的存储介质来说,这点损失根本不算什么,而且在后面你会发现,为了高效管理空间,还有其他损失。

以上就是良许教程网为各位朋友分享的Linu系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

137e00002230ad9f26e78-265x300
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部