- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
硬盘信息的存储方式
硬盘信息的存储方式
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+C1
H=(LS/NS)mod NH+H1
S=(LS mod NS)+1
/为整除,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 StartCHS[3];
BYTE SystemID; //分区操作系统类型 1
BYTE EndCHS[3];
DWORD RelativeSectors; //该分区起始逻辑扇区 4
DWORD TotalSectors;//分区总扇区数 4
}PARTITIONTABLE;
对于3个字节的StartCHS和EndCHS标明了该分区的起始(结束的)cylinder/head/sector, 分区的起始地址(面/扇区/磁道)和结束地址(面/扇/道)中字节分配: 01000001~~~~~~~~ ==^^^^^^ ======== ~ 面(磁头) 8 位 ^ 扇区 6 位 = 磁道 10 位
对于分区类型常用有如下值:
0xb fat32;
0xc 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_SECTOR
{
BYTE Jumpto[3]; // {0EBH, 03CH, 090H};
BYTE OemID[8]; // MSDOS5.0
BYTE SecInByte; // dw 200H ; 扇区字节数
BYTE SecPerClr ; // db 00H ; 每簇扇区数
WORD ResClr; // dw 0001H ; 保留簇数
BYTE NumOfFat; // db 02H ; FAT数
WORD RootEntry; // dw 512 ; 根目录数
WORD TotalSec; // dw 0000H ; 总扇区数 unused
BYTE FormatID; // db 0F8H ; 磁盘格式代号
WORD SecPerFat; // dw 0000H ; 每FAT扇区数
WORD SecPerTrk; // dw 003fH ; 每磁道扇区数
WORD Sides; // dw 0000H ; 磁盘面数
DWORD Hsector; // dd 003fH ; 隐藏扇区数
DWORD BigTotalSec; // dd ; Big total number of sectors
WORD Ph
文档评论(0)