• 实时天气:多伦多 10°
    温度感觉:
  • 实时天气:温哥华
    温度感觉:
  • 实时天气:卡加利 17°
    温度感觉: 15°
  • 实时天气:蒙特利尔
    温度感觉:
  • 实时天气:温尼伯 18°
    温度感觉: 16°
查看: 10839|回复: 26
打印 上一主题 下一主题

漫谈硬盘彻底损坏后的数据抢救

跳转到指定楼层
楼主
发表于 2004-12-14 22:23:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
伴随着科技的发展,80G、120G的硬盘在普通用户中都已经屡见不鲜了。但是,在长时间的使用硬盘过程中,我们也在承受着硬盘随时也会出错的风险,轻则硬盘的数据丢失,重则整个硬盘报废,造成不可预料的严重后果。采用什么办法,才能解决常见的硬盘数据丢失故障?

一、硬盘的分区
对于你手中硬盘来说,首先要做的事情就是分区了。硬盘分区是否合理直接影响到以后工作的便利性和数据的安全性。我们最常见到的分区表错误也是硬盘的最严重错误,不同错误的程度会造成不同的损失。如果是没有活动分区标志,则计算机无法启动。但从软驱或光驱引导系统后可对硬盘读写,可通过fdisk重置活动分区可进行修复。如果是某一分区类型错误,会造成某一分区的丢失。

在一般情况下完成硬盘分区之后,会形成3种形式的分区状态;即主分区、扩展分区和非DOS分区。在硬盘中非DOS分区(Non-DOS Partition)是一种特殊的分区形式,它是将硬盘中的一块区域单独划分出来供另一个操作系统使用,对主分区的操作系统来讲,是一块被划分出去的存储空间。只有非DOS分区内的操作系统才能管理和使用这块存储区域,非DOS分区之外的系统一般不能对该分区内的数据进行访问。

主分区则是一个比较单纯的分区,通常位于硬盘的最前面一块区域中,构成逻辑C磁盘。其中的主引导程序是它的一部分,此段程序主要用于检测硬盘分区的正确性,并确定活动分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘引导,但从软区或光区之后可对硬盘进行读写。

而扩展分区的概念是比较复杂的,极容易造成硬盘分区与逻辑磁盘混淆;分区表的第四个字节为分区类型值,正常的可引导的大于32mb的基本DOS分区值为06,扩展的DOS分区值是05。如果把基本DOS分区类型改为05则无法启动系统 ,并且不能读写其中的数据。如果把06改为DOS不识别的类型如efh,则DOS认为改分区不是DOS分区,当然无法读写。很多人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正常。分区表中还有其他数据用于纪录分区的起蓟蛑罩沟刂贰U庑┦
沙发
发表于 2004-12-16 00:26:15 | 只看该作者
斑竹讲得不错!此类问题经常发生,哪怕是有些电脑业者也不是很清楚。另外,你介绍了几个工具软件,一定要慎用。搞不好把有些可以修复的数据彻底毁坏了。总之,和人生病一样,预防最重要,任何药物都有副作用。
板凳
发表于 2004-12-16 00:51:26 | 只看该作者

转贴一篇-------升级160GB的大硬盘

