浅析硬盘数据恢复原理:断电真的没救了么?

存储 存储设备
笔者身边的一些朋友突然关心起“硬盘数据恢复”这个话题来:特别是好多人都在讨论,硬盘因为频繁“掉电”而造成数据损坏或者丢失的时候,真的就完全不能恢复了么?

最近,笔者身边的一些朋友突然关心起“硬盘数据恢复”这个话题来:特别是好多人都在讨论,硬盘因为频繁“掉电”而造成数据损坏或者丢失的时候,真的就完全不能恢复了么?

[[242765]]

当然不是!

要明白这一点,首先就得搞清楚,硬盘(我们这里指的主要是常见的机械硬盘)到底是如何记录数据的?

首先,在机械硬盘的盘片上,整齐排列着许许多多的磁性单元,它们就像一个个的永磁铁,有的“S”极朝上有的“N”极朝上。对,你可能已经意识到了——它们其实就代表着电脑数据的最基本单位“0和1”。

当硬盘在修改(写入、覆写)数据的时候,盘片高速旋转,而细小的磁头则准确地定位在需要修改数据的那一个个磁性单元上,通过施加电压,磁性单元的磁极被逆转(就像我们中学物理实验制造电磁铁那样)——这就实现了从“0”到“1”的改变,是不是其实很简单?

不过(敲黑板!),重点来了!如果一个硬盘上全是单纯的数据(01),那么操作系统是如何知道具体哪个数据存储在硬盘的什么位置的呢?要解决这个问题,就引入了现代硬盘上一个重要的概念:分区表。

如果我们把整个硬盘比作一个小学校,那么不同的分区就好像不同的年级,文件夹就好像一个个班,而具体的数据则是一个个学生——那么分区表就是包含了所有年级(分区)、班级(文件夹目录)、学生(数据)信息的一张“花名册”。操作系统只有通过读取分区表,才能将文件所处的逻辑位置(某某分区某某文件夹)和硬盘上的物理位置对应起来。

然后,当我们在硬盘上对文件进行“删除”操作的时候,有趣的事情就发生了:大家肯定都有印象,无论多大的文件,写入的时候多么缓慢,删除都是一瞬间就完了,这是为什么呢?

这是因为,删除过程中,其实根本没有清除数据本身,而只是在分区表里,将该文件标注成了“不存在”!

这样做的好处有很多,除了大大提高删除操作的速度,改善用户体验外,由于前面说到的,硬盘上的“磁极”只有NS之分,当下次有别的文件要写入的时候,实际上未必需要修改所有的磁极指向——这也变相延长了硬盘的寿命。

正是因为机械硬盘这种特殊的删除机制的存在,给“数据恢复”留下了最初的机会——只要用软件将所有还没被新数据覆盖的部分扫描一遍,就有可能完全重建一份分区表。这就好像学校的花名册散轶了,只要重新将学生集合起来,点一遍名不就好了么~事实上,绝大部分民用级别的数据恢复软件之所以在恢复刚刚删除的文件时表现优异,就是基于这个原理,没什么神秘的。

那么,回到最初的话题,如果说,这块硬盘曾经多次遭遇断电,会发生什么情况呢?这就稍微有些复杂了——这要看断电的时候硬件正在执行什么任务。

如果断电的时候硬盘正在写入数据,比如一段视频,那么断电会直接造成写入中断,要是刚好中断在关键的部分,就很有可能使得已写入的部分变得难以识别——虽然已写入的数据本身不会发生变异,但有概率因为文件中的关键字节端刚好丢失,而难以被认出原来的文件格式。这种时候就需要某些专业级的修复方法去“补齐”这些关键的文件属性,使它可以被普通的软件正常识别(比如被视频播放器识别为一段关键的视频)。

而如果断电的时候只是在进行删除——这就比较搞笑了,损坏的只有文件分区表,实际上的文件应该是完好无损的,修复起来和一般的“误删除”并没有太大的不同。

总的来说,硬盘确实是个非常精密的部件,但硬盘数据丢失却绝对不是世界末日——除非是有心人刻意用反复覆写之类的手段刻意破坏被删除文件的物理数据,否则恢复起来真的是So Easy~11443512717707.jpg***,告诫大家一句话:硬盘有价,数据无价——真正靠谱的方法还是勤于备份,这样才能保证关键时刻的万无一失。

责任编辑:武晓燕 来源: 三易生活
相关推荐

2017-12-01 09:50:23

硬盘数据恢复

2017-12-26 08:25:57

硬盘数据丢失

2020-11-04 09:38:05

GitHub代码开源

2018-05-04 09:25:47

2022-02-09 12:11:57

数据丢失数据恢复硬盘

2010-08-03 14:05:15

2010-08-17 09:05:21

2009-11-17 11:25:36

思科路由器密码恢复

2017-09-04 08:28:37

硬盘磁头数据

2009-05-04 11:50:15

2013-11-05 10:53:43

苹果OS X

2015-08-05 13:33:18

Windows 10升级Bug

2009-04-13 10:58:08

RapidRecoveProtectDriv解决方案

2012-11-23 16:46:12

LinuxVim

2019-10-11 10:05:30

程序员固态硬盘Google

2019-08-27 08:24:17

简历技能工作

2014-01-22 09:45:40

2018-05-03 10:00:23

HBase运维数据

2020-08-05 08:21:41

Webpack

2012-12-04 14:52:29

数据中心
点赞
收藏

51CTO技术栈公众号