针对rm误删除的文件,可以使用ext3grep工具恢复,我们可以采用debugfs加dd的方法进行补救,相对ext3grep工具使用比较麻烦一点。以下是本人实验过程
1、新建文件
[root@wdj data0]# echo "very good" >test.txt
2、删除test.txt文件
[root@wdj data0]# rm -f test.txt
3、使用debugfs(一般发行版本系统自带)工具找test.txt文件的inode
[root@wdj data0]# debugfs /dev/sda3
debugfs:  ls -d /data0
1760916  (12) .    2  (4084) ..   <1760917> (4072) test.txt
“<>”中的数值为test.txt的inode编号,被删除的inode放在"<>"中
4、通过inode获取block的编号
debugfs:        logdump -i <1760917>
Inode 1760917 is at group 54, block 1769476, offset 2560
Journal starts at block 1, transaction 212754
  FS block 1769476 logged at sequence 213248, journal block 2253 (flags 0x2)
    (inode block for inode 1760917):
    Inode: 1760917   Type: bad type        Mode:  0000   Flags: 0x0
    Generation: 0    Version: 0x00000000
    User:     0   Group:     0   Size: 0
    File ACL: 0    Directory ACL: 0
    Links: 0   Blockcount: 0
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    atime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    mtime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    Blocks: 
  FS block 1769476 logged at sequence 213587, journal block 9249 (flags 0x2)
    (inode block for inode 1760917):
    Inode: 1760917   Type: bad type        Mode:  0000   Flags: 0x0
    Generation: 0    Version: 0x00000000
    User:     0   Group:     0   Size: 0
    File ACL: 0    Directory ACL: 0
    Links: 0   Blockcount: 0
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    atime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    mtime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    Blocks: 
  FS block 1769476 logged at sequence 213588, journal block 9305 (flags 0x2)
    (inode block for inode 1760917):
    Inode: 1760917   Type: bad type        Mode:  0000   Flags: 0x0
    Generation: 0    Version: 0x00000000
    User:     0   Group:     0   Size: 0
    File ACL: 0    Directory ACL: 0
    Links: 0   Blockcount: 0
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    atime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    mtime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    Blocks: 
  FS block 1769476 logged at sequence 213673, journal block 14966 (flags 0xa)
    (inode block for inode 1760917):
    Inode: 1760917   Type: bad type        Mode:  0000   Flags: 0x0
    Generation: 0    Version: 0x00000000
    User:     0   Group:     0   Size: 0
    File ACL: 0    Directory ACL: 0
    Links: 0   Blockcount: 0
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    atime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    mtime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    Blocks: 
  FS block 1769476 logged at sequence 213674, journal block 14979 (flags 0x2)
    (inode block for inode 1760917):
    Inode: 1760917   Type: bad type        Mode:  0000   Flags: 0x0
    Generation: 0    Version: 0x00000000
    User:     0   Group:     0   Size: 0
    File ACL: 0    Directory ACL: 0
    Links: 0   Blockcount: 0
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    atime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    mtime: 0x00000000 -- Thu Jan  1 08:00:00 1970
    Blocks: 
  FS block 1769476 logged at sequence 213736, journal block 16114 (flags 0x2)
    (inode block for inode 1760917):
    Inode: 1760917   Type: regular        Mode:  0644   Flags: 0x0
    Generation: 1090083295    Version: 0x00000000
    User:     0   Group:     0   Size: 10
    File ACL: 0    Directory ACL: 0
    Links: 1   Blockcount: 8
    Fragment:  Address: 0    Number: 0    Size: 0
    ctime: 0x4cf51f96 -- Wed Dec  1 00:00:22 2010
    atime: 0x4cf51f96 -- Wed Dec  1 00:00:22 2010
    mtime: 0x4cf51f96 -- Wed Dec  1 00:00:22 2010
    Blocks:  (0+1): 1777664
从上面的信息中可以得出block使用一个,编码为1777664
5、使用dd进行数据恢复
debugfs:           quit
[root@wdj data0]# dd if=/dev/sda3 of=/tmp/test.txt bs=4096 count=1 skip=1777664
1+0 records in
1+0 records out
4096 bytes (4.1 kB) copied, 0.0552693 seconds, 74.1 kB/s
查看数据文件是否恢复
[root@wdj data0]#   vim /tmp/test.txt

very good
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
从上面可以看到数据已经恢复,其中"@"是NULL字符可以直接删除掉

转载于:https://blog.51cto.com/wdj01/467950