如果你要升级160GB的大硬盘,如果你想避免大硬盘在使用中出现古怪问题,请仔细阅读下文。
  硬盘技术的发展除了速度越来越快以外,在容量上也过了几道门槛,每一道门槛都给升级造成了一定困难。在以往,只是主板支持的问题,现在连操作系统都出现了由于硬盘容量过大的兼容性问题。如何顺利地升级使用160GB以上的大硬盘,是很有讲究的,万一处 理不当,就有丢失大量数据的危险。

  一、问题的由来

  因为簇和柱面早期定义的问题,很多操作系统和BIOS都有137GB的容量限制,在以往32GB、80GB门槛的时候,可以利用不调用BIOS的DM等软件,直接对硬盘分区,使用也没什么问题。不过超过了137GB的容量以后,需要48位寻址的支持, 如果此时主板有137GB限制的话,DM也不让你分超过137GB后面的容量(可能显示容量正确,但真进行分区操作时候会弹出红色提示窗口:HDD I/O ERROR)。或者即使你用PQMAGIC等软件分出来了,也有许多的兼容性问题。

  现在最突出的问题,就是操作系统中存在数据溢出的BUG,如果处理不当,很容易突然出现不认分区格式、丢分区或是目录变乱码的故障。这种故障带有随机性,笔者在几个大的BBS已经见到有不少这样的帖子,所以不要以为目前使用正常,就漫不经心,万一“中 奖”了,那可是上百GB的数据损失啊!

  二、支持大硬盘的关键

  1.支持48位寻址的BIOS

  这个是顺利使用160GB大硬盘的第一关键——有人沿用以前的方式,挂作从盘,在BIOS里把硬盘设为NONE,然后靠DM分区或让Windows自己识别硬盘。这种方式也不能说完全不可用,但通常会让硬盘只能运行在PIO的传输模式下,无法使用UD MA传输,新硬盘性能发挥就大打折扣了;而且没BIOS的支持,操作系统在48位寻址模式方面兼容性也容易出问题。

  如果不清楚自己的主板BIOS是否支持48位寻址,可以下载Intel出的一个小工具来检验一下。这个工具名为Intel 48-bit LBA Test Program(注意,在使用该软件时,需要挂接一容量超过137GB的硬盘),在DOS下运行“48lbachk.exe”之后它会搜索系统中所挂接的ATA/ATAPI设备并给出相应提示,如当前接硬盘的容量等。针对不同的硬件系统,检测结果会出现以下三种:

  “PASSED”表示BIOS支持48-bit LBA;

  “FAILED”表示BIOS不支持48-bit LBA;

  “UNDETERMINED”则表示测试程序不能确定被测BIOS是否具有48-bit LBA能力。遇到这种情况,还是上厂家主页查查资料再确认,笔者用的升技KGB7 RAID检验结果也是不能确定的,但在升技的主页找到的BIOS说明可以支持137GB以上的硬盘,刷新后顺利升级了。最好的办法还是升级BIOS,不然宁可买小一点的硬盘,不要冒数据丢失的危险。

工具下载地址:ftp://download.intel.com/support/chipsets/iaa/48lbachk.exe

2.分区软件也讲究

  接下来就是分区软件是否支持大便盘的问题了。就目前笔者接触过的软件,第三方的分区软件不是支持不充分,就是兼容性问题比较多——像DM最新的版本只到2001年的9.56,实在太落伍了。有些文章介绍利用DM来改容量变相支持大硬盘,这种方式是有危 险的,只适用于很老的主板上。通常的后果是造成被改的160GB或者250GB硬盘只能当成137GB使用,再也改不回来,成为“残疾”。

  DISKGEN我也专门试验过,结果是能识别160GB的硬盘,也能正常分区,但不能在软件里顺利格式化,只有FAT12(不是FAT32)的格式可选,显然是支持不充分了。现在只有用WinMe上自带的FDISK和Win2000/XP启动光盘,或是进入了Windows后用它的“磁盘管理器”来分区及格式化大硬盘比较保险,PQ分区大师的兼容性问题太多了,也不可靠。

  还有个现象就是用DOS里的Format格式化大于64GB的分区时,在开始报告格式化的大小是不正确的,但到最后会正确显示数值。原因是Format命令会在内部使用一些16位值来计算大小,当硬盘大小等于或大于64GB时,这些变量中有一些会溢出 。例如,如果分区或硬盘的大小为70.3GB(75,484,122,112字节),Format命令最初报告的硬盘大小就是 63 GB(6,764,579,840 字节),这只是显示方面的问题,记住加上“/Q”参数,格式化就能很快完成了。可参考微软知识库的文章:http://support.microsoft.com/default.aspx?scid=kb;

  三、操作系统相关的要点

  不支持48位寻址的操作系统,在访问大于137GB的数据时有可能出现溢出的Bug,造成破坏,这是目前种种问题的根源。最常见的情况就是能够正确分区并安装好系统,但写入大量数据(120GB以上)后就丢失分区,或者是拷贝数据过程中失去响应。重新 启动以后该分区的文件夹变成了乱码,甚至不能访问,报告该分区没有经过格式化……现在每个人用的操作系统各有不同,微软的补丁也很多,相当多的人不知道自己系统里存在这种危险性。其实微软的在线知识库里有相关的说明文章,地址是http://support.microsoft.com/default.aspx?scid=kb;en-us;303013 ,不过是英文的页面,所以没引起大家的重视。笔者查阅了相关的资料,综合自己的使用经验,总结出几条要点: < r o l i a. n e t >

  1.尽量用微软自家的分区软件

  这点在上面分析过了,主要是为了保证分区表的稳定。注意不是Win98的FDISK,要WinMe自带的FDISK才能显示正确容量。如果你嫌FDISK分区速度太慢,可以先划出一个5GB左右的分区,安装Win2000或WinXP等操作系统,后面 的容量到Windows中的“控制面板→管理工具→磁盘管理”里再划分,如图2。格式化时注意选好格式,勾上快速格式化。另外Win2000和WinXP的安装光盘引导后,都具有磁盘管理的功能,还是中文界面,推荐使用。

