作者CuckooBoy (阿书)
看板CSSE
标题Re: [问题] 硬碟问题
时间Sat May 5 12:48:42 2007
※ 引述《cyyang (CCC)》之铭言:
: ※ 引述《CuckooBoy (阿书)》之铭言:
: : 这问题是这样的...
: : 一个储存元件 如:硬碟,CF卡..等 , 就FAT32而言
: : File Description Block中的 磁丛指位器 是一个告诉使用者档案要到哪一个位址找
: : 我上网找了很多资料,还是不明白它在写什麽?
: : 不知道有没有人懂这方面的...
: : 可以针对 磁丛指位器 举一个例子...说明一下吗?
: : 感谢感谢
: 虽然觉得这好像是学校作业题目, 但还是简单讲一下,
: FAT(12/16/32)是个单向 link list, 你在FDB 看到cluster number後, 就可以到FAT
: 找到这个link list的起始位置, 你从FAT 对应的栏位就可以知道下一个cluster在哪,
: 在FAT32中, 一直读到发现栏位变成0x0FFFFFFF就知道这是最後一个cluster.
: 在你知道cluster的同时, 自然也可以算出这个档案一开始的Logical block
: address (LBA), 存取该LBA 即可得到档案内容. 至於要读多少才算完成,
: 请参阅 FDB 的File Size 栏位.
: 另外至於1 cluster有几个sector, 1 sector有几个byte, 你都可以在boot sector
: 中得到相关资讯.
: 简单讲一讲, 不懂就去参考这份FAT32 File System Specification
: 网址是 http://0rz.tw/f92BG
: 认真读完就保证一定懂.
这样说对吗....?
我用WinHex软体,看一个1G容量的CF卡的储存装置
1. 从BDB知道...
0B~0C:每一磁区的位元组数(此例为 512)
0D:每一磁丛所占磁区数(此例为 8)
2. 从FDB知道...
1C~1F:档案大小(此例为 000003=3个位元组)
1A~1B:磁丛指位器(此例为 000003=3)
由以上两点..
知道档案内容 在磁丛 3
磁丛从2开始
所以3-2=1 资料内容与FDB差 1个磁丛差=8个磁区=512*8=4096位元组=十六进制的1000
FDB第一笔资料在1EA000
所以内容在1EA000+1000=1EB000开始
档案大小为3个位元组
所以1EB000~1EB002 就是我的档案内容?
如果,我讲对,那我有个问题....FAT1不是记录着每一个档案或次资料夹在磁区的那
一个cluster 位置之资讯吗?
我的FAT1像下面这样,好像跟我所讲的没什麽关联,看不出所以然,用不上的感觉.....
F8 FF FF 0F FF FF FF FF FF FF FF 0F FF FF FF 0F
00 00 ........................................
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.195.6.78