有将近一周没有写文章了,经历了一场所有IT从业者的梦魇——数据丢失。一块1T的移动硬盘中,约500G的分区数据无故消失,想必挺多人都遇上过这种事,无奈,尽快尝试恢复,能恢复多少是多少了。
分区格式
由于此块移动硬盘经常要在windows和mac平台来回切换使用,在不纠结单文件4GB的限制的情况下,当时使用的FAT32格式。还好此类格式和NTFS格式较为常见,恢复起来也较为容易。这里要说一下:
恢复工具
市面上硬盘数据恢复工具很多,大多是无法完全恢复丢失数据的。一般个人不是很重要的数据,且文件格式比较常规的,在数据丢失后立马停止文件写入,尝试修复还是有可能恢复90%+的数据的。这里说一下,我亲身试用过的一些工具,希望可以帮到有需要的朋友们,少走弯路。
数据量较大的推荐使用DiskGenius,扫描进度还能存档。数据量不大的可以选择easyrecovery,国外原版或者国产版均可。 具体的恢复过程这里就不细说了,都是windows工具,图形界面,看着就会,主要就是恢复时间较长。
Linux数据恢复
既然说到数据恢复了,我们工作中接触的服务器,还是Linux居多,这里也说说从rm -rf /*
到不跑路的常规救急方法。
在我初出茅庐,刚干运维的那段岁月,也曾年轻气盛,逮哪都是rm -rf *
一把梭,终于有一次梭出问题了,把线上数据给梭没了,然后….此处省略中间办公室精彩剧情部分,直接上恢复过程。
1.exundelete恢复Linux文件系统数据
exundelete是用于针对Linux ext3,ex4的文件系统数据恢复的工具,大致原理就是扫出文件系统的inode的信息,然后根据iNode信息结合日志去查询对应的block位置,包括直接块和间接块,然后通过dd命令备份这些信息,恢复数据。
2.exundelete安装
官网下载最新版,extundelete-0.2.4 安装三连,不再赘述
$tar jxvf extundelete-0.2.4.tar.bz2
$./configure
$make
$make install
3.extundelete用法
首先及时卸载需要恢复数据的分区,然后查询分区可恢复的数据信息:
extundelete /dev/sdc1 --inode 2
恢复单个文件
extundelete /dev/sdb1 --restore-file hosts
恢复一个目录
extundelete /dev/sdb1 --restore-files test/
恢复整个分区
extundelete /dev/sdb1 –-restore-all
经过实际测试,restore-all比较好用,在初次删除后可以很好的恢复文件及目录结构,但是如果我在相同位置新建了相同的文件名或者目录名,就会恢复失败。而恢复单独的文件或者目录则没有成功,也可能是我的姿势不对,基本这些就够用了。