2.适当的补丁及打开48位寻址功能

  如果磁盘分区中安装了不支持48位LBA寻址的旧版本Windows,例如没打补丁的Win2000或更旧版本,而该分区以前是由支持48位的系统在超出当前137GB的可寻址限制创建的,访问这些分区就可能出现破坏数据的情况。如果在注册表中启用了 48位ATAPI支持,并且具有容量超过137GB的硬盘,但是没有48位LBA兼容BIOS,则只有硬盘的前137GB是可寻址的,不能使用硬盘的其余部分。

  Win2000的用户,请打上SP4补丁。微软的资料上说,安装了 WinXP Home Edition 或 WinXP Professional 的 Service Pack 1 (SP1) 之后才会启用48位LBA支持。事实上是,即使打过SP1的补丁也要检查 Atapi.sys 的版本,因为只有5.1.2600.1135版本才能完全支持48 位 LBA,(WinXP 64-Bit Edition需要5.1.2600.1152版本)而5.1.2600.1135版本是在SP1后推出的,这个文件是在331958这个补丁里。如果你对诸多补丁感到混乱,或下载有困难,可以手工编辑注册表,操作如下:

  在“开始→运行”中键入regedit,在HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServicesAtapiParameters下,建立一个DWORD值,名为EnableBigLba,数值填1,如 图3。这是专业版的修改方法,Home版和Server版我没用过,但在注册表内搜索ATAPI的键值,相应作修改应该也不算难事。听朋友说,他用的Win2003也能正常识别137GB后面的容量。
3.分区及格式处理的建议

  ①尽量把NTFS分区放最后

  Win98实在是太古老了,对NTFS格式和48位寻址都不支持,微软也停止了对它升级支持。虽然在预先分好区的160GB硬盘上,Win98也能访问各个FAT32分区,但难保不会出什么Bug。鉴于某些老的软件必须在Win98里运行,建议大家使 用Win98+Win2000/XP的双系统,而且把100GB以后的容量格式化为NTFS分区,放在最后。这样,Win98运行的时候,不会访问到超过137GB以后的数据,就大大减少了破坏数据的危险。

  ②可以把最后30GB单独分成一个区

  如果你的机器里有工程图纸、3D素材这样重要的数据,建议把最后的30GB专门分出一个区。再把无关重要的东西放到里面,试着把分区装满,进行多次读写的试验。如果最后的分区一直读写正常,那说明系统对48位寻址兼容性良好;万一不正常,也不会措手不 及,造成巨大的损失。

  ③及时备份分区表

  无论你用的是不是超过137GB的硬盘,及时备份分区表都是很重要的。万一遇到突发故障,有分区表备份,恢复数据把握就大多了。

  另外,建议不要把分区填得太满,保持1GB左右的空间比较保险。笔者试过在一个磁盘阵列上一不小心解压临时文件把C盘填满了,结果Windows提示故障并停止了响应,按RESET重新启动后,竟然提示阵列不能识别了。只有重新进行设置并分区,损失了 部分数据,可谓血的教训。

  四、小结

  1.注意,这里说的137GB容量限制,是指单个硬盘而言。不是说你买了两三个硬盘,合起来容量会限制在137GB。例如买了两个120GB的硬盘,如果没组成阵列,分别使用,加起来的200多GB的总容量是不受影响的。

  2.BIOS不支持137GB以上硬盘容量的主板,尽量升级BIOS,否则还是买120GB的硬盘好了。主要是考虑到数据溢出的Bug,遇到厂家BIOS停止升级又不愿意花钱买新主板的,还是不要冒险了。

  3.如果分区是Win2000/XP创建的,万一系统崩溃,务必记住:重新安装后,在未安装相应补丁前,千万不要访问硬盘100GB后面的分区,否则可能导致数据丢失!
