FAT扇区数怎么计算?(迷惑)

[复制链接]

该用户从未签到

63

主题

338

回帖

3623

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
3623
发表于 2008-6-24 22:29:24 | 显示全部楼层 |阅读模式
[wiki]FAT[/wiki][wiki]扇区[/wiki]数计算:
未命名.jpg
扇区总数-保留扇区-2XFAT扇区数-fdt扇区 应该是DATA的扇区数

X2是什么意思?X4是什么意思?
看书上说X4是有F8 ff ff ff 4个字节!
可有2个FAT表,应该乘8才对!


看着好象是在计算DATA的扇区数!
在这里不明白FAT与DATA到底有什么联系!
什么时候有剩余扇区?什么时候没有剩余扇区!

保留扇区是起什么作用的?

该用户从未签到

46

主题

533

回帖

2126

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
2126
QQ
发表于 2008-6-24 22:32:38 | 显示全部楼层
先抢个沙发做[s:18]
第一2X是指两个FAT表所占的总扇区数
第二X4是指FAT32系统中每个[wiki]簇[/wiki]在FAT表所占的[wiki]字节[/wiki]数
第三公式的分母是在计算数据区的大小
第四  INT(簇每扇区)=数据区的大小/(FAT数*512/(2或4)-4)
剩余扇区是分分区内的剩余扇区,和整个[wiki]硬盘[/wiki]的剩余扇区,分区内的剩余扇区
是 (数据区大小/簇每扇区)的余数 整个硬盘的剩余扇区是分区粒度问题
以上是个人意见

[ 本帖最后由 lughon 于 2008-6-24 23:03 编辑 ]

该用户从未签到

2

主题

104

回帖

172

积分

[INTOHARD]班长

Rank: 2

积分
172
发表于 2008-6-24 23:02:35 | 显示全部楼层
FAT乘以2是因为有两个相同的FAT表,由(扇区总数-保留扇区数-FAT扇区数X2-FDT扇区数)再除以每簇扇区数,就可以计算出DATA有多少个簇。楼主所问的乘以2和乘以4,是因为在FAT16格式中记录每个簇需要2个字节,对于FAT32格式则为4个字节,这样计算出来的是记录这些簇所需的字节数,再加上4是因为在FAT16格式中FAT表前还有4个字节:F8、FF、FF、FF用做介质描述,在FAT32中就要加8了。这样算出来的就是整个FAT的字节数,除以512,按进一法取整得整数扇区就是FAT扇区数了

该用户从未签到

2

主题

104

回帖

172

积分

[INTOHARD]班长

Rank: 2

积分
172
发表于 2008-6-24 23:17:53 | 显示全部楼层
如果算出来的FAT是整数就没有剩余扇区,算出来FAT的不是整数有小数的,按进一法取整(可以理解为只要有小数的就进一)就会有剩余扇区了。因为进一FAT扇区数就取大了,可管理的DATA扇区当然就超出了实际DATA区域的大小,系统绝对不会出现把数据写到DATA区域之外,它并没有把FAT的最后一个扇区全部用完,而是只使用了与DATA相适应的一部份。
至于到底剩余扇区为多少呢?当然也是可以通过计算得出来

该用户从未签到

2

主题

104

回帖

172

积分

[INTOHARD]班长

Rank: 2

积分
172
发表于 2008-6-24 23:20:52 | 显示全部楼层
保留扇区是系统指定的被保留用做引导的扇区数

该用户从未签到

63

主题

338

回帖

3623

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
3623
 楼主| 发表于 2008-6-25 23:00:20 | 显示全部楼层
FAT乘以2是因为有两个相同的FAT表,由(扇区总数-保留扇区数-FAT扇区数X2-FDT扇区数)再除以每簇扇区数,就可以计算出DATA有多少个簇。楼主所问的乘以2和乘以4,是因为在FAT16格式中记录每个簇需要2个字节,对于FAT32格式则为4个字节,这样计算出来的是记录这些簇所需的字节数,再加上4是因为在FAT16格式中FAT表前还有4个字节:F8、FF、FF、FF用做介质描述,在FAT32中就要加8了。这样算出来的就是整个FAT的字节数,除以512,按进一法取整得整数扇区就是FAT扇区

想请问“小小”!再加上4是因为在FAT16格式中FAT表前还有4个字节:F8、FF、FF、FF用做介质描述!

既然在FAT16格式中FAT表前还有4个字节!可应该加上FAT有两个!
就应该加8!而不是4了!我就是在这里迷惑!

该用户从未签到

8

主题

177

回帖

1447

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
1447
发表于 2008-6-26 00:31:54 | 显示全部楼层

回复 6# 的帖子

请加强理解(扇区总数-保留扇区数-FAT乘以2-FDT扇区数)除以每簇扇区数得到的是什么?得到的是DATA有多少个簇!每个簇用几个字节描述?我上面说过了,FAT16中是二个字节,FAT32中是四个字节!
得到的是DATA有多少个簇X2和X4又得到的是什么?上面也说过了得到是记录DATA的簇的字节数再说加4该知道是为什么了吧,上面也说过了FAT16格式中FAT表前还有4个字节:F8、FF、FF、FF用做介质描述(FAT32中是8个字节)加4就得到了整个FAT的字节数了再除以512(每扇区512个字节)就不是得到FAT的扇区数了吗?
也许我说完了你还迷惑是吧?你说得对FAT是有两个,第二个是备份的。你可能忘了你这个公式是算什么的吧?是算FAT扇区数的,特别提醒是算一个FAT扇区数的,不是两个。如果你要算两个就把所有的数字前面都乘以二就行了,就可以如你说的加8而不是加4了!

[ 本帖最后由 逆水寒 于 2008-6-26 00:34 编辑 ]

该用户从未签到

5

主题

567

回帖

628

积分

[INTOHARD]连长

鬼泣

Rank: 4

积分
628
QQ
发表于 2008-7-6 16:43:15 | 显示全部楼层
这样的技术以后有用吗

该用户从未签到

8

主题

177

回帖

1447

积分

[INTOHARD]营长

Rank: 6Rank: 6

积分
1447
发表于 2008-7-6 20:14:43 | 显示全部楼层

回复 8# 的帖子

那你认为什么会有用?

该用户从未签到

96

主题

1179

回帖

5542

积分

[INTOHARD]团长

Rank: 8Rank: 8

积分
5542
发表于 2008-7-7 03:04:53 | 显示全部楼层
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表