数据恢复的原理

一、机械硬盘数据恢复的原理

要知道数据在磁盘当中都是以二进制的形式进行存储的,就像这样01010011,这些0和1通过FAT表让系统知道哪部分数据是文件1,哪部分是文件2。FAT表的作用是描述文件系统内存储单元的分配状态以及文件内容前后链接关系的表格。当我们执行清空回收站的操作后,系统内部执行的操作是把要删除的文件在FAT表当中的记录删除掉,也就是说我们删除文件后,系统并没有马上清空数据,只是在FAT表中标记这个文件已被删除,数据还是保留着的,所以就留给我们数据恢复机会了。
有的人会问为什么删除文件只删除FAT表而不直接清空数据呢?那是因为机械硬盘工作原理就是这样的,写入新数据前并不执行清除操作,而是直接把旧数据覆盖。如果写入数据前先把数据清空那就会多占用一定的磁盘性能,而且这个操作也没啥意义。所以删除文件就只是把文件的FAT表记录标记为已删除,再写入新数据时直接把这个文件的旧数据覆盖掉就可以了。

磁盘存储FAT表的是按照一定的算法进行的,我们根据算法逆推回原来的FAT表后数据不就回来了吗,当然了,这要借助数据恢复软件操作。数据恢复的软件百度一搜一大堆,这里面有收费的,有免费的,收费的功能肯定强一些,至于哪个好用哪个不好用,大家自己试试就知道了,我就不做广告了。即使FAT表因为某些原因不能恢复,也可以通过其他技术找回数据,比如用磁隧道显微镜可以直接在硬盘表面上找出0101的数据。数据恢复行业里有很多这方面的黑科技,即使硬盘被破坏被火烧也有一定的机率找回数据的。但是,数据恢复并不是百分百能成功的,是有一定机率的,所以对于重要数据而言还是提早及时备份才是关键。

以上讲到的数据恢复原理是针对机械硬盘的,如果是固态硬盘呢?有的朋友说固态硬盘只要一坏数据全丢,跟本找不回来。真的是这样吗?

二、固态硬盘数据恢复的原理

不同于机械硬盘的是固态硬盘在写入数据时必须这块区域不能有任何数据,如果有数据

在写入数据前先把旧数据全部擦除,不像机械硬盘那样直接往旧数据上覆盖。因为每次写入数据前先进行擦除这样就会浪费一定的磁盘性能,降低了硬盘的写入性能,为避免擦除工作而浪费的磁盘性能,因此固态硬盘有个特殊功能TIM回收指令。在我们删除数据后,如果硬盘处于空闲状态的话就会开始擦除之前我们删除的数据,数据删除完了这块区域变成空白区域了,待下次进行写入操作的时候就可以直接把数据写入这块区域中,不必先执行擦除之后才去写入了。

TIRM指令在Win7之后的系统中才被添加进来,像是XP、2000都不支持TIRM的,所以在XP、2000下固态硬盘真的是越用越慢。而Win7之后的系统则会贴心的在电脑空闲的时候帮我们磁盘进行TRIM回收。

这里教大伙怎么查看自己的系统有没有开启TRIM回收指令。打开命令提示符(以管理员身份进行)输入fsutil behavior query disabledeletenotify回车,如果返回DisableDeleteNotify=0则表示是打开的,如果返回DisableDeleteNotify=1则是关闭的。系统默认都是打开TRIM的。
在这里插入图片描述如果要手动打开TRIM,打开命令提示符(以管理员身份进行)输入fsutil behavior set disabledeletenotify 0回车就可以了。同样的如果要手动关闭TRIM则输入fsutil behavior set disabledeletenotify 1回车就可以了。

在这里插入图片描述当我们使用固态硬盘并且开着TRIM的话,我们删除了数据,系统又执行了TRIM把数据擦除了,所以这时候数据想找回来几乎不可能了。

三、误删了重要文件的正确做法

当我们使用的是机械硬盘时,误删了文件,想要进行数据恢复的正确操作是:把我们的电脑停止一切操作,防止新数据写入覆盖旧数据,从另外一台电脑下载好数据恢复软件,放到U盘里再插到我们的电脑里去运行,这样大部分的情况下都可以找回原文件的FAT表的,就可以进行数据恢复了。

