小知识,大挑战!本文正在参与“ 程序员必备小知识 ”创作活动
以下方法适用于文件或目录被删,如果被覆盖则无法恢复
方法一 使用系统自带的还原工具debugfs
- 第一步 查看文件或目录锁挂载的磁盘名
df /root/你被删的目录
- 输入
debugfs指令进入命令区
root@xxx:# /debugfs
- 进入挂载磁盘 查找被删目录和文件
open dev/vda1 #这个是我服务磁盘名 你的也许不一样
ls -d /root/你被删的目录 #查找被删文件
带尖括号开头的文件表示已经被删除的 无尖括号表示当前已经存在的文件
接下来 咱们需要借助尖括号中的地址进行文件还原
- 根据node地址查找文件信息, 在debugfs命令区中输入
logdump -i <19662057>
- 文件还原
dd if=/dev/vda1 of=/root/被删除文件 bs=3456 count=1 skip=524974
* bs对应offset 表示文件大小 * count 表示需要还原几份 * skip对应block值 表示跳过blocks个块后再开始复制
至此 恢复完毕
### 方法二 使用第三方的还原工具extundelete
- 第一步 安装
apt-get install extundelete -y
- 第二步 获取被删文件或目录的node
ls -lia 目标目录
- 根据node查看文件信息
extundelete /dev/sda5 --inode 24904454
#以下为控制台输出信息
File name | Inode number | Deleted status
. 2
.. 2
deletetest 12 Deleted
tmppasswd 14 Deleted
- 恢复全部数据
extundelete /dev/sda5 --restore-all
- 恢复单个数据
extundelete /dev/sdb5 --restore-file xxx
- 恢复指定目录
extundelete /dev/sdb5 --restore-directory xxx
至此 ,恢复完毕