一。数据删除

命令:rm -rf,将任何数据直接从硬盘删除,且没有任何提示

建议做法:

  • 把命令参数放到后面:rm -rfi

  • 将删除的东西通过mv命令移动到系统下的/temp目录下,然后写个脚 本定期执行清除操作
  • 备份

二。extundelete的安装与使用

Linux下常见的基于开源的数据恢复工具有:debugfs/R-Linux/ext3grep/extundelete

1.恢复原理:三步

  • extundelete恢复文件并不依赖特定的文件格式,首先extundelete会通过文件系统的incode信息(可通过 ls -id / 查看;根目录的incode一般为2)来获得当前文件系统下所有文件的信息(包括文件名和incode,包括已删除的文件)。

  • 然后利用incode信息结合日志去查询该incode所在块位置,包括直接块/间接块等信息。
  • 最后利用dd命令将这些信息备份出来,从而恢复数据文件

2.安装(介绍编译安装)

  • 安装前需安装e2fsprogs和e2fsprogs-libs两个依赖包

  • 下载extundelete(.tar.bz2)结尾的文件,假设为0.2.4版本
  • 解压:tar jxvf extundelete-0.2.4.tar.bz2
  • cd extundelete-0.2.4
  • ./configure
  • make
  • make install

3.用法

命令格式:extundelete [optons] [action] device-file

[option]参数:

  • --version,-[vV],显示软件版本号

  • --help,显示软件帮助信息
  • --superblock,显示超级块信息
  • --journal,显示日志信息
  • --after dtime,时间参数,表示在某段时间之后被删除的文件或目录
  • --before dtime,时间参数,表示在某段时间之前被删除的文件或目录

[action]动作参数:

  • --incode into,显示节点“ino”的信息

  • --block blk,显示数据块“blk”的信息
  • --restore-incode ino[,ino,...],还原命令参数,表示还原节点“ino”的文件,还原的文件会自动放在当前目录下的RESTORED_FILES文件夹中,使用节点编号作为扩展名。
  • --restore-file'path',还原命令参数,表示将还原指定路径的文件,并把还原的文件放在当前目录下的RECOVERED_FILES文件中。
  • --restore-all,还原命令参数,表示将尝试还原所有目录和文件
  • -j journal,表示从已经命名的文件中读取扩展日志。
  • -b blocknumber,表示使用之前备份的超级块来打开文件系统,一般用于查看现有超级块是不是当前所要的文件
  • -B blocksize,表示使用数据块大小来打开文件系统,一般用于查看已经知道大小的文件。

4.注意

数据被误删之后,首先要做的是卸载被删除数据所在的磁盘或磁盘分区。如果根分区遭到删除,需要将系统进入单用户,并且将根分区以只读模式挂载。

原因:文件删除后,仅仅是将文件的incode中的扇区指针清零,实际文件还在。如果磁盘以读写械挂载,这些已删除文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,这些数据就真丢失了。所以以只读模式挂载可以尽量降低数据块中数据被覆盖的风险。

Linux下常用的数据恢复工具的更多相关文章

  1. MongoDB在Linux下常用优化设置

    MongoDB在Linux下常用优化设置 以下是一些MongoDB推荐的常用优化设置.在生产环境下选取合适的参数值,例如预读值和默认文件描述符数目等,会对系统性能有很大的影响. 1.关闭数据库文件的 ...

  2. zip,rar及linux下常用的压缩格式

    日常操作中我们经常使用到文件压缩操作,其使用一些特定的算法来减小文件的大小,可以提高传输数据时的速率和减少数据在一些存储机制上占有的空间大小,实现空间利用最大化. 比如:如果你想通过邮箱发送一个文件夹 ...

  3. linux下常用关机命令

    linux下常用的关机命令有:shutdown.halt.poweroff.init:重启命令有:reboot.下面本文就主要介绍一些常用的关机命令以及各种关机命令之间的区别和具体用法. 首先来看一下 ...

  4. Linux 下常用解压命令(转载)

    Linux下常用文件解压(包括rpm.deb包) Linux下怎么解后缀名是gzip的文件?1.以.a为扩展名的文件:#tar xv file.a2.以.z为扩展名的文件:#uncompress fi ...

  5. Linux 下常用命令

    linux 下常用命令: 1.删除文件命令为 rm 2.创建目录的命令是:mkdir 3.删除目录的命令是rmdir(空目录) 4.切换到root帐号:su 5.查看所有进程:ps -aux 6.杀死 ...

  6. linux下常用FTP命令

    linux下常用FTP命令 1. 连接ftp服务器 1. 连接ftp服务器格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1b)服 ...

  7. linux下常用语言的语法检查插件整理

    linux下常用语言的语法检查插件 可以结合vim语法检查插件syntastic使用,具体请参考syntastic使用说明 如php,sql,json,css,js,html,shell,c等语法插件 ...

  8. Linux下实现CAD数据的导出

    近期公司项目涉及到CAD的导出,而且部署服务器申请不到Windows下的,所以技术上的解决方案就是寻求如何在Linux下实现CAD数据的导出. 于是百度了一下,找了几个相关库和软件. 1.dxflib ...

  9. linux下常用FTP命令 上传下载文件【转】

    1. 连接ftp服务器 格式:ftp [hostname| ip-address]a)在linux命令行下输入: ftp 192.168.1.1 b)服务器询问你用户名和密码,分别输入用户名和相应密码 ...

随机推荐

  1. TI官网常用链接

    TMS320C6000系列DSP库dsplib下载 TMS320C6000系列DSP库imglib下载 TMS320C6000系列DSP库mathlib下载 TMS320C66657技术文档

  2. Springboot学习七 spring的一些注解

    一 事务控制 @Service public class CityServiceImpl implements CityService { @Autowired private CityMapper ...

  3. 自动清除firefox缓存

    1.在firefox的地址栏上输入about:config回车 2.找到browser.cache.check_doc_frequency选项,双击将3改成1保存即可.  选项每个值都是什么含义的.请 ...

  4. linux 下消息队列发送后没有信息

    在使用消息队列时,调用 #include <stdio.h> #include <stdlib.h> #include <string.h> #include &l ...

  5. Java异常控制机制和异常处理原则【转】

    原文:https://www.jianshu.com/p/15872cba211d Java异常控制机制又被称为“违例控制机制”. 捕获程序错误最理想的时机是在编译阶段,这样可以彻底避免错误的代码运行 ...

  6. 使用go实现基于命令行的计算器程序

    项目目录结构 calcs.go源文件 package main import ( "fmt" "os" "strconv" "my ...

  7. go语言中将函数作为变量传递

    在Go中函数也是一种变量,我们可以通过type来定义它,它的类型就是所有拥有相同的参数,相同的返回值的一种类型,函数当做值和类型在我们写一些通用接口的时候非常有用,通过下面这个例子我们可以看到test ...

  8. POJ 2387 Til the Cows Come Home Dijkstra求最短路径

    Til the Cows Come Home Bessie is out in the field and wants to get back to the barn to get as much s ...

  9. HighChar

    chart: { type:'bar', borderWidth:2, borderColor: '#CA5100', backgroundColor: '#90ED7D', shadow: { // ...

  10. lower_bound和upper_bound使用说明

    #include <bits/stdc++.h> using namespace std; int main() { ]; ;i<=;i++) { a[i] = i*; } ;i&l ...