地板
发表于 2004-12-16 15:03:42 | 只看该作者
关于160G分区,我的经验是先确定BIOS支持160G,也就是最好升级到最新版。然后用WinMe的启动软盘启动,用里面的FDISK划出一个C盘。这个C盘不要太大,最好不要高过8G(C盘主要安装OS和一些象Office这样的主要软件,所以7G多应该足够了)。激活和Format这个C盘之后,就安装XP。在安装过程中,不要动剩余的磁盘空间。安装完OS,启动后升级XP SP2,再加装Intel Application Accelerator,最后按照上面文章中提及的那样安装和检查那些系统设置。最最后,运行XP自带的compmgmt.msc(也就是“管理工具”中的“计算机管理”),使用其中的“磁盘管理”来将剩余的磁盘空间分区。这应该是最安全和最迅捷的办法了。
5#
 楼主| 发表于 2004-12-17 20:55:54 | 只看该作者

楼上两位说得不错

我有个问题,如何快捷和完整地备份、恢复硬盘分区表?

用什么样的工具软件?
6#
发表于 2004-12-18 01:10:39 | 只看该作者
斑竹提的问题不错,可这问题却不太好回答,通常情况下恢复分区表用手工较好,使用工具有一些限制不是任何情况下都可以用的。
7#
 楼主| 发表于 2004-12-18 02:31:32 | 只看该作者

赞成

在Dos时代,norton utilities里面的 ndd 是可以备份MBR和partition info和FAT的。现在反倒没有此类工具好用。

我看最好的办法还是把数据及时烧盘保存。现在的DVD刻录机在80元左右,DVD盘片每张越0.5元,可以保存4.5G数据。而硬盘一旦出故障需要恢复的时候费时费力。

另外,很多软件有备份功能,包括Norton的 Ghost (最新版本9 with systemworks 2005), instant recall (Markham一家公司出品,实际上是中国软件公司制作), Aronicg公司系列产品等。
8#
发表于 2004-12-18 17:48:33 | 只看该作者
既然没有工具软件, 如何手动备份分区表呢? 请指教.
9#
发表于 2004-12-19 12:10:14 | 只看该作者

硬盘检测不到,还怎么抢救数据啊

10#
发表于 2004-12-19 23:05:07 | 只看该作者

回复:硬盘检测不到,还怎么抢救数据啊

最初由[wj116]发布
硬盘检测不到,还怎么抢救数据啊
这涉及到硬盘维修的问题,只有修好了硬盘才能谈得到恢复数据。
11#
发表于 2004-12-20 14:46:32 | 只看该作者

回复:硬盘检测不到,还怎么抢救数据啊

最初由[wj116]发布
硬盘检测不到,还怎么抢救数据啊

我也遇到过同样问题,是硬盘电路板坏了。
你可以拿过来,我帮你修理。
:smile:  :smile:  :smile:
12#
发表于 2004-12-21 13:36:15 | 只看该作者

回复:硬盘检测不到,还怎么抢救数据啊

最初由[wj116]发布
硬盘检测不到,还怎么抢救数据啊