当我们使用的是固态硬盘,而且还开着TRIM,误删了文件再想找回来,除非系统正在执行其他操作还没有进行TRIM回收。一但执行了TRIM回收操作,想找回数据基本上是不可能的了,除非我们找专业的数据恢复公司单独为我们开发软件来进行数据恢复。

四、总结

数据恢复确实是一款良好的后悔药,但它不是特效药。我们不能仰仗着靠数据恢复来维持数据的安全性,我们用机械硬盘也并不是为了它的数据恢复能力才被用,只是因为机械硬盘容量大、价格便宜。我们用固态硬盘也不会为了能够数据恢复而去关闭TRIM,这样会影响固态硬盘的读写性能。关于数据的安全性,请大家记好三点:备份!备份!备份!

研究磁盘数据恢复的,可以参考 09\JIAN-H 第9章的9.1 JIAN-H.EXE 建立汉字库头文件 09\HZCALL 第9章的9.2 HZCALL.OBJ 显示汉字程序模块 09\NAME 第9章的9.3 NAME.OBJ 图形方式下处理输入字符 10\ARSE 第10章的10.1 ARSE.EXE 读扇区数据(汇编) 10\CRSE 第10章的10.2 CRSE.EXE 读扇区数据(C) 10\HCRSE 第10章的10.3 HCRSE.EXE 读扇区数据(C、汉显) 11\AWSE 第11章的11.1 AWSE.EXE 写扇区数据(汇编) 11\CWSE 第11章的11.2 CWSE.EXE 写扇区数据(C) 11\HCWSE 第11章的11.3 HCWSE.EXE 写扇区数据(C、汉显) 12\ALLSE 第12章的12.1 ALLSE.EXE 对扇区进行多种操作 12\HALLSE 第12章的12.2 HALLSE.EXE 对扇区进行多种操作(汉显) 13\READSF 第13章的13.1 READSF.EXE 读扇区备份文件 13\HREADSF 第13章的13.2 HREADSF.EXE 读扇区备份文件(汉显) 14\SEDIT 第14章的14.1 SEDIT.EXE 编辑扇区文件字节值 14\HSEDIT 第14章的14.2 HSEDIT.EXE 编辑扇区文件字节值(汉显) 15\SBLOCK 第15章的15.1 SBLOCK.EXE 扇区文件块拷贝 15\HSBLOCK 第15章的15.2 HSBLOCK.EXE 扇区文件块拷贝(汉显) 16\JIAN-H1 第16章的16.2.3 JIAN-H1.EXE 扩充汉字库头文件 16\HZCALL1 第16章的16.2.3 HZCALL1.OBJ 重新编译汉字显示程序模块 16\COMPSF 第16章的16.1 COMPSF.EXE 比较扇区文件 16\HCOMPSF 第16章的16.2 HCOMPSF.EXE 比较扇区文件(汉显) 17\0SE63 第17章的17.1 0SE63.EXE 显示0磁道扇区数据 17\H0SE63 第17章的17.2 H0SE63.EXE 显示0磁道扇区数据(汉显) 18\EARSE 第18章的18.2 EARSE.EXE 扩展读扇区数据(汇编) 19\EAWSE 第19章 EAWSE.EXE 扩展写扇区数据(汇编) 20\RSECTOR 第20章的20.1-20.3 RSECTOR.EXE C调用汇编扩展读 20\HRSECTOR 第20章的20.4 HRSECTOR.EXE C调用汇编扩展读(汉显) 21\WSECTOR 第21章的21.1-21.3 WSECTOR.EXE C调用汇编扩展写 21\HWSECTOR 第21章的21.4 HWSECTOR.EXE C调用汇编扩展写(汉显) 22\EALLSE 第22章的22.1 EALLSE.EXE 对扇区多种扩展操作 22\HEALLSE 第22章的22.2 HEALLSE.EXE 对扇区多种扩展操作(汉显) 23\JIAN-H2 第23章的23.2 JIAN-H2.EXE 扩充汉字库头文件 23\HZCALL2 第23章的23.2 HZCALL2.OBJ 重新编译汉字显示程序模块 23\BOOTF
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值