阅读:2140回复:5
怎样确定 U 盘 FAT 表起始地址?
要找到一个文件在U盘的位置,首先要读取MBR(主引导记录区)取得DBR(操作系统引导记录区)的首址(分区信息表 8-11 字节)。
而后读取 DBR,DBR 里有 FAT 表份数、FAT 表占用扇区数、就是没有 FAT 表的起始地址,资料上说:继 DBR 之后就是 FAT 表,是不是说比如 DBR 在 20 扇区,那么 FAT 就在 21 扇区? 如果不是,应该从那找到 FAT 表的地址? 谁能解释一下,谢谢! |
|
沙发#
发布于:2003-07-24 12:27
对于FAT16系统,可以说“比如 DBR 在 20 扇区,那么 FAT 就在 21 扇区”。至于FAT32系统,在DBR之后还有DBR副本和若干的保留扇区,才到FAT表,并且随着容量的不同,各部分会有调整。
U盘通常采用FAT16,第一个0x28命令的逻辑块地址是00,表示读取MBR,根据其中的分区表信息再发0x28命令,此时的命令申请的逻辑块地址就是第一个FAT所在之处。 用BusHound来调试这些功能,结合相关资料,很容易把调试进行下去的。 |
|
板凳#
发布于:2003-07-24 22:05
我已经响应了所有命令,可惜u盘还是访问不了,信号灯老是闪,不知道是什么原因?
|
|
地板#
发布于:2003-07-25 00:08
文件的起始地址在目录区里!
|
|
地下室#
发布于:2003-07-25 09:32
U盘通常采用FAT16,第一个0x28命令的逻辑块地址是00,表示读取MBR,根据其中的分区表信息再发0x28命令,此时的命令申请的逻辑块地址就是第一个FAT所在之处。 我确认一下:第一个0x28命令的逻辑块地址是00,其中分区表中的起始地址是0x20,逻辑块地址0x20是 DBR(操作系统引导记录区),还是 FAT 表?我按照资料解释逻辑块地址0x20是 DBR(操作系统引导记录区),那么您指的 FAT 表地址是 0x20 还是 0x20之后? 谢谢! |
|
5楼#
发布于:2003-07-25 17:57
读取顺序应该是:MBR->BPB->FAT,FAT在BPB之后。BPB为512Byte
|
|