debugfs dd恢复误删数据相关推荐

  1. PostgreSQL恢复误删数据

    在Oracle中:删除表或者误删表记录:有个闪回特性,不需要停机操作,可以完美找回记录.当然也有一些其他的恢复工具:例如odu工具,gdul工具.都可以找回数据.而PostgreSQL目前没有闪回特性 ...

  2. 使用MySQL的binlog日志恢复误删数据

    使用binlog日志恢复误删数据 1.查看binlog是否开启并锁表 # 进入mysql mysql -uroot -proot#查看binlog是否开启 show variables like '% ...

  3. 利用plsql工具恢复误删表和恢复误删数据

    一.恢复误删表 1.执行以下sql语句,找到被自己误删的数据表对应的object_name: select * from user_recyclebin t;--查看被删掉的表 2.根据得到的obje ...

  4. oracle 回闪技术恢复误删数据

    在oralce中,我们有时误删了某些数据或者删除了某些表:这时我们需要恢复这些数据. 第一,delete数据后恢复 delete某些数据后,可以使用下面语句找到,这个主要是使用Oracle的快照功能. ...

  5. mysql数据库误删且未持久化_MySQL恢复误删数据解决方案

    工作中难免会误删数据,下面说一下怎样从导出的备份数据和binlog日志中恢复数据.关于备份数据和binlog可以参考下面的文章: 一.恢复数据思路 总体思路是从备份文件中恢复已备份的数据,还有一些未备 ...

  6. Hbase恢复误删数据

    1.hdfs的回收站机制 客户有时会误删一些数据,在生产环境下,误删数据会造成非常严重的后果. 在hdfs上有一个回收站的设置,可以将删除的数据存在目录"/user/$/.Trash/&qu ...

  7. 恢复误删数据(SQL Server 2000)--Log Explorer

    首先来看一下界面:       输入服务器地址,用户名及密码后点Connect,进入到下面的界面: 在这里选择要恢复数据的数据库,选择Use On-line Log(如果你又备份文件的话就不需要用这个 ...

  8. 转 --- 恢复误删数据

    曾经想实现Log Explorer for SQL Server的功能,利用ldf里面的日志来还原误删除的数据 这里有一篇文章做到了,不过似乎不是所有的数据类型都支持 以下为译文:http://rar ...

  9. mysqlbinlog恢复误删数据

    概述 代码bug,在处理上传出现异常时执行了DELETE FROM t_resource WHERE resource_id = ? OR parent_id = ?因为OR条件导致用户的上传的所有数 ...

最新文章

  1. 【杂谈】来自一个懵懂青年的表白!
  2. rabbitmq的启动命令和springboot整合使用rabbitmq
  3. 设计模式入门(策略模式)
  4. 玩转oracle 11g(42):增加表空间
  5. Prometheus监控学习笔记之360基于Prometheus的在线服务监控实践
  6. linux 权限拒绝,linux – 权限被拒绝,虽然文件是chmod 777
  7. JSP作业5:servlet应用--图片验证码
  8. 计算机网络原理 谢希仁(第8版)第一章习题答案
  9. 2018华为网络技术大赛笔记
  10. SQL Server导出MDF数据库文件
  11. 商业 - 讲座: O2O模式
  12. 鲲志说:向我跌宕起伏,喜忧参半的2022致敬!
  13. maxima 代数方程求解
  14. 记一次ARM-鲲鹏服务器读写parquet报错解决过程
  15. 分享一道面试题:10ml试管10ml的水,一个7ml,一个3ml,将10ml分成两个5ml的
  16. python无法初始化设备_无法初始化图形设备什么意思
  17. Mysql中的flush privileges语句
  18. python flash_Python Flask使用flash()方法
  19. R语言中quantmod金融分析包的实践
  20. 【三步搞定】3DMAX不锈钢材质制作方法!

热门文章

  1. 解决VMware Tools installation cannot be started manually while Easy Install is in progress.
  2. cts测试之FileAccessPermissionTest
  3. 自动驾驶是一门怎样的生意?盘点5家创业公司商业落地的3条逻辑
  4. C# 绘制PDF图形——基本图形、自定义图形、色彩透明度
  5. 极品五笔管理员能用,普通用户无法使用
  6. Jenkins不同job之间传递参数
  7. linux中的rootfs/initrd/ramfs/initramfs
  8. FastDFS存储服务器部署
  9. Windows ×××服务器配置6-启用L2TP方式CA模式访问①
  10. SolarWinds 事件新动态:研究员发现新的C2基础设施