一。数据删除

命令: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. Spring之二:Spring AOP概述

    一.AOP概念回顾 AOP是Aspect-Oriented Programming(面向方面编程)的简称, 虽然可以利用面向对象的方法可以很好地组织代码,也可以通过继承关系实现代码重用,但是程序中总是 ...

  2. 【win10激活问题】 从【win10专业工作站版】转为 数字许可证的【win10专业版】

    今天安装了 win10 1903 (10.0.18362 暂缺 Build 18362) 安装时 选的 是[win10 专业工作站版] 却无法激活, (因为当初是从win7升级上win10的,只有关联 ...

  3. SQL一次性插入大量数据【转载】

    在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...

  4. NLB

    http://www.cnblogs.com/allegro/archive/2011/02/11/1951171.html

  5. [hdu2196]Computer树的直径

    题意:求树中距离每个节点的最大距离. 解题关键:两次dfs,第一次从下向上dp求出每个节点子树中距离其的最大距离和不在经过最大距离上的子节点上的次大距离(后序遍历),第二次从上而下dp求出其从父节点过 ...

  6. 转载TCP-IP协议解释

    本文转载自 http://www.ruanyifeng.com/blog/2009/03/tcp-ip_model.html TCP/IP模型是互联网的基础, 理解 TCP/IP对理解互联网至关重要 ...

  7. 【读后感1】SQL2008技术内幕- SQL逻辑查询处理

    引言观点 1. 编程语言日新月异,但是从没有人否定sql 在现代编程中的巨大作用和 持续的可利用性.SQL以对人类友好的阅读体验提供数据查询能力( 相比其他编程语言 ), 同时在各种数据库平台中,基础 ...

  8. Bootstrap 栅栏布局中 col-xs-*、col-sm-*、col-md-*、col-lg-* 区别及使用方法

    (1)概括          一句话概括:根据显示屏幕宽度的大小,自动的选用对应的类的样式. (2)关键字段        1.col是column简写:列: 2.xs是maxsmall简写:超小,  ...

  9. Linux下无法挂载U盘

    大概的错误信息是这样的: Error mounting /dev/sdb4 at /media/xxx/xx: Command-line`mount -t "ntfs" -o&qu ...

  10. Sam's Numbers 矩阵快速幂优化dp

    https://www.hackerrank.com/contests/hourrank-21/challenges/sams-numbers 设dp[s][i]表示产生的总和是s的时候,结尾符是i的 ...