Linux文件误删后如何恢复

以下方法适用于文件或目录被删,如果被覆盖则无法恢复

方法一 使用系统自带的还原工具debugfs

  1. 第一步 查看文件或目录锁挂载的磁盘名
1
df  /root/你被删的目录
  1. 输入debugfs指令进入命令区
1
root@xxx:# /debugfs
  1. 进入挂载磁盘 查找被删目录和文件
1
2
open dev/vda1 #这个是我服务磁盘名 你的也许不一样
ls -d /root/你被删的目录 #查找被删文件

带尖括号开头的文件表示已经被删除的 无尖括号表示当前已经存在的文件

接下来 咱们需要借助尖括号中的地址进行文件还原

  1. 根据node地址查找文件信息, 在debugfs命令区中输入
1
logdump -i <19662057>

  1. 文件还原

    1
    dd  if=/dev/vda1 of=/root/被删除文件  bs=3456 count=1 skip=524974

* bs对应offset 表示文件大小
* count 表示需要还原几份
* skip对应block值 表示跳过blocks个块后再开始复制

至此 恢复完毕

### 方法二 使用第三方的还原工具extundelete

  1. 第一步 安装
1
apt-get install extundelete -y
  1. 第二步 获取被删文件或目录的node
1
ls -lia 目标目录
  1. 根据node查看文件信息
1
extundelete /dev/sda5 --inode 24904454
1
2
3
4
5
6
#以下为控制台输出信息
File name | Inode number | Deleted status
. 2
.. 2
deletetest 12 Deleted
tmppasswd 14 Deleted
  1. 恢复全部数据
1
extundelete /dev/sda5 --restore-all
  1. 恢复单个数据
1
extundelete /dev/sdb5 --restore-file xxx
  1. 恢复指定目录
1
extundelete /dev/sdb5 --restore-directory  xxx

至此 ,恢复完毕

乱码三千 – 点滴积累 ,欢迎来到乱码三千技术博客站

0%