ImageVerifierCode 换一换
格式:DOCX , 页数:44 ,大小:541.52KB ,
资源ID:19283044      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19283044.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业设计Word文档下载推荐.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

毕业设计Word文档下载推荐.docx

1、由于计算机的应用越来越广泛,硬盘的容量也越来越大,用户的硬盘数据(积累很久的数据)显得很重要,所以,保护起我们这些重要的硬盘,对计算机的维护显得日益重要。计算机在正常的工作时,是按照“逻辑盘”对硬盘进行数据存取的,这就是我们通常说的C盘D盘.。这种数据存取的前提条件是硬盘要有正常的主引导记录、分区表、分区引导记录、文件分配表、文件目录表。如果,其中有一项不正常,计算机就不能正常工作。然而,磁盘在使用中出现的不正常情况是经常发生的,如遭到病毒攻击、使用者的误操作、认为的破坏等等。这时就要找出能够挽救硬盘,恢复数据,将损失尽可能减少。这成为了我们的一个重要课题,也是本程序开发的目的和动力。本次程序

2、的功能主要包括有:恢复MBR、DPT、DBR、BPB和根目录区的数据等等。通过Debug分析硬盘相关信息,利用Turbro C编辑工具实现程序。这个程序能恢复整盘是一个文件而且整个分配表全连续的FAT32硬盘数据。关键字:硬盘;故障;磁盘维护;Turbo c;FAT32;Abstract Computer software and hardware updates to the speed, dizzying. Today, computer users are faced with two kinds of confusion. First, the price of hardware is

3、 always in the lower and lower after you buy; speed, hard drive capacity, memory configuration, etc. will never be enough, and wait until enough time, and there was no time to learn how to use them. And maintenance of hardware failure always occur only after the contract expires. Therefore, upgradin

4、g hardware endless. Second, more and more software systems, and the application of more and more users need enhancements and bug fixes are always appear in the next version elusive. As a result of the application of the computer more and more widely, increasing the capacity of the hard disk, and the

5、 users hard drive data (the data accumulation time) is very important to protect these important from our hard disks, computer maintenance become increasingly important. Computer in the normal working hours, in accordance with the logical data on the hard disk access, this is what we usually say tha

6、t the C disk D plate . This data access is a prerequisite to have a normal hard disk master boot record, partition table, partition boot record, file allocation table, document table of contents. If there is an unusual one, the computer will not work correctly. However, the disk appears in use do no

7、t normally take place frequently, such as by virus attacks, users misoperation, and so that the damage. At this time we should find out the hard drive to save and restore data, to minimize losses. This has become an important topic we are also the purpose of the program development and motivation.Th

8、e main function of the procedure include: the restoration of MBR, DPT, DBR, BPB and the root zone and so forth. Debug hard drive through the analysis of relevant information, use editing tools to achieve Turbro C procedures. This procedure to restore the entire disk is a file allocation table and th

9、e whole-wide data for the FAT32 hard drive.Key words: hard drive; breakdown; disk maintenance; Turbo c; FAT32;引 言在今天这样的信息时代,信息作为一种无形的价值,在人们心目中的地位也越来越高。谁最先获得信息,谁就可能是胜利者。而无形的信息,往往是保存在有形的磁盘中,而在当今纷繁复杂的世界中,信息的安全性总是被严重地威胁着,随时都有被毁灭的可能性。所以,人们越来越认识到数据安全的重要性。虽然,一个磁盘价钱不菲,但作为至关重要的信息,却比磁盘珍贵得多。难怪有的企业把磁盘拿去维修时,费用达几

