首页 > 解决方案 > FAT结构有多大,文件有多大?

问题描述

考虑基于 FAT 的文件系统的以下参数: 块为 8KB(213 字节) 大 FAT 条目为 32 位宽,其中 24 位用于存储块地址 A。FAT 结构需要多大才能容纳 1GB (2^30 字节)磁盘?B. (A) 部分的 FAT 结构支持的最大理论文件大小是多少?

标签: operating-system

解决方案


A. FAT 结构需要多大才能容纳 1GB(2^30 字节)的磁盘?

FAT 文件系统将空间分成簇,然后有一个表(“簇分配表”或 FAT),其中包含每个簇的条目(说明它是空闲的、有故障的还是簇链中的下一个簇)。要计算“集群分配表”的大小,将卷的总大小除以集群的大小(以确定“集群分配表”中有多少集群和多少条目),然后乘以 1 的大小条目,然后可能会舍入到集群大小的倍数(取决于您想要的答案 - 实际大小或占用的空间)。

B. (A) 部分的 FAT 结构支持的最大理论文件大小是多少?

支持的最大文件大小由以下任一决定(以较小者为准):

  • 文件目录条目中“文件大小”字段的大小(FAT32 为 32 位,因此为 4 GiB);或者

  • 空间的总大小减去隐藏/保留/系统区域、集群分配表、目录和故障集群消耗的空间。

对于使用 FAT32 格式化的 1 GiB 卷,最大。文件的大小将由后者确定(“总空间 - 文件不可用的区域的总和”)。

请注意,如果您有一个 1 GiB 的磁盘,它可能(例如)被分成 4 个分区,并且 FAT 文件系统可能会被分配一个只有 1 GiB 空间的分区。即使“整个”磁盘只有一个分区,通常(假设“MBR 分区”而不是较新的“GPT 分区”,它为分区表等占用更多空间)分区从第二个磁道开始(第一个磁道为 MBR、分区表和可能的“引导管理器”“保留”)或稍后的轨道(例如,将分区的开始对齐到“4 KiB 物理扇区大小”并避免由“512 逻辑扇区大小”引起的性能问题)。

换句话说,磁盘的大小与用于 FAT 的卷的大小关系不大。当问题只告诉您磁盘的大小而不告诉您分区/卷的大小时,您无法提供准确的答案。

你可以做的是在你的答案中清楚地陈述你的假设,例如:

"我假设“1 GB”磁盘为 1000000 KiB(1024000000 字节,而不是 1 GiB 或 1073741824 字节,而不是 1 GB 或 1000000000 字节);并且我假设 1 MiB (1024 KiB) 的磁盘空间被分区表和 MBR 以及所有剩余空间用于单个 FAT 分区;因此 FAT 卷本身是 998976 KiB。 "


推荐阅读