栏目分类
ATH中文网你的位置:Juventus Fan Token 中文站 > ATH中文网 > 两篇关于汇编方面的文章
两篇关于汇编方面的文章

发布日期:2025-01-07 15:38    点击次数:202

   挽救硬盘数据的方法 林羽今 2000/02/20-    一、前言   硬盘数据丢失以后,并不是完全不可找回的,对重要数据的恢复,更显得重要。很遗憾的是,在发生故障以后,人们一般都是放弃数据恢复的努力,甚至在很多硬盘的经销商,哪怕是总代理处,人们都不能获得帮助,因为其技术人员往往也缺乏这方面的经验和知识。我也曾经向IBM的Product Support Service(in USA)求助,等了一个多星期得到的E-mail答复竟然是记录所有的提示信息和故障前后的详细操作发给他们,谁还记得!那时我也已经解决了问题。   所以,学习一些基本的挽救硬盘数据的方法是有好处的,至少在放弃前可以先尝试一下。如果您使用的是最流行的DOS和Windows,即采取FAT16或FAT32,那么成功的可能性更大。下面我就介绍一下最常用的FAT文件丢失的恢复。   硬盘数据丢失的原因可能有:①误操作:包括误删除、误格式化、误分区、或执行那些程序后后悔等;②病毒发作;③软件使用不当;④容量限制;⑤硬盘物理损坏等。   误删除并不是非常可怕的事情。市面上有几十种工具软件能够恢复误删除。只要原数据区域没有被覆盖或清零,都能够完全恢复。如果被覆盖,那么恢复多少取决于被覆盖的程度。如果想炫耀自己的水平,可以直接修改FDT和FAT。       二、硬盘存储常识和可能用到的数据恢复方法   用最通俗最简单的理解,您可以把硬盘想象成由四部分组成:主引导记录(MBR)、分区表(Partition Table)、文件分配表(FAT)和文件存储区。在一般情况下,这四部分资料恢复的难度是逐渐增大的,即使不难也更花时间更繁琐,所以挽救数据的关键在于按顺序依次尝试恢复。   三部分:保留区,保留扇区一般为1,无备用扇区,主要包括磁盘参数表和引导程序。控制区,包括内容完全相同的FAT1,FAT2以及FDT。文件区,起始位置与FAT表中002H簇呼应。   MBR是硬盘特有的,位于0头0道第1个扇区,包括主引导程序和分区表信息。   FAT32小于260M,0.5KB,8G,4KB,16G,8KB,32G,16KB,32G以上,32KB。   FAT16(M)32-128,256,4,512,8,1024,16,2048,32   FDISK会在实际运行中会取为最接近此数且与单磁柱容量(磁柱数*磁盘数*扇区数)的整数倍。   磁盘容量=磁柱数*磁头数*每道扇区数*512。   在IDE硬盘设计中,最大磁柱数可达65536,磁头数16,最大扇区数255,理论的最大容量127.5G。EIDE.   在传统的DOS环境,通过BIOS读写硬盘数据,由于最早的BIOS只认得1024磁柱,255磁头数,以及最大扇区数63,所以1024*16*512=504M。1994年后,扩充C/H/S法,即BIOS提供的LARGE模式,是从磁头数或其他参数暂借两个位。最大磁柱数变为0-4097,2G限制。这会因为BIOS的不同而出现不能正常读写现象。类似做法。如SEAGATE的EZDrive,以驱动程序载入,然后把整个读写核心换掉,抢在操作系统前运行。软件设计原理类似病毒。LBA学自SCSI技术,C/H/S等参数被重新组成28位的逻辑区块号码后传送硬盘,让硬盘本身去算出真正的C/H/S位置。这种工作模式,理论上能达到127.5GB。如果BIOS不支持,LBA方式也无法突破2G限制。      FAT16中,MBR的前240个字节是引导程序,完成可自举分区系统的引导;从1BEH位移开始的64个字节是硬盘分区表,最后两个字节55H和AAH是自举纪录的存放标志字。每个分区表包括16个字节,分别是自举标志,分区起始地址磁头号,扇区号,柱面号,DOS系统标志,分区终止地址磁头号,扇区号,柱面号,分区起始相对扇区号(4字节),分区实际占用扇区数(4字节)。这些内容可以通过专门的工具软件直观地阅读和修改,比如Diskedit,这里不再介绍。   文件目录表FDT(根目录)。对于根目录下的文件和子目录,FDT记录了文件或子目录的名称、属性、文件生成或最后修改的日期和时间、文件起始簇号及文件的字节长度。文件的后续簇号安排在文件分配表(FAT)中。其分配结构如下: 位移(H)  内容     长度(D)  说明 00      文件名    8       0字节有特殊用途。不满8位用20H填充 08      扩展名    3       无或不足3字节用20H填充 0B      文件属性  1       10H子目录属性 0C      保留区    10   16      时间      2       第15-11位为小时,10-5分,4-0秒/2(0-29) 18      日期      2       第15-9位为年(基准1980),8-5月,4-0日 1A      起始簇    2   1C      字节长度  4       低字节前,高字节后   但和MBR一样,不需要了解太多,可以借助各种磁盘工具软件。      由于硬盘分配的最小单位是1簇,一张FAT表就是一个簇号库。簇号根据系统和硬盘大小有不同。FAT16的簇号在FAT表中占16位。   文件都在文件存储区里,FAT说明文件在文件存储区的位置。所以最原始的恢复数据方法是一个簇一个簇地找出来,并把这些簇连接成完整的文件。不过,这种方法费时费力,而且需要技术人员的高水平(我都未必做得到,特别是遇到我半生不熟的NTFS分区),对于一般人来说,是不可行甚至不可能的。当然,我们这时可以试一试专业软件的辅助恢复。   FAT表的头两个簇号是保留簇,从002簇开始分配给文件,簇号链一直到结束标志为止。。   逻辑扇区号=(簇号-2)*(扇区数/簇)+文件区起始扇区号   磁头号=[逻辑扇区/每道扇区数]MOD磁头数   磁道号=[[逻辑扇区/每道扇区数]/磁头数]   扇区号=(逻辑扇区MOD每道扇区数)+1   []为取整,MOD为取余。            几个相关概念:   低格:是将硬盘划分为一条条磁道和扇区,是真正对硬盘做初始化的写入和破坏。某些病毒残余只能通过低格来对付。业内人士常忠告说,硬盘一般在三个月内不要低格两次。不过在硬盘运行正常时,也没有必要花漫长的时间进行低格。   高格:如Format,只是简单地对硬盘每个扇区做校验,直接清除文件分配表和根目录并写入启动扇区。    三、各种方法的操作具体步骤和注意事项   1、准备工作。   具体步骤:   ①找一台带硬盘的安全无毒的电脑。   ②将故障盘跳线为slave(从盘),接到IDE1上,即用硬盘线的空置接口。   ③开机,(一般是按Del键),进入CMOS SETUP。IDE HDD AUTO DETECTION,测出故障盘参数;或在STANDARD CMOS SETUP中将Primary Slave的TYPE设为AUTO。在BIOS FEATURES SETUP中确保Boot Sequence引导顺序为A,C,SCSI。SAVE & EXIT SETUP保存设置,退出。   ④在重新启动时注意System Configurations列表上显示的First Slave的容量、上一步骤检测出来的故障盘容量和您所知道的该型号硬盘的容量(见硬盘上的标签)是否一致。如果不一致,则认为主板不能很好地支持故障盘,不要再尝试在这台电脑上恢复数据,必须另外找一台别的型号(特别是主板型号)的电脑,进行上述步骤。   ⑤选定将要使用的磁盘工具软件以后,如果软件是windows95/98软件,则必须先除去故障盘,再安装这些工具软件。如果不介意软件在硬盘上操作,如fixmbr,也可以先复制到主硬盘上。   注意:   ①考虑到对8G以上硬盘的兼容性问题,最好是今年新装兼容机,不要用原装机,也最好避免SIS530之类的一体化主板。   ②移动、携带硬盘时,必须有必要的保护手段,小心轻放,避免撞击和落地。   ③打开机箱,插接硬盘时不能带电工作,要把电源断掉。   ④无论如何,不能复制文件到故障盘上。那可能会覆盖掉您想恢复的信息!!!   利用RESCUE,备份原始信息。      2、MBR和分区表的恢复。   这是您所要学习的重点。我发现在大多数异常事故后都可以从恢复MBR和分区表这两部分的数据使硬盘数据恢复正常。   如果您记得原有分区大小,可以在另一同样硬盘上用fdisk、PM、DM等创建同样的分区,   手动:   软件配合:   如果您已经不记得原有分区大小,可以尝试用一些杀毒软件。   不过这些方法都太麻烦。我推荐fixmbr和NDD的配合使用。   fixmbr正如其名,是硬盘主引导记录修复程序。但在实践中发现,并不是那么好用,对于8G以上的FAT32不能很好地支持。我仅仅用它的MBR清零功能(fixmbr 1 /z),消除病毒或可能的错误主引导信息的干扰。这个软件可以从很多网站(比如华军软件)下载,也可以向我索取。   NDD是诺顿磁盘医生,是Norton Utilities(NU)的重要组成部分。NU是一系列功能强大的磁盘工具软件,在后面将专门论述。为求通用性,最大程度兼容FAT32,不可能再使用心爱的NU8了。推荐使用NU2000(4.5)以上版本附带的NDD。如果不特别说明,下文提到NDD均指是NU2000(4.5)版本的NDD。如果有NU2001,或者NU2002,包括Norton systemworks中附带的NU,应该功能更强。   首先,在好盘上安装了NDD,把fixmbr.exe拷贝到C:\   在DOS状态下,   fixmbr 1 /z   最好是在操作前,fixmbr /?,了解一下注意事项,做好备份。   然后,重启电脑,进入WIN9X/ME,运行NDD,根据提示找到相应分区。   重新启动生效。      注意事项:   除了重建分区表,不要进行其他操作。      此方法适用于以下情况。   病毒破坏分区表(Partition Table)和主引导记录(MBR)。   DM之类的软件不当使用造成的数据丢失。   误用fdisk之类的软件重新分区。   低版本的多系统引导程序对8G以上的硬盘不支持造成的原有数据丢失。   其他原因造成的MBR或PartitionTable损坏。      3、大多数磁盘管理软件都具有系统备份的功能,建议定期进行系统备份,特别是CMOS, MBR, partition table, FAT等的备份。在可能对硬盘资料有改动的操作前,更需要备份这些资料。这种备份在硬盘碎片重整后更显重要。    四、8G问题   现在的主流IDE硬盘容量逐渐发展到10G以上,受到其出色的性价比引诱,许多单位和家庭也都购买了大硬盘。然而8G毕竟是个关口,许多主板都不支持8G以上的硬盘,在硬盘自动检测的时候,只能将其识别为8G,同时还可能出现的问题是不能引导。   然而在Win97或98中,如果作为从盘,那么已经分区好的硬盘是不存在8G问题的。哪怕主板只能认到8G,也不妨碍大硬盘数据的正确存取。问题集中在,在Win97或98附带的DOS环境中,仍然无法识别第二硬盘。   NT4.0也存在着8G问题。即使主板BIOS或专门的接口卡支持8G以上的IDE硬盘,也必须将NT安装在位于前1024磁柱的可引导分区上。windows2000则不存在8G问题。   硬盘的发展趋势是容量增大,价格降低,在大硬盘技术逐渐成熟的情况下,我们不能因为8G限制就放弃对新技术的运用,而应该逐步解决可能出现的问题。目前我推荐给朋友的都是性价比最优的20G硬盘。但为了数据安全,我建议:   1、为了数据安全,超过8G大硬盘不要用在老主板上,除非BIOS已经升级能支持大硬盘。有几例数据丢失的情况都是发生在接到老主板而误操作后。   2、包含有重要数据的硬盘作为第二硬盘时,必须确保主盘没有多系统引导, 五、病毒问题   虽然有些病毒是仅仅是制作者对自身技术的炫耀,不会对感染病毒的电脑产生破环,但同时存在大量病毒,威胁着硬盘数据。   对硬盘资料具有破坏作用的恶性病毒通常有两类,引导型病毒和文件型病毒。   有些引导型病毒会将硬盘某域标记为坏簇,而藏身其中,即使杀毒,去除其传染性和激活手段,其残躯仍留在硬盘上,只有低格才能够消除。   很多人会有误解,认为文件型病毒不会损害MBR/FDT/FAT,事实上传播模式和破坏模块是不一样的。有的文件型病毒甚至能够将硬盘扇区清零。    六、个案分析(排除故障的思路和需要考虑的问题)   下面以两个实例说明解决的步骤和应该考虑的问题。   1、   有一块IBM13G硬盘,在联想双子恒星(SIS530主板)上原可以正确识别13G,但一日清晨不知何故只认528M,作为从盘察看发现已经存在三个无法正确读取的分区,容量总合528M,Norton Utilities 2000(4.5) 的NDD对之都无可奈何。   CMOS设置中硬盘自动检测参数1662,255,0,26499,63(LBA13671)。放到其他双子恒星上也如此,排除最初“天气潮湿主板故障”的假设。由于此盘中包含重要数据,需要数据恢复。   ALi主板26500,16,63(LBA13677)。做为主盘无法正常启动,作为从盘发现原来的系统区(C盘)仍在。   怀疑是病毒,使用KV300,报告no

Powered by Juventus Fan Token 中文站 @2013-2022 RSS地图 HTML地图

Copyright Powered by365站群 © 2013-2024