我正在构建一个类似于FAT的文件系统。 它有以下设置:
| MBR | FAT区域|数据区|
因此,如果给出sector_size(以字节为单位的扇区大小),cluster_size(扇区中簇的大小)和disk_size(簇中磁盘的大小),我该如何计算FAT的长度?区域?
我知道MBR从群集0开始,FAT区域从群集1开始。但我不知道可以用什么信息来计算FAT区域的长度。
此外,根目录从数据区中的第一个群集开始,那么如何计算根目录的长度呢?
答案 0 :(得分:0)
这是FAT12(MSDOS 6.22)软盘图像的样子:
驾驶几何
<强> FAT 强>
cluster=N*sector
N={1,2,3,4,...}
heads*tracks*sectors*sector_size
FAT尺寸
floor(512*8/12)=341
条目ceil(4096/341)=12
个扇区FAT_entries=(drive_size-reserved)/cluster_size
cluster_size=(drive_size-reserved)/FAT_entries
16bit
(2Byte)2heads*1024tracks*64sectprs*512Byte=64MByte
cluster_size=4096Byte
FAT_entries=64*1024*1024/4096=16*1024