硬盘信息的存储方式

上传人:壹****1 文档编号:431546097 上传时间:2022-11-23 格式:DOC 页数:5 大小:52.01KB
返回 下载 相关 举报
硬盘信息的存储方式_第1页
第1页 / 共5页
硬盘信息的存储方式_第2页
第2页 / 共5页
硬盘信息的存储方式_第3页
第3页 / 共5页
硬盘信息的存储方式_第4页
第4页 / 共5页
硬盘信息的存储方式_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《硬盘信息的存储方式》由会员分享,可在线阅读,更多相关《硬盘信息的存储方式(5页珍藏版)》请在金锄头文库上搜索。

1、硬盘信息的存储方式1.硬盘的物理扇区和逻辑扇区物理扇区采用了cylinder/head/sector的存储方式。逻辑扇区抛弃了c,h,s的物理概念认为硬盘存储区域是由一些列连续扇区组成。一般是把(0,0,1)作为逻辑第一个扇区。物理扇区和逻辑扇区的转换:NH 硬盘的head数NS 每head的sector数LS 逻辑扇区C1 第一个逻辑扇区的柱面数H1 第一个逻辑扇区的磁头数对于物理扇区为(C,H,S)其逻辑扇区为LS=NH*NS*(C-C1)+NS*(H-H1)+S-1对于逻辑扇区为LS其物理扇区C=(LS/NS)/NH+C1H=(LS/NS)mod NH+H1S=(LS mod NS)+1

2、/为整除,mod为整除取余2.硬盘在dos(windows)下数据信息2.1 fat文件系统2.1.1MBR(Master Boot Record)位于整个硬盘的(0,0,1),用于硬盘启动时将系统控制权交给指定的操作系统区。其结构如下主引导程序(446 bytes)分区信息分区项1(16 bytes)分区项2分区项3分区项4结束标志(55AA)对于硬盘的分区表(DPT)它位于每一个分区起始扇区的446-500这64个字节。对于每一个16字节的分区项其结构为:typedef struct PARTITIONTABLE BYTE PartionID;/分区类型 1 byte BYTE Start

3、CHS3; BYTE SystemID; /分区操作系统类型 1 BYTE EndCHS3; DWORD RelativeSectors; /该分区起始逻辑扇区 4 DWORD TotalSectors;/分区总扇区数 4PARTITIONTABLE;对于3个字节的StartCHS和EndCHS标明了该分区的起始(结束的)cylinder/head/sector, 分区的起始地址(面/扇区/磁道)和结束地址(面/扇/道)中字节分配: 00000000 01000001 00010101 = = 面(磁头) 8 位 扇区 6 位 = 磁道 10 位对于分区类型常用有如下值:0xb fat32;0

4、xc fat32_e;0x6 fat16;0xe fat16_e;0x7 ntfs;2.1.2 DBR(Dos Boot Record)位于此分区的逻辑0扇区(相对于整个分区,一般是(x,1,1)),也就是分区表中具体的开始扇区。主要用于此分区操作系统的引导。其结构如下:#pragma pack(1)/如果此分区为fat16文件系统struct FAT16_BOOT_SECTORBYTE Jumpto3; / 0EBH, 03CH, 090H;BYTE OemID8; / MSDOS5.0BYTE SecInByte; / dw 200H ; 扇区字节数BYTE SecPerClr ; / d

5、b 00H ; 每簇扇区数WORD ResClr; / dw 0001H ; 保留簇数BYTE NumOfFat; / db 02H ; FAT数WORD RootEntry; / dw 512 ; 根目录数WORD TotalSec; / dw 0000H ; 总扇区数 unusedBYTE FormatID; / db 0F8H ; 磁盘格式代号WORD SecPerFat; / dw 0000H ; 每FAT扇区数WORD SecPerTrk; / dw 003fH ; 每磁道扇区数WORD Sides; / dw 0000H ; 磁盘面数DWORD Hsector; / dd 003f

6、H ; 隐藏扇区数DWORD BigTotalSec; / dd 00000000H ; Big total number of sectorsWORD Phydrvnum; / dw 0080H ; physical drive numberBYTE Signature; / db 029H ; Extended Boot Record SignatureDWORD Serialnum ; / dd 015470ff4h ; Volume Serial NumberBYTE DISKLabel11; / BYTE DISK1_VOL1 BYTE FileSystem8; / BYTE FAT

7、16 ;/如果此分区fat32文件系统。struct FAT32_BOOT_SECTORBYTE Jumpto3;/3BYTE OemID8; /11WORD SecInByte;/13BYTE SecPerClr;/14WORD ResClr;/16BYTE NumOfFat;/17WORD Reserved;/19WORD Reserved1;/21BYTE FormatID; /22WORD SecPerFat;/24WORD SecPerTrk;/26WORD Sides;/28DWORD Hsector;/32DWORD BigTotalSec;/36DWORD BigSecPerF

