移动硬盘起死回生修复记

起因:
一年前买的Hitachi移动硬盘,外壳是SSK,在昨天晚上去展示游戏作品的时候坏掉了!!!原因可能是人为损坏,因为我昨天晚上迟到了15分钟,然后还没等笔记本关闭,就慌慌忙忙的拔掉了USB线,扔进书包就飞奔去教室。想不到就因为这样出了问题……

症状:
一个分区下的homework目录无法访问,一旦进入这个目录,移动硬盘上的灯先是长亮一下,然后一直熄灭。应用程序无响应,操作系统也不做超时检查,傻乎乎地一直等我拔出usb线后才中断操作。

出现这种问题非常意外,要展示的游戏作品以及源代码全都在损坏的那个目录里,也没有备份过。一旦无法获取那些文件,就可能要重写几天废寝忘食完成的作业了……

经过:
在Win7上插拔了很多次,都很容易卡死,为什么呢?因为Win7的资源管理器很智能地帮你扫描目录下的文件,一旦进入了homework目录,又挂掉了!我一开始以为整个硬盘都出事了,够忐忑的!后来重启发现可以进入移动硬盘的Ubuntu10.10,才松了一口气。我把那个NTFS分区mount了之后,也无法进入homework目录,和Win7一样,无响应地挂掉。接着去换同学的XP系统,比Win7稍微好点,因为我打开根目录,只要不访问homework目录就没问题,除非我鼠标指到那个目录上,就会死掉了!用chkdsk命令检查磁盘坏扇区,进行到2/5的21%就没有响应地挂掉,也在等我拔出硬盘。用Win7的磁盘检查也只能检查到70%左右就挂掉……

以前只研究过fat系列的文件系统,对于ntfs,没有研究过,不知道它是如何组织文件数据的。我用之前安装过的WinHex试用版提供的磁盘工具,扫描了磁盘镜像后,可以看到根目录的文件 ,但是点击homework目录查看数据的时候又挂掉了,这时候直接拔出了硬盘,重新插进去。神奇的是,我再次查看homework目录数据的时候,又可以显示出来了!!!而且,我发现用WinHex可以把homework下面的文件以及子目录都复制出来。就这样,昨天晚上的游戏作品展示才顺利进行!!!

猜测:
既然homework下的目录文件都能够访问,为何在Windows上一打开那个目录或者查看其属性就挂掉?没有研究过ntfs文件系统的我只能猜测是homework目录所指向的那个数据区域出现了问题。但是数据却没有丢失,用WinHex第一次访问把数据读取出来后马上挂掉,但拔出USB重新插进去后,WinHex就是用了第一次读取的数据,所以我能够正常访问homework目录并且copy下面的文件了……

结果:
本来打算想把文件临时转换到同学的电脑上,但因为这个分区已经装满了数据,而且有120GB那么大,转移起来不是很方便。所以只好想办法屏蔽掉homework文件夹,也就损失大概500MB左右的空间,但也挽救了120GB!!!

屏蔽方法很简单,用WinHex找到根目录的数据区域,找到homework的条目,设置一个操作系统无法访问的目录名即可。

效果如下:

我确定这么一改,大多数操作系统都访问不了,因为’/’符号很重要!
所以,现在我的移动硬盘可以正常使用了!!!在这里提一下,希望以后有朋友遇到这种情况就不用一时冲动低格硬盘或者送到维修店去修理了。

移动硬盘起死回生修复记》上有15条评论

  1. shepherd.lazy

    我的移动硬盘年前的时候也犯病了,后来被我给折腾的以为估计彻底坏了,打算过段时间去修的地方看看去
    现在也不敢格式化,好几年的代码和资料都在里面,
    只抢救出来了一小部分,Centos也进去不了,io错误,
    dos进去可以读出来大部分的目录,但是不能拷贝,坏道检测了一天一夜最后回家一看卡死了,我当场差点吐血
    win7和xp插上马上卡死了,或者是过一会儿变成不可用.
    下班回家按照你的方法试试去,先谢过了!

    回复
  2. limit

    物理坏道了也不法子,移动硬盘热插拔没事,台式机子上的大硬盘却不行,突然断电就有可能是致命的打击,至于ntfs,人家有日志和检查点,数据可以恢复,fat32的话,跟dna连差不多,断一个就坏完了

    回复
        1. Xiaoxia 文章作者

          嗯。看来日志文件系统很强大。
          我现在用移动硬盘上的linux系统,我把ext4挂载参数设置了data=writeback,据说这样能提高硬盘性能?

          回复
  3. niklaus

    易我数据恢复很好使,只要数据未损坏都可以找回,就是目录读取很慢,但整体工作可靠

    回复

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>