事情起因是本人不小心把一学年来辛辛苦苦完成的整个项目的源文件在一瞬间彻底删除,那一刻真的想有死的冲动。虽然这个项目很大,加起来有上万行的C语言代码,而且很多都是以字节为单位构建网络数据包接收或发送的,每一次都是经过千辛万苦用gdb来调试一个个bug的,所以我第一反应是找个软件来恢复。
软件可以从 http://www.cgsecurity.org/wiki/PhotoRec_CN 下载。
该软件可以在很多系统使用,也支持大多数硬盘格式,可以说要是数据还没有被覆盖就可以恢复,而且速度还蛮快
简介:
PhotoRec 是一款用于恢复硬盘、光盘中丢失的视频、文档、压缩包等文件,或从数码相机存储卡中恢复丢失图片的数据恢复软件(因此,该软件命名为Photo Recovery这个名字)。 PhotoRec忽略文件系统,能直接从介质底层恢复数据,因此,在介质的文件系统严重破坏或被重新格式化后,它也能进行数据恢复。
PhotoRec是一款免费的开源、跨多平台的数据恢复软件,受GNU General Public License 的保护. PhotoRec 是TestDisk 的伴侣程序, Testdisk是一款支持多种文件系统的丢失分区恢复,并能修复不可启动的磁盘的数据恢复软件。 您可以从链接 下载该程序.
出于安全考虑, PhotoRec以只读方式来访问您要恢复数据所在的磁盘或存储卡介质。
重要提示: 一旦发现丢失或意外删除了某个图片、文件, 请不要继续往该存储设备或磁盘保存新文件;否则您可能会覆盖原来的数据。 这意味着您在使用PhotoRec时,您千万不要将恢复的文件写入到原数据所存储的同一分区。
使用:
以下以Linux下为例
下载完成后,里面将包括两个软件 PhotoRec 与 TestDisk ,我们这里只介绍前者
1.将linux文件夹下photorec_static这个文件改为可执行文件
$chmod +x photorec_static
2. 用root运行该软件,选着你想要扫描的硬盘,此处为 /dev/sda
$sudo ./photorec_static
3. 选着硬盘后会列出你所有分区,此次为Linux分区,然后可以进入File Opt 来定义要扫描的文件类型
4. 定义扫描的文件类型,建议将不必要的文件类型反选,可以减少扫描时间和保存数据的空间
5.选择用来保存恢复数据的文件夹back(必须被扫描硬盘外的其他硬盘,比如说弄个USB来保存,否则会覆盖原有数据导致恢复失败 )
6. 选择好文件夹后,按Y键开始,或者N结束当前操作返回
7.扫描可能会持续一段时间,视扫描范围而定
由于文件很多,完成后,可以用Linux命令查看排除文件范围
比如说在back文件夹下,
$cat */*.txt | grep google *
来查看所有txt格式文件包含google字符串
这里不做详解
参考链接:
http://www.cgsecurity.org/wiki/TestDisk
http://blog.csdn.net/nankong/archive/2009/05/16/4193810.aspx