10、千元,几万元,甚至上十万元。这正是因为数据的重要性,对一个专门靠收集数据来分析的部门来说,如果有一天收集了几年的数据不慎受到破坏,那么,失去了双何止这是几千元,几万元呢?所以,如果把磁盘的成本同存储的重要数据相比,很多情况下磁盘成本是可以忽略不计的。从而就有这样一句话,那就是“数据无价”。因此,随着各种情况所造成重要数据丢失使得数据安全的重要性日益提到人们的日程。通过对硬盘结构及其工作原理的研究,我们发现硬盘的数据丢失很多时候并不是完全的数据毁灭,而只是对用户来说是不可视的硬盘主引导记录,分区表,引导扇区等的破坏,只要这些地方修复了,很多时候硬盘也就修复了,数据也就得到了拯救。有鉴于此,本论文

11、从硬盘结构及其工作原理着手,对FAT32格式的硬盘的误格式化数据恢复。通过程序目前只能简单的对整个盘是一个文件,整个分配表全连续的进行恢复。第一章 硬盘的物理结构图1.1 硬盘的物理结构硬盘存储数据是根据电、磁转换原理实现的。硬盘由一个或几个表面镀有磁性物质的金属或玻璃等物质盘片以及盘片两面所安装的磁头和相应的控制电路组成(图1.1),其中盘片和磁头密封在无尘的金属壳中。硬盘工作时,盘片以设计转速高速旋转,设置在盘片表面的磁头则在电路控制下径向移动到指定位置然后将数据存储或读取出来。当系统向硬盘写入数据时,磁头中“写数据”电流产生磁场使盘片表面磁性物质状态发生改变,并在写电流磁场消失后仍能保持

12、,这样数据就存储下来了;当系统从硬盘中读数据时,磁头经过盘片指定区域,盘片表面磁场使磁头产生感应电流或线圈阻抗产生变化,经相关电路处理后还原成数据。因此只要能将盘片表面处理得更平滑、磁头设计得更精密以及尽量提高盘片旋转速度,就能造出容量更大、读写数据速度更快的硬盘。这是因为盘片表面处理越平、转速越快就能越使磁头离盘片表面越近,提高读、写灵敏度和速度;磁头设计越小越精密就能使磁头在盘片上占用空间越小,使磁头在一张盘片上建立更多的磁道以存储更多的数据。第二章 硬盘的逻辑结构硬盘上的数据是如何组织与管理的呢?硬盘首先在逻辑上被划分为磁道、柱面以及扇区,其结构关系如图2.1所示。图2.1磁头、柱面和扇

13、区硬盘由很多盘片(platter)组成,每个盘片的每个面都有一个读写磁头。如果有N个盘片。就有2N个面,对应2N个磁头(Heads),从0、1、2开始编号。每个盘片被划分成若干个同心圆磁道(逻辑上的,是不可见的。)每个盘片的划分规则通常是一样的。这样每个盘片的半径均为固定值R的同心圆再逻辑上形成了一个以电机主轴为轴的柱面(Cylinders),从外至里编号为0、1、2每个盘片上的每个磁道又被划分为几十个扇区(Sector),通常的容量是512byte,并按照一定规则编号为1、2、3形成CylindersHeadsSector个扇区。这三个参数即是硬盘的物理参数。第三章 硬盘引导原理3.1 MB

14、R(master boot record)扇区计算机在按下power键以后,开始执行主板bios程序。进行完一系列检测和配置以后。开始按bios中设定的系统引导顺序引导系统。假定现在是硬盘。Bios执行完自己的程序后如何把执行权交给硬盘呢。交给硬盘后又执行存储在哪里的程序呢。其实,称为mbr的一段代码起着举足轻重的作用。MBR(master boot record),即主引导记录,有时也称主引导扇区。位于整个硬盘的0柱面0磁头1扇区(可以看作是硬盘的第一个扇区),bios在执行自己固有的程序以后就会jump到mbr中的第一条指令。将系统的控制权交由mbr来执行。在总共512byte的主引导记录

