原文链接:http://blog.sina.com.cn/s/blog_4cc4055d0100tq0f.html
参考文章:http://www.360doc.com/content/13/0602/10/11908827_289867177.shtml
我们可能经常遇到移动硬盘、U盘之类的可移动存储设备出现如下错误(文件或目录损坏且无法读取,见图):
我的移动硬盘被我分成两个区:上图中I和J盘。点任何一个,都出现位置不可用,无法访问提示,在“计算机管理”→“磁盘管理”中看到两个盘的文件系统是RAW。碰到这样的问题如何解决。我在网上百度了下,大致有4类方法:
解决方案1:系统权限的问题1(原系统是NTFS格式出现问题)
在RAW格式盘符上点右键,选“属性”,再选“安全”,将无用的用户删除,添加自己的用户名,再改一下权限即可。若无安全选项,可以在文件夹选项(打开“我的电脑”—选“工具”菜单—再选“文件夹”选项)中,去掉“使用简单文件共享”前的勾,即可在NTFS格式的盘中点右键,属性菜单中显示安全选项。
解决方案2:系统权限的问题2(原系统是NTFS格式出现问题)
进“控制面板”找到“管理工具”,将其打开,在将“本地安全策略”打开,在将“安全选项”打开,在右面窗口找到“网络访问:本地帐户的共享和安全模式”后的“仅来宾”改为“经典”,退出回到我的电脑,在变成RAW的盘上点右键找“安全”标签,将其乱码删掉,然后添加本计算机的用户即可。
解决方案3:修改盘符的方法
把RAW的盘符改一下,如果是C、D、E、F,F是RAW盘符,就把F改成E,就可以恢复了。
解决方案4:利用EasyRecovery软件恢复数据。
解决方案5:点击“运行”→输入cmd→输入“chkdsk (盘符): /f”。冒号和反斜杠中间有一个空格,盘符写上后,将括号去掉。如“chkdsk i: /f”。
我不知道是不是系统的问题,我用的windows7系统,方案1和方案2都是修改权限,但无法解决问题,第三种方法试过,无用。至于方案4是可以的。但是必须有一个足够大的空间放你恢复的数据。原理是这样的。比如你要恢复D盘的资料,通过软件恢复后,你需要将恢复的数据拷贝到D盘以外的地方,然后格式化D盘,再将数据拷回来。如果你没有足够的空间放这些数据,那我建议用方案5。但是方案5中会有一个问题,特别是像我这种情况的,还需要修复MBR和MFT。运行CHKDSK后,就出来一条提示语(大概意思):需要修复磁盘是NTFS格式,但无法确定卷版本或状态,CHKDSK被中止。这种情况说明MBR是没问题的,问题就出在MFT上。下面我就讲解下如何修复MBR和MFT。
请确定你的移动硬盘没有坏扇区,如果有坏扇区,我也无能为力。
需要用到的软件工具:WinHex。自己去搜索下,下中文版的。
由于本人硬盘已经修复,就用修复好的硬盘做截图演示,稍有出入。
首先,如果是windows vista或windows7系统的朋友,必须以管理员身份运行该软件。
第二步,“打开磁盘”→选择需要修复的磁盘→确定
如果offset的000000000位置如下图所示(主要看红色框框位置是否出现NTFS字样),说明系统文件是NTFS,只是显示成RAW格式而已,需要修复MFT。
如果不是,则MBR也需要修复。重新打开一个正常的磁盘,选中"EB 52"至"55 AA",ctrl+C复制。然后点击需要修复的磁盘,在offset为00000000位置的横轴为0的第一个数值上,单击,然后Ctrl+b写入即可(注意快捷键是ctrl+b,不是ctrl+v)。
下面我们讲解一下如何修复MFT。有些东西我也不懂,比如NTFS的BPB图,一点也不懂,我是根据别人的教程是确定MFT的位置的。
一般移动硬盘的存放$MFT的簇号都是786432,在分区页按住Ctrl+G,在出现的对话框的簇号中输入786432。确定即可。
(注释:这里表示的是相对于该分区的簇数,而不是整个硬盘)
你会发现这样的界面,原本应该为MFT文件的位置0C0000000变为了USBC。
(注释:这里的情况不尽相同,总的来说就是数据发生了偏移,原来的$MFT被替换了)
一定要用鼠标慢慢向下滚动直到找到46 49 4C 45,然后你可以看到红色框框中的字样为$MFT。
正常情况下,有四个数据:$MFT,$MFTMirro,$LogFile,$Volume,每个数据都是以46 49 4C 45开头的。
由于数据发生偏移,造成volume数据丢失。所以只看到前面3个。将前面三个的数据选中,一般到0c0000E00为止,ctrl+c复制。在0c0000000位置(也就是刚才usbc位置)横轴0上的第一个数值单击,ctrl+b写入。
(注释:这里$MFT,$MFTMirro,$LogFile,以原本的位置(簇号786432)按顺序写入,每个数据占用两个扇区,后一个扇区除了最后两个字节为标识符,基本全为00)
然后重新打开一个正常的磁盘,锁定簇号786432,慢慢查找第四个以46 49 4C 45开头的$volume数据。(注释:即$volume数据第4个写入)
如下图,从0c0000c00开始,至0c0000DF0结束,选中,ctrl+c复制。回到需要修复磁盘,也在0c0000c00位置的横轴0位置的第一个数值上单击,ctrl+b写入即可。
最后在0c0000FF0位置的最后4个数值,手动输入 63 01。(注释:我的硬盘好像是63 00)
完成上述操作后,保存即可。
然后点击“运行”→输入cmd→输入“chkdsk (盘符): /f”。冒号和反斜杠中间有一个空格,盘符写上后,将括号去掉。如“chkdsk i: /f”。这样就可以修复了。
PS:此修复方案需要耐心研究。我只是将我的研究过程尽量表达出来。我花了2个晚上才看略微看懂winhex,才完成了上述的操作。对于那个BPB,还是不懂。呵呵