为了有效地保存硬盘中的数据,除了经常性地进行备份工作以外,还要学会在硬盘
出现故障时如何救活硬盘,或者从坏的区域中提取出有用的数据,把损失降到最小程度

  系统不认硬盘
  系统从硬盘无法启动,从A盘启动也无法进入C盘,使用CMOS中的自动监测功能也无

发现硬盘的存在。这种故障大都出现在连接电缆或IDE端口上,硬盘本身故障的可能性不
大,可通过重新插接硬盘电缆或者改换IDE口及电缆等进行替换试验,就会很快发现故障
的所在。如果新接上的硬盘也不被接受,一个常见的原因就是硬盘上的主从跳线,如果
一条IDE硬盘线上接两个硬盘设备,就要分清楚主从关系。
  CMOS引起的故障
  CMOS中的硬盘类型正确与否直接影响硬盘的正常使用。现在的机器都支持“IDE Au
to Detect”的功能,可自动检测硬盘的类型。当硬盘类型错误时,有时干脆无法启动系
统,有时能够启动,但会发生读写错误。比如CMOS中的硬盘类型小于实际的硬盘容量,
则硬盘后面的扇区将无法读写,如果是多分区状态则个别分区将丢失。还有一个重要的
故障原因,由于目前的IDE都支持逻辑参数类型,硬盘可采用“Normal,LBA,Large”等,
如果在一般的模式下安装了数据,而又在CMOS中改为其它的模式,则会发生硬盘的读写错
误故障,因为其映射关系已经改变,将无法读取原来的正确硬盘位置。
  主引导程序引起的启动故障
  主引导程序位于硬盘的主引导扇区,主要用于检测硬盘分区的正确性,并确定活动
分区,负责把引导权移交给活动分区的DOS或其他操作系统。此段程序损坏将无法从硬盘
引导,但从软驱或光驱启动之后可对硬盘进行读写。修复此故障的方法较为简单,使用
高版本DOS的FDISK最为方便,当带参数/mbr运行时,将直接更换(重写)硬盘的主引导程
序。实际上硬盘的主引导扇区正是此程序建立的,FDISK.EXE之中包含有完整的硬盘主引
导程序。虽然DOS版本不断更新,但硬盘的主引导程序一直没有变化,从DOS 3.x到Wind
os 95的DOS,只要找到一种DOS引导盘启动系统并运行此程序即可修复。
  分区表错误引发的启动故障
  分区表错误是硬盘的严重错误,不同的错误程度会造成不同的损失。如果是没有活
动分区标志,则计算机无法启动。但从软驱或光驱引导系统后可对硬盘读写,可通过FD
ISK重置活动分区进行修复。
  如果是某一分区类型错误,可造成某一分区的丢失。分区表的第四个字节为分区类
型值,正常的可引导的大于32MB的基本DOS分区值为06,而扩展的DOS分区值是05。很多
人利用此类型值实现单个分区的加密技术,恢复原来的正确类型值即可使该分区恢复正
常。
  分区表中还有其它数据用于记录分区的起始或终止地址。这些数据的损坏将造成该
分区的混乱或丢失,可用的方法是用备份的分区表数据重新写回,或者从其它的相同类
型的并且分区状况相同的硬盘上获取分区表数据。
  恢复的工具可采用NU等工具软件,操作非常方便。当然也可采用DEBUG进行操作,但
操作繁琐并且具有一定的风险。
  分区有效标志错误的故障
  在硬盘主引导扇区中还存在一个重要的部分,那就是其最后的两个字节:“55aa”
,此字节为扇区的有效标志。当从硬盘、软盘或光盘启动时,将检测这两个字节,如果
存在则认为有硬盘存在,否则将不承认硬盘。此处可用于整个硬盘的加密技术,可采用
DEBUG方法进行恢复处理。另外,当DOS引导扇区无引导标志时,系统启动将显示为:“
Mmissing Operating System”。方便的方法是使用下面的DOS系统通用的修复方法。
  DOS引导系统引起的启动故障
  DOS引导系统主要由DOS引导扇区和DOS系统文件组成。系统文件主要包括IO.SYS、M
