硬盘分区丢失或则文件系统损坏,运行chkdsk 检查提示不能读取第一个/第二个NTFS引导扇区。
最近重新调整了分区的大小,win7有自己的磁盘管理工具,但是有个缺陷 需要resize的盘 必须和用来分配的空闲盘相邻,在网上收到一个Acronis Disk Director 的工具 号称可无损重设磁盘大小,我首先从F盘分出10G,分配10G给E盘,ADD是英文的操作起来也不复杂,做完这些点击cmmit ,ADD要求重启电脑然后进入dos界面开始resize磁盘大小了,我也去就睡觉了,大意啊,大意。醒来开机发现E盘的确是增长了10G,但是E盘却变成不可别的盘符,需要格式化才能打开,运行CHkDSK E:/r 提示无法读取E盘的NTFS引导扇区,我去!E盘里面是我这些年所有的资料。真心的 C,D,F盘每个盘都可以坏,唯独这个盘不能坏,可能是我去睡觉的时候系统的电源管理检测到没有鼠标键盘操作帮我关闭硬盘休眠了,汗。 潜意识里面已经开始盘算到数据恢复公司恢复的话需要多少钱呢,其实也不是什么无价数据,就是些代码/文档/软件,但是就这么没了我不甘心啊,开始在网上找相关的解决办法,最后居然把数据给恢复回来了(全部E盘数据!!!)现在把整个恢复过程记下来,如果有同学日后出现这个问题,不妨参考一下。
一.切忌慌乱,保持冷静(引用某网友,赞同!)
很多朋友发现自己的数据丢失之后就很慌乱,在网上铺天盖地地找恢复软件进行恢复(有的恢复软件在恢复过程中会往磁盘里写入数据),甚至有的去把硬盘格式化,这样将使数据恢复回来的可能性几乎变成零。所以我建议:当发现自己的硬盘中的数据丢失之后,最重要的就是保持冷静,不能病急乱投医,千万不要再往硬盘里写入数据了,更不能进行格式化操作。
二.弄清数据丢失原因
在进行数据恢复之前,弄清楚数据丢失的原因,这样才能对症下药,通常有两种情况:分区丢失和数据误删除(误格式化)。
分区丢失:分区丢失是指在“我的电脑”中只能看到一个C盘,看不到其他盘,我的情况是可以看到E盘,但是打不开的提示需要格式化,通常引起分区丢失的原因是重装系统导致分区表丢失。或者像我这样在resize磁盘大小的时候出现断电,系统睡眠休眠,硬盘停止运行了。
数据误删除(误格式化):这种情况是错误操作将重要的数据删除了或者将硬盘格式化了,导致数据丢失了。
三.操作系统如何删除文件的
实际上,操作系统在删除文件时,只是将被删除文件打上了“删除标记”,并将文件数据占用的磁盘空间标记为“空闲”。文件数据并没有被清除,还静静地“躺”在磁盘上。只要删除文件后没有建立新的文件,操作系统没有写入新的数据,这些被删除的文件数据就不会被破坏,就有机会通过一定的技术手段将它们“抢救”出来。格式化操作执行时并不会考虑磁盘上原来的数据内容,也不会先删除旧文件。不同的文件系统类型,格式化的具体操作内容也不同。对于FAT32、FAT16、FAT12等文件系统,格式化时会清除文件分配表(简称FAT,固定位于分区的开始部分,含有文件数据的定位信息)及根目录。文件数据一般不会被清除。对于NTFS文件系统,格式化时新写入的数据没有固定位置要求,但正常情况下每次格式化时的写入位置不会变化。因此旧文件数据大多不会被覆盖,仍存在大量残余信息供我们找到丢失的文件,这里也要提醒一下我们如果不认识的人想要借你的电脑或在U盘,使用diskgenius 或者其他第三方软件深度删除确保不能恢复,用DG我居然轻松恢复了自己U盘里面2011年的VassistX程序(还记得越狱么,那个被扔进河里的硬盘),只要有电脑基础的人可以轻松恢复数据,汗。。。
四.什么是磁盘柱面(后面的文章中将反复讲到这个词):
硬盘最基本的组成部分是由坚硬金属材料制成的涂以磁性介质的盘片,不同容量硬盘的盘片数不等。每个盘片有两面,都可记录信息。盘片被分成许多扇形的区域,每个区域叫一个扇区,每个扇区可存储128×2的N次方(N=0.1.2.3)字节信息。在DOS中每扇区是128×2^2=512字节,盘片表面上以盘片中心为圆心,不同半径的同心圆称为磁道。硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。所谓硬盘的CHS,即Cylinder(柱面)、Head(磁头)、Sector(扇区),只要知道了硬盘的CHS的数目,即可确定硬盘的容量,硬盘的容量=柱面数*磁头数*扇区数*512B
五.进行数据恢复
网上有很多恢复软件,个人觉得还是DiskGenius这个软件最好用,不用安装,而且还是国产软件哦,国人的骄傲啊,呵呵。以Windows GUI方式运行,也可以在纯DOS下运行 。DiskGenius有专业版的和免费版的,专业版的是要收费的,目前最新版本的是4.2.0版本的,不过这个版本专业版好像还没有被破解,在恢复之前没有注意到这个,就直接使用这个版本的进行恢复,结果“搜索丢失的分区”完成之后,我选择保存操作结果,软件提示我进行注册,然后尝试了下4.2版本的免费版,发现搜索结果和其专业版的基本一模一样,下面是恢复过程:
来张DG的初始界面(这是已经修复后的分区截图,在修复前E盘除了显示的是未格式化其他信息如下图,注意每个分区的柱面编号,发现什么没? 是连续的哦):
1.在恢复的时候,最好不要把DiskGenius软件拷贝到电脑上的硬盘上进行运行,在操作过程可能会往硬盘里写入数据,建议把DiskGenius放到U盘里运行。
2.启动DiskGenius后,选择“工具”—>“搜索已丢失的分区”,如果是误删除数据了,请选择“工具”—>“已删除或者格式化后的文件恢复”。本文着重讲解重建分区表。
3.开始搜索之后,如果找到一个分区,就会提示你“忽略”还是“保留”,注意,搜索到的第一个结果一般是你系统盘C盘,这个结果不能保留,必须忽略,否则后面无法找到其他分区,一直到找到想要恢复的分区,并确认这些文件是原来你的其他盘里保存的文件,才选择保留。(其实这里不是绝对的,从我个人这次数据恢复的经验来看,如果你在搜索到一个分区表结果,DG 会同时把这个柱面区间的全部数据 以windows浏览文件的方式给出,如下图:
去大概确认下这里面数据是不是正好是你现在C盘里面的数据,如果是就选择保留,这样的话DG会跳过过这45GB空间的检测,大大节省检测时间。
然后继续,DG直接从D盘的起始柱面(5888柱面)开始检测了,DG在5888柱面搜索到3个分区表信息,但第一个结果虽然可以浏览里面的数据单没有显示这个分区的大小,果断选择忽略
忽略后显示第二个结果任然没有显示分区大小,继续选择了忽略
显示第三个结果的时候D盘分区表结果如下:
这个时候我认为D盘搜索完毕了,因为我的D盘就是100.1GB,大概检查了一下里面的数据也没错,我选择了保留。
如果你给D盘取了别名总之不叫“本地磁盘”就好,那么上面的截图不是显示“逻辑分区” 而是会显示你取的这个别名,这是很有用的一个信息。
保留后DG直接跳到了18948柱面搜到一个100.1GB的分区表信息,提示是未格式化的分区。。。。
从DG的初始化界面可以知道18948柱面是D盘的结束柱面,而我已经在5888柱面保留了D盘的分区表信息,这个结果即不能浏览分区里面的数据还显示未格式化,我果断选择了忽略,实际上也确实要选择忽略,因为我选择保留的话,DG直接忽略了E盘的检测跳到了F的起始柱面(37303)开始搜索。选择忽略后DG并没有不出所料的在E盘起始柱面18949柱面搜索到一个分区表信息,但是在20274柱面搜索到一个分区表信息,大小130.4GB正好是我E盘出事前的大小,数据都还乖乖呆着E盘中,大概浏览了一下数据,查看了几个文件数据完整没问题。
(注意,这个截图是我修复后的截图,截图中引号里的内容当时显示的是E盘的名字,而不是“未格式化(2)”)
兴奋ing!选择保留继续DG直接跳到了F盘的起始柱面(37303)继续搜索,实际上进行到这里,丢失的E盘数据也就基本找回来了,待搜索到F盘的分区表信息后确认后保留,整个硬盘的分区表信息就全部检索完成了,整个过程不复杂,但一定要细心。然后你要做的就是点击DG左上角的保存更改按钮。DG会为你重设整个硬盘的分区信息,注意是整个硬盘哦,如果所有操作都没有问题DG重设完毕后系统会立即识别到这个分区。
4.全部搜索完成之后,请点击软件左上方的“保存更改”。之后电脑可能会蓝屏或者死机,这个是正常的,请强制按电源键将电脑关掉。
5.丢失的分区找回之后,需要对硬盘重新分区和重装系统。此时可以用“电脑店U盘启动制作工具”来制作一个U盘启动,先对硬盘重新分区,重新分区之后,就可以重装系统了。
注意: 上面的4个盘中的分区表信息如果有保留了错误的分区表信息,DG会把错误的分区表信息重设给该分区,至于后果嘛无法想象,如果保留了错误的系统盘C盘分区表信息那么显而易见系统立刻黑屏无法启动,因为系统已经无法识别你的系统盘了(在WinPE下使用DG再次进行分区表检索吧),至于其他盘保留了错误的分区表信息,你少还可以开机用DG再重复前面的操作,总之切记仔细,最好有软件基础的技术人员帮你弄,那有没有万无一失的方法呢,答案是肯定的,前面提到检测到不是你想要的分区表信息信息就忽略不保留,直到检测到你要找的分区表信息,DG会以Windows浏览文件的方式允许你浏览这个分区里面的数据,这个时候你只需要去找一块移动硬盘,把你需要的数据拷贝移动硬盘,然后,没有然后了,数据都找回来了当然是格式化这个不能识别的分区让系统可以识别。
因为手里没有那么大的移动硬盘,同时也对自己的电脑基础还有点信心:), 我选择了重设所有分区的分区表信息省去了复制拷贝,如果你的数据确实非常重要我还是建议用移动硬盘先把数据拷贝出来再做后续的操作,其实我首先还是选择了全部忽略才能不跳过每一个柱面达到对整个硬盘分区表遍历,反复尝试了多次才决定重试分区表信息,so 要怎么做你看着办:)
分析:分区表信息一般都是放在分区起始柱面的,这里我说下为什么没在18948柱面找到E盘的分区表信息,文章开始我说到了
我要将10G的空间增长到E盘,但是因为系统睡眠导致这个操作并没有完全的完成,E盘出事后是140G大小,比增长前的确大了
10G。我分析是ADD把这10G空间插入到了E盘的起始柱面,同时把E盘的数据相应的从19848向后偏移了10G到20274柱面,
这个时候E盘的分区表信息也偏移到了20274柱面。而在这个时候系统断电,导致ADD没有把新的E盘分区表信息写入到19848柱面。
系统启动后不能在E盘读取到分区表信息,所以不能识别E盘。至于系统为什么没有读到20274柱面的分区表信息,我认为有2个可能,
1是操作系统只读取分区的首个柱面数据,如果没有分区表信息,就认为这个分区不可识别。2是ADD在调整E盘大小的时候,将E盘
分区表信息的某个标记值设为false,系统检索到20274柱面的数据时,发现分区表标记为false,而不加载这个分区表数据,
而又没有其他分区表信息给系统来加载,导致系统最终无法识别分区。而DG在检索时忽略这个标记遍历整个磁盘只要发现分区表信息就弹框
提示用户来确认,所以DG在检索整个磁盘的时候可能会在一个分区上检测到多个分区表信息,我个人比较倾向第一个分析。
由于作者水平有限:在本文中简单粗暴的把硬盘看成是一个线性存储结构,作者从DG界面给出的数据统计假设了柱面区间代表了分区区间,作者认为这个说法不一定是正确的,可能DG为了让用户使用起来更简单直观,所以把柱面信息以连续的方式显示给用户。
后话:数据恢复后看到DG界面有个资助选项,想想国产软件这么牛逼,贡献一点自己的小小力量吧,跳转到网页居然无法显示,无力吐槽你们了。
软件已经上传到个人资源,不需要资源分,三个版本都可用:
DiskGenius 4.0.1专业版
DiskGenius 3.8.0 专业版
DiskGenius 4.2.0 免费版
本文的方法仅供参考,不一定适用所有情况,如果由于该方法导致出现的任何情况本人不负任何责任。