好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

硬盘数据结构.doc

7页
  • 卖家[上传人]:re****.1
  • 文档编号:556631396
  • 上传时间:2023-04-13
  • 文档格式:DOC
  • 文档大小:84KB
  • / 7 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 硬盘数据结构一、主引导扇区主引导扇区位于整个硬盘的0磁道0柱面1扇区,包括硬盘主引导记录MBR(Main Boot Record)和分区表DPT(Disk Partition Table)其中主引导记录的作用就是检查分区表是否正确以及确定哪个分区为引导分区,并在程序结束时把该分区的启动程序(也就是操作系统引导扇区)调入内存加以执行主引导记录占用446字节,分区表占用64字节,扇区结束标志55AA占用2字节,一共512字节硬盘的主引导扇区所在的硬盘磁道上的其它扇区一般均空出,主引导扇区所在的硬盘磁道是不属于分区范围内的表一:主引导扇区数据结构表偏移长度内容0446主引导记录44616第一个分区记录46216第二个分区记录47816第三个分区记录49416第四个分区记录5102扇区结束标志55 AA表一:主引导扇区数据结构表偏移长度内容01分区类型:00表示非活动分区;80表示活动分区;其他为无效分区11分区的起始地址:面号:即磁头号21分区的起始地址:高2位为磁道号,低6位为扇区号;31分区的起始地址:磁道号的低8位41分区的操作系统的类型51分区的结束地址:面号:即磁头号61分区的结束地址:高2位为磁道号,低6位为扇区号;71分区的结束地址:磁道号的低8位84该分区起始逻辑扇区124该分区占用的总扇区数二、分区引导扇区分区的引导扇区是该分区的第一个扇区,DBR偏移长度内容0H~02H3跳转指令03H~0AH厂商名和系统版本0BH~0CH每扇字节数,一般为512字节0DH每簇扇区数(有关簇的概念我们在后面会详细介绍),对于FAT32的磁盘该字节一般为08H,既每簇为8H*512B=4K。

      0EH~0FH保留扇区数10H磁盘FAT的个数,一般为2个11H~12H对于FAT16的磁盘为根目录的最大目录项,对于FAT32的磁盘该值总为“00H 00H13H~14H对于软盘或早期小硬盘该处为分区总扇区数,对于硬盘一般此值为“00H 00H15H介质描述,对于1.44软盘此处长为“F0H”,对于硬盘此处长为“F8H16H~17H对于软盘或早期小硬盘该处为每个FAT占用的扇区数,对于硬盘一般此值为“00H 00H18H~19H每道扇区数,一般为“3FH 00H”,即每道有63个扇区1AH~1BH磁头数,一般为“FFH 00H”,即每个柱面有255个磁头1CH~1FH隐含扇区数20H~23H对于大硬盘来说该处存放的是该分区占用的扇区数24H~27H对于大硬盘来说该处存放的是每个FAT占用的扇区数40H该处为磁盘BIOS信息,第一块硬盘为“80H”,一般软盘为“00H47H~51H用户设置的卷标,如果没有卷标此处常为字符串“NO NAME52H~59H文件系统,对于FAT32文件系统此处常为“FAT321FEH~1FFH结束标识,和上文提到的主引导区的结束标识一样为“55H AAH1、隐藏扇区(hidden sector)在分区之前的部分。

      通常所说的MBR,它是隐藏扇区的第一个扇区,也是整个存储介质的第一个扇区使用C/H/S寻址方式为0 Cylinder / 0 Head / 1 Sector,换成LBA寻址方式,就是所谓的第0扇区需要注意的是,隐藏扇区不是必须的,它是系统启动有关,如果你仅仅是作为存储,那么隐藏扇区可以没有,比如128M CF Card还需要区分物理扇区和逻辑扇区物理扇区是从整个存储介质的角度出发,而逻辑扇区仅仅是从该分区的角度出发2、保留扇区(reserved sector)分区之内FAT表之前的所有扇区通常所说的BPB,就是保留扇区的第一个扇区如果隐藏扇区为0个,那么BPB所在的扇区就成为了实际的第0扇区上面是FAT16的组织形式默认上,LBA=0时,读取第一个扇区,得到的应该是MBR信息在偏移位置为0x1be处,如果为0x80,则表示该分区是活动的在偏移位置为0x1c6及其后的三个字节构成一个32位的长字(注意是按照小端存放方式),这是DBR的入口地址,也就是保留扇区的第一个扇区如果在0x1be处不是0x80,则表明这不是MBR,也就是隐藏扇区为0,从保留扇区开始那么读取LBA=0的扇区就是DBR了。

      由此看出相关的公式如下:1、读取LBA=0的扇区,如果判断是MBR,则说明存在隐藏扇区,根据MBR的信息找到分区的DBR扇区地址;2、读取DBR,分析相关的信息,获得文件系统参数BPBFAT表的入口地址 = 隐藏扇区数 + 保留扇区数根目录区的入口地址 = FAT表的入口地址 + FAT的扇区数数据区的入口地址 = 根目录区的入口地址 + 根目录区的扇区数详解: 硬盘分区表(DPT) --------------------- 偏移地址 字节数 含义分析 01BE 1 分区类型:00表示非活动分区:80表示活动分区;其他为无效分区 01BF~01C1 3 *分区的起始地址(面/扇区/磁道),通常第一分区的起始地址开始 于1面0道1扇区,因此这三个字节应为010100 01C2 1 #分区的操作系统的类型 01C3~01C5 3 *该分区的结束地址(面/扇/道) 01C6~01C9 4 该分区起始逻辑扇区 01CA~01CD 4 该分区占用的总扇区数 注释: * 注意分区的起始地址(面/扇区/磁道)和结束地址(面/扇/道)中字节分配: 00000000 01000001 00010101 ~~~~~~~~ ==^^^^^^ ======== ~ 面(磁头) 8 位 ^ 扇区 6 位 = 磁道 10 位 # 分区的操作系统类型(文件格式标志码) 4---DOS FAT16<32M 5---EXTEND 6---DOS FAT16>32M 7---NTFS(OS/2) 83---LINUX>64M DPT 总共64字节(01BE--01FD), 如上所示每个分区占16个字节, 所以可以表示四个分区, 这也 就是为什么一个磁盘的主分区和扩展分区之和总共只能有四个的原因. 逻辑驱动器 ----------- 扩展分区的信息位于以上所示的硬盘分区表(DPT)中, 而逻辑驱动器的信息则位于扩展分区的 起始扇区, 即该分区的起始地址(面/扇区/磁道)所对应的扇区, 该扇区中的信息与硬盘主引导 扇区的区别是不包含MBR, 而16字节的分区信息则表示的是逻辑驱动器的起始和结束地址等. 所以, 在磁盘仅含有一个主分区, 一个扩展分区(包含多个逻辑驱动器)的情况下, 即使由于病毒 或其他原因导致硬盘主引导扇区的数据丢失(包括DPT), 也可以通过逻辑驱动器的数据来恢复整个硬盘. 例如: 以下是一个硬盘的分区情况. 道 面 扇 道 面 扇 起始扇(逻辑) 结束扇 总共扇区 MBR 0 0 1 - - - - - - C 0 1 1 276 239 63 63 4,188,239 4,188,177 扩 277 0 1 554 239 63 4,188,240 8,391,599 4,203,360 D 277 1 1 554 239 63 4,188,303 8,391,599 4,203,297 如果主分区表损坏, 则可以通过手工查找扩展分区表中所包含的逻辑驱动器数据, 在本例中就是D盘所对应的数据, 然后将其起始扇(逻辑)减去63就是所对应的扩展分区的起始扇(逻辑), 将其起始地址(面/扇区/磁道)改为0面就是扩展分区的起始地址. 然后通过扩展分区就可以得到主分区C的信息, 然后就可以使用FDISK/MBR命令和手工填写分区表恢复整个硬盘. 实际使用这种方法比较麻烦, 如果知道每个分区的大小, 则可以通过使用PQ MAGIC 5 将磁盘重新分区为原来大小(注意: 千万不能应用, 我们只是通过它来获得数据), 并查看INFO来获得以上 数据, 记录以后取消该分区操作, 然后使用NORTON DISK2000手工修改DPT表, 恢复整个硬盘. 该例所对应的分区表数据: 80 01 01 00 06 EF 7F 14 3F 00 00 00 11 E8 3F 00 00 00 41 15 05 EF BF 2A 50 E8 3F 00 60 23 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA 扩展分区表数据: 00 01 41 15 07 EF BF 2A 8F E8 3F 00 21 23 40 00 注意: 逻辑起始扇区和总共分区数是左边为低位, 如该例的扩展分区的起始地址为50 E8 3F 00转换十进制时要先变为00 3F E8 50, 总共占用分区数60 23 40 00要先变为00 40 23 60, 同理当手工填写该值时也要进行高低位转换. -------------------------------------------------------------------------------- 数据恢复一直以来都是我们关注的话题.因为你的电脑数据每天都在遭受诸如病毒,恶意代码,误操作等威胁!哪如何才能恢复数据呢,希望本文章对你有些许帮助! 一,理论篇 要深入学习数据恢复,并非是一件容易的事,要想成为一个数据恢复专家,没有深厚的理论知识是不可能的,你必须了十分了解磁盘的逻辑结构,就让我们来看看需要学习的理论知识吧! 当我们对文件进行访问时,你有没有想过,操作系统是如何对文件进行操作的呢?这些文件又是如何存放在磁盘当中的呢?先来看看硬盘的总体结构,在介绍硬盘总体结构之前有必要介绍一下硬盘的参数,硬盘是以磁头(Heads),柱面(Cylinders),扇区(Sectors)进行访问的。

      其中: 磁头数(Heads)表示硬盘总共有几个磁头,也就是有几面盘片, 最大为 255 (用 8 个二进制位存储); 柱面数(Cylinders) 表示硬盘每一面盘片上有几条磁道,最大为 1023 (用 10 个二进制位存储); 扇区数(Sectors) 表示每一条磁道上有几个扇区, 最大为 63(用 6 个二进制位存储). 每个扇区一般是 512个字节,学习过汇编语言的朋友可能想到了,BIOS中断13H的入口参数中,CH是磁道号其值为0H~FEH(最多255个磁道),CL中低6位为扇区号,其值为1H~3FH(最多63个扇区),DH为磁头号的低位,CL中的高2位为磁头号的高位,也就是说,磁头号最多由10位二进制数表示,(1111111111)2=(1023)10,也就是说最多可以表示的磁头数为1024个请大家记住这些在我们以后的学习中还会用到的,由此可以看出基于这种访问方式,我们最大能访问的磁盘容量是255*1023*63*512字节=8414461440/1048576=8024.66M 只有大约8G的空间,这是因为早期磁盘还很小,想想当年你拥有一块200M硬盘时的喜悦心情吧!就好象当年的科学家们以为1K内存已经很大了一样,让电脑用户很长一段时间都为配置DOS下的内。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.