SDOS.SYS、COMMAND.COM,其中COMMAND.COM是DOS的外壳文件,可用其它的同类文件替换
,但缺省状态下是DOS启动的必备文件。在Windows 95携带的DOS系统中,MSDOS.SYS是一
个文本文件,是启动Windows必须的文件,但只启动DOS时可不用此文件。DOS引导出错时
,可从软盘或光盘引导系统后使用SYS C:命令传送系统,即可修复故障,包括引导扇区
及系统文件都可自动修复到正常状态。
  FAT表引起的读写故障
  FAT表记录着硬盘数据的存储地址,每一个文件都有一组FAT链指定其存放的簇地址
。FAT表的损坏意味着文件内容的丢失。庆幸的是DOS系统本身提供了两个FAT表,如果目
前使用的FAT表损坏,可用第二个进行覆盖修复。但由于不同规格的磁盘其FAT表的长度
及第二个FAT表的地址也是不固定的,所以修复时必须正确查找其正确位置,一些工具软
件如NU等本身具有这样的修复功能,使用也非常的方便。采用DEBUG也可实现这种操作,
即采用其m命令把第二个FAT表移到第一个表处即可。如果第二个FAT表也损坏了,则也无
法把硬盘恢复到原来的状态,但文件的数据仍然存放在硬盘的数据区中,可采用CHKDSK
或SCANDISK命令进行修复,最终得到*.CHK文件,这便是丢失FAT链的扇区数据。如果是
文本文件则可从中提取出完整的或部分的文件内容。
  目录表损坏引起的引导故障
  目录表记录着硬盘中文件的文件名等数据,其中最重要的一项是该文件的起始簇号
。目录表由于没有自动备份功能,所以如果目录损坏将丢失大量的文件。一种减少损失
的方法也是采用CHKDSK或SCANDISK程序恢复的方法,从硬盘中搜索出*.CHK文件,由于目
录表损坏时仅是首簇号丢失,每一个*.CHK文件即是一个完整的文件,把其改为原来的名
字即可恢复大多数文件。
  误删除分区时数据的恢复
  当用FDISK删除了硬盘分区之后,表面上是硬盘中的数据已经完全消失,在未格式化
时进入硬盘会显示为无效驱动器。如果了解FDISK的工作原理,就会知道FDISK只是重新
改写了硬盘的主引导扇区(0面0道1扇区)中的内容,具体说就是删除了硬盘分区表信息,
而硬盘中的任何分区的数据均没有改变。可仿照上述的分区表错误的修复方法,即想办
法恢复分区表数据即可恢复原来的分区及数据。如果已经对分区格式化,在先恢复分区
后,可按下面的方法恢复分区数据。
  误格式化硬盘数据的恢复
  在DOS高版本状态下,FORMAT格式化操作在缺省状态下都建立了用于恢复格式化的磁
盘信息,实际上是把磁盘的DOS引导扇区、FAT分区表及目录表的所有内容复制到了磁盘
的最后几个扇区中(因为后面的扇区很少使用),而数据区中的内容根本没有改变。这样
通过运行UNFORMAT命令即可恢复。另外DOS还提供了一个MIROR命令用于记录当前磁盘的
信息,供格式化或删除之后的恢复使用,此方法也比较有效。
13#
发表于 2004-12-22 14:49:58 | 只看该作者
如果是不小心用FDISK分区了,而且重新启动了, 这样的硬盘怎样修复?是不是只需要修复分区列表?(分区后没有用任何程序格式化或读写)
14#
发表于 2004-12-24 00:48:44 | 只看该作者
最初由[雨过天晴-飞]发布
如果是不小心用FDISK分区了,而且重新启动了, 这样的硬盘怎样修复?是不是只需要修复分区列表?(分区后没有用任何程序格式化或读写)
是只要修改分区表就可。
15#
 楼主| 发表于 2004-12-25 12:06:49 | 只看该作者

但是一般都改不好这个分区表

您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

快速回复 返回顶部 返回列表