注:本文演示的是ext4文件系统格式数据恢复
系统版本:ubuntu16.04
恢复数据目录:数据盘(非根)目录
恢复工具:extundelete 0.2.4 恢复所有被删除数据
ext4magic 恢复指定目录数据

一、注意事项:

  • 分区状态: 在数据恢复过程中,目标分区建议使用只读模式挂载,防止数据被覆盖
  • 输出目录:指定输出目录时,确保该目录有足够的空间来保存恢复的数据
  • 检查权限:运行extundelete命令是,需要具体root权限,所以需要使用root或者sudo提权
  • 数据完整性:需要确保数据被删除之后,无新的数据写入;并非所有的删除文件都能完全恢复,恢复成功率取决于文件被删除后分区数据的修改情况

使用extundelete 恢复所有被删除数据

1、安装extundelete

root@xxx:~# apt-get install extundelete

2、只读挂载需要恢复数据设备,避免写入新数据

root@xxx:~# umount -l /data                     ##卸载数据盘

root@xxx:~# mount -o ro  /dev/vdc   /data       ##只读挂载

3、获取对应目录下被删除的数据

root@xxx:~# ls -id  /data/python-package   ##获取被删除数据所在目录的inode
40108033 /data/python-package

root@xxx:~# extundelte  /dev/vdc  --inode 40108033

在这里插入图片描述

4、恢复数据

root@xxx:~# mkdir  /tmp/del_data   ##创建数据恢复目录,需要确保该目录有足够空间存储恢复数据

root@xxx:~# cd /tmp/del_data

root@xxx:/tmp/del_data# extundelete  /dev/vdc  --restore-all   ##此命令会恢复vdc下所有可恢复数据

##验证数据恢复
root@xxx:/tmp/del_data/RECOVERED_FILES# ls -lR
.:
total 8
drwxr-xr-x 2 root root 4096 Nov  7 17:00 python-package
drwxr-xr-x 3 root root 4096 Nov  7 17:01 RECOVERED_FILES

./python-package:
total 226788
-rw-r--r-- 1 root root 163225600 Nov  7 17:00 python2.7.15.tar.gz
-rw-r--r-- 1 root root  17496336 Nov  7 17:00 Python-2.7.15.tgz
-rw-r--r-- 1 root root  25067363 Nov  7 17:00 Python-3.10.2.tgz
-rw-r--r-- 1 root root  26437858 Nov  7 17:00 Python-3.11.2.tgz

./RECOVERED_FILES:
total 16544
-rw-r--r-- 1 root root 16935960 Nov  7 17:01 file.40108035
drwxr-xr-x 2 root root     4096 Nov  7 17:00 python-package

./RECOVERED_FILES/python-package:
total 159400
-rw-r--r-- 1 root root 163225600 Nov  7 17:01 python2.7.15.tar.gz

5、重新读写挂载磁盘,把恢复数据copy到指定目录

root@xxx:/tmp/del_data# umount -l  /data

root@xxx:/tmp/del_data# mount /dev/vdc /data 
  
root@xxx:/tmp/del_data# cp  /tmp/del_data/RECOVERED_FILES/python-package/*  /data/python-package/

6、常用参数解析:

--inode INODE_NUM  ##显示指定inode下ino信息;
 extundelete --inode 12345 /dev/vdc
 
--restore-inode INODE_NUM ##恢复特定 inode 的文件;
extundelete --restore-inode 12345 /dev/vdc

--restore-file FILENAME ##恢复特定的文件或目录。FILENAME 是要恢复的文件的路径(相对于设备的根目录);
extundelete --restore-file path/to/deleted/file /dev/vdc

-restore-directory DIRECTORY ##恢复特定目录下的所有文件。DIRECTORY 是要恢复的目录的路径(相对于设备的根目录);
extundelete --restore-directory path/to/deleted/directory /dev/vdc

--restore-all ##恢复所有可恢复的文件;
extundelete --restore-all /dev/vdc

-o DIRECTORY  ##指定恢复文件的输出目录(默认 RECOVERED_FILES);
extundelete --restore-file path/to/deleted/file --output-dir /path/to/output/ /dev/vdc

三、使用ext4magic恢复指定目录的数据,通过inode递归恢复

1、安装ext4magic

root@xxx:~# apt-get install ext4magic

2、只读挂载需要恢复数据设备,避免写入新数据

root@xxx:~# umount -l /data                     ##卸载数据盘

root@xxx:~# mount -o ro  /dev/vdc   /data       ##只读挂载

3、获取被删除数据说在目录的inode

root@xxx:~# cd /tmp/del_data

root@xxx:~# ls -id  /data/python-package
40108033 /data/python-package

4、恢复数据

root@xxx:/tmp/del_data# ext4magic  /dev/vdc -R -I 40108033

参数解析:
-R:递归恢复
-I:指定inode

在这里插入图片描述

5、重新读写挂载磁盘,把恢复数据copy到指定目录

root@xxx:/tmp/del_data# umount -l  /data

root@xxx:/tmp/del_data# mount /dev/vdc /data  
 
root@xxx:/tmp/del_data# cp  /tmp/del_data/RECOVERDIR/<40108033>/*  /data/python-package/
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