15、中,MBR的引导程序占了其中的前446个字节(偏移0H偏移1BDH),随后的64个字节(偏移1BEH偏移1FDH)为DPT(Disk PartitionTable,硬盘分区表),最后的两个字节“55 AA”(偏移1FEH偏移1FFH)是分区有效结束标志。MBR不随操作系统的不同而不同,意即不同的操作系统可能会存在相同的MBR,即使不同,MBR也不会夹带操作系统的性质。具有公共引导的特性。我们来分析一段mbr。下面是用winhex查看的一块希捷120GB硬盘的mbr。你的硬盘的MBR引导代码可能并非这样。不过即使不同,所执行的功能大体是一样的。我们看DPT部分。操作系统为了便于用户对磁盘的管理。

16、加入了磁盘分区的概念。即将一块磁盘逻辑划分为几块。磁盘分区数目的多少只受限于CZ的英文字母的数目,在上图DPT共64个字节中如何表示多个分区的属性呢?microsoft通过链接的方法解决了这个问题。在DPT共64个字节中,以16个字节为分区表项单位描述一个分区的属性。也就是说,第一个分区表项描述一个分区的属性,一般为基本分区。第二个分区表项描述除基本分区外的其余空间,一般而言,就是我们所说的扩展分区。这部分的大体说明见表1。表1 图2分区表第一字段字节位移字段长度值字段名和定义0x01BEBYTE0x80 引导指示符(Boot Indicator) 指明该分区是否是活动分区。0x01BF0x0

17、1开始磁头(Starting Head)0x01C06位开始扇区(Starting Sector) 只用了05位。后面的两位(第6位和第7位)被开始柱面字段所使用0x01C110位0x00开始柱面(Starting Cylinder) 除了开始扇区字段的最后两位外,还使用了1位来组成该柱面值。开始柱面是一个10位数,最大值为10230x01C20x07系统ID(System ID) 定义了分区的类型,详细定义,请参阅图40x01C30xFE结束磁头(Ending Head)0x01C40xFF结束扇区(Ending Sector) 只使用了05位。最后两位(第6、7位)被结束柱面字段所使用0x

18、01C50x7B结束柱面(Ending Cylinder) 除了结束扇区字段最后的两位外,还使用了1位,以组成该柱面值。结束柱面是一个10位的数,最大值为10230x01C6DWORD0x0000003F相对扇区数(Relative Sectors) 从该磁盘的开始到该分区的开始的位移量,以扇区来计算0x01CA0x00DAA83D总扇区数(Total Sectors) 该分区中的扇区总数注:上表中的超过1字节的数据都以实际数据显示,就是按高位到低位的方式显示。存储时是按低位到高位存储的。两者表现不同,请仔细看清楚。以后出现的表,图均同。也可以在winhex中看到这些参数的意义:图3说明: 每

19、个分区表项占用16个字节,假定偏移地址从0开始。如图3的分区表项3。分区表项4同分区表项3。1、0H偏移为活动分区是否标志,只能选00H和80H。80H为活动,00H为非活动。其余值对microsoft而言为非法值。2、重新说明一下(这个非常重要):大于1个字节的数被以低字节在前的存储格式格式(little endian format)或称反字节顺序保存下来。低字节在前的格式是一种保存数的方法,这样,最低位的字节最先出现在十六进制数符号中。例如,相对扇区数字段的值0x3F000000的低字节在前表示为0x0000003F。这个低字节在前的格式数的十进制数为63。3、系统在分区时,各分区都不允许

20、跨柱面,即均以柱面为单位,这就是通常所说的分区粒度。有时候我们分区是输入分区的大小为7000M,分出来却是6997M,就是这个原因。 偏移2H和偏移6H的扇区和柱面参数中,扇区占6位(bit),柱面占10位(bit),以偏移6H为例,其低6位用作扇区数的二进制表示。其高两位做柱面数10位中的高两位,偏移7H组成的8位做柱面数10位中的低8位。由此可知,实际上用这种方式表示的分区容量是有限的,柱面和磁头从0开始编号,扇区从1开始编号,所以最多只能表示1024个柱面63个扇区256个磁头512byte=8455716864byte。即通常的8.4GB(实际上应该是7.8GB左右)限制。实际上磁头数