8、at;/40BYTE Free23;/WORD Phydrvnum; /BYTE Free1;/BYTE Signature;/DWORD Serialnum;/BYTE DISKLabel11;/BYTE FileSystem8;#pragma pack()Dos引导扇区又称为BOOT区,主要完成dos/windows系统的自举。2.1.3 文件分配表(File Allocate Table)用于记录硬盘上面空间使用情况。2.1.3.1 fat16文件系统如果这个分区为fat16文件系统,那么紧跟DBR之后的扇区就是fat表开始的扇区,具体fat表有多少个扇区,在FAT16_BOOT_SEC

9、TOR结构的BigSecPerFat有记录。fat还有一个备份,紧跟第一个fat表结束。一些大的文件可能占用了很多簇,而且在磁盘上没有连续存放。FAT表就是为了确定文件每个簇的连接关系而设的。FAT表的每一项都对应着数据区的一个簇,FAT16的FAT表每一项占16位,也就是两个字节。每一项的内容表示其对应簇的分配情况,0表示尚未分配;FFF0hFFF6h为备用;FFF7h表示坏簇,即该簇中磁盘有损坏;FFF8hFFFF表示文件结束;其他值则表示当前簇的下一簇的簇号。FAT表的最前面两项是不用的,因此第一个数据簇的簇号为2。FAT表第一个字节也是分区介质类型,和BPB中的一样。因此用F8 FF

10、FF可以作为硬盘FAT起始的标志。2.1.3.2 fat32文件系统 FAT32文件系统与FAT12/16的差别较大,一个主要的差别就是将根目录划归到数据区中了,在BPB中专门加了一项根目录开始簇号。这样根目录的大小就不再受到限制,大大增加了根目录的自由度。 对于fat32文件系统,fat表的位置在DBR后的第n个扇区,其中n为保留的扇区数。 FAT32与FAT12/16的另一不同点在于,FAT32既可以同时使用多个FAT表,也可以只使用其中的某一个FAT表。ExtFlags正是这个标志。当ExtFlags的第8位为0时表示同时使用每个FAT表,当其为1时表示只使用其中的一个FAT表,这个FA

11、T表的序号由ExtFlags的低4位给出。FAT32有个专门放BIGFATBOOTFSINFO结构的扇区,该结构包含了剩余簇个数,下一个空闲簇号等信息。这个扇区通常紧接着引导扇区。FAT32系统簇号改用32位二进制数表示,大致从00000002H到FFFFFEFFH个可用簇号。FAT表按顺序依次记录了该盘各簇的使用情况,是一种位示图法。 如果该簇是文件的最后一簇,填入的值为FFFFFF0FH,如果该簇不是文件的最后一簇,填入的值为该文件占用的下一个簇的簇号,这样,正好将文件占用的各簇构成一个簇链,保存在FAT表中。0000000H、00000001H两簇号不使用,其对应的两个DWORD位置(F

12、AT表开头的8个字节)用来存放该盘介质类型编号。FAT表的大小就由该逻辑盘数据区共有多少簇所决定,取整数个扇区。2.1.4 文件目录表(File Directory Table)对于fat16/32文件系统,用fdt 来表示整个硬盘文件存放的结构。2.1.4.1 fat16的fdt FAT16文件系统的根目录区(ROOT区)是固定区域、固定大小的,是从FAT区之后紧接着的32个扇区,最多保存512个目录项,作为系统区的一部分。 每个目录由连续的个字符组成,包含了 : 该文件属性、日期 、首族号、长度等一些重要信息。具体的结构如下:struct FAT16_DIRITEMBYTE fileNam

13、e8;BYTE extName3;BYTE fileAttr;/文件属性BYTE reserved10;WORD createDate;WORD createTime;WORD startClrNum;/start cluster num DWORD fileSize;fileAttr具体的取值如下: 00H 读写 01H 只读 02H隐含 04H系统 08H卷标 10H子目录 20H归档当DOS写文件时,首先在文件目录中检查是否有相同文件名,若无则使用一个文件目录表项,然后依次检测FAT中的每个表项对应的簇中,同时将该簇号写入文件目录表项相的26-27字节,如文件长度不止一簇,则继续向后寻找可用簇,找到后将其簇号写入上一次找到的表项中,如此直到文件结束,在最后一簇的表项里填上FFF8H,形成单向链表。 DOS删除文件时只是把文件目录表中的该文件的表项第0个字节改为E5H,表此项已被删除,并在文件分配表中把该文件占用的各簇的表项清0,并释放空间。其文件的内容仍然在盘上,并没有被真正删除。2.1.4.2 fat32的fdt根目录区(ROOT区)不再是固定区域、固定大小,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号