21、通常只用到255个(由汇编语言的寻址寄存器决定),即使把这3个字节按线性寻址,依然力不从心。 在后来的操作系统中,超过8.4GB的分区其实已经不通过C/H/S的方式寻址了。而是通过偏移CH偏移FH共4个字节32位线性扇区地址来表示分区所占用的扇区总数。可知通过4个字节可以表示232个扇区,即2TB=2048GB,目前对于大多数计算机而言,这已经是个天文数字了。在未超过8.4GB的分区上,C/H/S的表示方法和线性扇区的表示方法所表示的分区大小是一致的。也就是说,两种表示方法是协调的。即使不协调,也以线性寻址为准。(可能在某些系统中会提示出错)。超过8.4GB的分区结束C/H/S一般填充为FEH

22、 FFH FFH。即C/H/S所能表示的最大值。有时候也会用柱面对1024的模来填充。不过这几个字节是什么其实都无关紧要了。虽然现在的系统均采用线性寻址的方式来处理分区的大小。但不可跨柱面的原则依然没变。本分区的扇区总数加上与前一分区之间的保留扇区数目依然必须是柱面容量的整数倍。(保留扇区中的第一个扇区就是存放分区表的MBR或虚拟MBR的扇区,分区的扇区总数在线性表示方式上是不计入保留扇区的。如果是第一个分区,保留扇区是本分区前的所有扇区。3.2 扩展分区扩展分区中的每个逻辑驱动器都存在一个类似于MBR的扩展引导记录( Extended Boot Record, EBR),也有人称之为虚拟mb

23、r或扩展mbr,意思是一样的。扩展引导记录包括一个扩展分区表和该扇区的标签。扩展引导记录将记录只包含扩展分区中每个逻辑驱动器的第一个柱面的第一面的信息。一个逻辑驱动器中的引导扇区一般位于相对扇区32或63。但是,如果磁盘上没有扩展分区,那么就不会有扩展引导记录和逻辑驱动器。第一个逻辑驱动器的扩展分区表中的第一项指向它自身的引导扇区。第二项指向下一个逻辑驱动器的EBR。如果不存在进一步的逻辑驱动器,第二项就不会使用,而且被记录成一系列零。如果有附加的逻辑驱动器,那么第二个逻辑驱动器的扩展分区表的第一项会指向它本身的引导扇区。第二个逻辑驱动器的扩展分区表的第二项指向下一个逻辑驱动器的EBR。扩展分

24、区表的第三项和第四项永远都不会被使用。通过一幅4分区的磁盘结构图可以看到磁盘的大致组织形式。如图5:关于扩展分区,如图6所示,扩展分区中逻辑驱动器的扩展引导记录是一个连接表。该图显示了一个扩展分区上的三个逻辑驱动器,说明了前面的逻辑驱动器和最后一个逻辑驱动器之间在扩展分区表中的差异。除了扩展分区上最后一个逻辑驱动器外,表2中所描述的扩展分区表的格式在每个逻辑驱动器中都是重复的:第一个项标识了逻辑驱动器本身的引导扇区,第二个项标识了下一个逻辑驱动器的EBR。最后一个逻辑驱动器的扩展分区表只会列出它本身的分区项。最后一个扩展分区表的第二个项到第四个项被使用。 表2 扩展分区表项的内容扩展分区表项分

25、区表项的内容第一个项包括数据的开始地址在内的与扩展分区中当前逻辑驱动器有关的信息第二个项有关扩展分区中的下一个逻辑驱动器的信息,包括包含下一个逻辑驱动器的EBR的扇区的地址。如果不存在进一步的逻辑驱动器的话,该字段不会被使用第三个项未用第四个项扩展分区表项中的相对扇区数字段所显示的是从扩展分区开始到逻辑驱动器中第一个扇区的位移的字节数。总扇区数字段中的数是指组成该逻辑驱动器的扇区数目。总扇区数字段的值等于从扩展分区表项所定义的引导扇区到逻辑驱动器末尾的扇区数。有时候在磁盘的末尾会有剩余空间,剩余空间是什么呢?我们前面说到,分区是以1柱面的容量为分区粒度的,那么如果磁盘总空间不是整数个柱面的话,

26、不够一个柱面的剩下的空间就是剩余空间了,这部分空间并不参与分区,所以一般无法利用。照道理说,磁盘的物理模式决定了磁盘的总容量就应该是整数个柱面的容量,为什么会有不够一个柱面的空间呢。在我的理解看来,本来现在的磁盘为了更大的利用空间,一般在物理上并不是按照外围的扇区大于里圈的扇区这种管理方式,只是为了与操作系统兼容而抽象出来CHS。可能其实际空间容量不一定正好为整数个柱面的容量吧。第四章 FAT分区原理先来一幅结构图:现在我们着重研究FAT格式分区内数据是如何存储的。FAT分区格式是MICROSOFT最早支持的分区格式,依据FAT表中每个簇链的所占位数(有关概念,后面会讲到)分为fat16、fa

27、t32两种种格式,但其基本存储方式是相似的。仔细研究图7中的fat16和fat32分区的组成结构。下面依次解释DBR、FAT1、FAT2、根目录、数据区、剩余扇区的概念。提到的地址如无特别提示均为分区内部偏移。4.1操作系统引导记录区DBR区(DOS BOOT RECORD)即操作系统引导记录区的意思,通常占用分区的第0扇区共512个字节(特殊情况也要占用其它保留扇区,我们先说第0扇)。在这512个字节中,其实又是由跳转指令,厂商标志和操作系统版本号,BPB(BIOS Parameter Block),扩展BPB,os引导程序,结束标志几部分组成。 以用的最多的FAT32为例说明分区DBR各字

28、节的含义。见图8。图8的对应解释见表3 表3 FAT32分区上DBR中各部分的位置划分字段名对应图8颜色3个字节跳转指令0x038个字节厂商标志和os版本号0x0B53个字节BPB0x4026个字节扩展BPB0x5A420个字节引导程序代码0x01FE2个字节有效结束标志图9给出了winhex对图8 DBR的相关参数解释:根据上边图例,我们来讨论DBR各字节的参数意义。MBR将CPU执行转移给引导扇区,因此,引导扇区的前三个字节必须是合法的可执行的基于x86的CPU指令。这通常是一条跳转指令,该指令负责跳过接下来的几个不可执行的字节(BPB和扩展BPB),跳到操作系统引导代码部分。跳转指令之后

29、是8字节长的OEM ID,它是一个字符串, OEM ID标识了格式化该分区的操作系统的名称和版本号。为了保留与MS-DOS的兼容性,Windows 98格式化的磁盘上OEM ID字段出现“MSWIN4.1”。接下来的从偏移0x0B开始的是一段描述能够使可执行引导代码找到相关参数的信息。通常称之为BPB(BIOS Parameter Block),BPB一般开始于相同的位移量,因此,标准的参数都处于一个已知的位置。磁盘容量和几何结构变量都被封在BPB之中。由于引导扇区的第一部分是一个x86跳转指令。因此,将来通过在BPB末端附加新的信息,可以对BPB进行扩展。只需要对该跳转指令作一个小的调整就可以适应BPB的变化。图9已经列出了项目的名称和取值,为了系统的研究,针对图8,将FAT32分区格式的BPB含义和扩展BPB含义释义为表格,见表4和表5。表4 FAT32分区的BPB字段字段长度(字节)图8对应取值名称和定义20x0200扇区字节数(Bytes Per Sector) 硬件扇区的大小。本字段合法的十进制值有512、1024、2048和4096。对大多数磁盘来说,本字段的值为5120x0D10x08每簇扇区数(Sectors Per Cluster),一簇中的扇区数。由于FAT32文件系统只能跟踪有限个簇(最多为4 29

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1