恢复rm -rf删除的数据

news/2024/11/8 4:56:24 标签: 服务器, linux, 运维

注:本文演示的是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/

http://www.niftyadmin.cn/n/5743243.html

相关文章

RK3576 LINUX RKNN SDK 测试

安装Conda工具 安装 Miniforge Conda wget -c https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-x86_64.sh chmod 777 Miniforge3-Linux-x86_64.sh bash Miniforge3-Linux-x86_64.shsource ~/miniforge3/bin/activate # Miniforge 安装的…

[docker]拉取镜像失败

List item vim /etc/docker/daemon.json在insecure-registries中添加你的socket&#xff08;IP端口号&#xff09; {"bip": "33.33.33.1/24","registry-mirrors": ["https://docker.mirrors.ustc.edu.cn/"],"insecure-registri…

2024年国家信息安全水平等级考试NISP二级题目卷(二)(答案附后)

国家信息安全水平等级考试NISP二级卷为100道单选题&#xff0c;每题一分&#xff0c;共100分&#xff0c;70分合格&#xff0c;考试时长为120分钟。 1. 处理报废电脑的流程时&#xff0c;以下哪一个选项对于安全专业人员来说是最重要考虑的内容&#xff1f; A.在扇区这个级别…

【科普笔记】——什么是环境变量

定义 环境变量&#xff08;environment variables&#xff09;是操作系统中用来指定操作系统运行环境的一些参数。它们是操作系统中的一个具有特定名字的对象&#xff0c;包含了一个或多个应用程序将使用到的信息。环境变量可以影响程序的运行方式&#xff0c;为系统和应用程序…

输入两个整数求a~~b整数的和(c基础)

#include<stdio.h> int main() {int a 0;int b 0;int answer 0;scanf_s("%d %d", &a, &b);a < b ? (a a, b b) : (a a b, b a - b, a a - b);for (a a; a < b; a)answer a;printf("%d", answer);return 0; } 介绍一下三目…

【系统设计】数据库压缩技术详解:从基础到实践(附Redis内存优化实战案例)

概述 在现代数据库系统中&#xff0c;压缩技术对于提高存储效率和加速查询性能至关重要。特别是在处理大规模数据时&#xff0c;压缩能够极大地减少存储空间&#xff0c;并优化查询性能。本文将总结几种常见的压缩方式&#xff0c;并通过详细的解释和示例清晰地展示每种压缩方…

Unreal5从入门到精通之如何在指定的显示器上运行UE程序

前言 我们有一个设备,是一个带双显示器的机柜,主显示器是一个小竖屏,可以触屏操作,大显示器是一个普通的横屏显示器。我们用这个机柜的原因就是可以摆脱鼠标和键盘,直接使用触屏操作,又可以在大屏观看,非常适合用于教学。 然后我们为这款机柜做了很多个VR项目,包括Uni…

qt QDir详解

1、概述 QDir是Qt框架中的一个核心类&#xff0c;它提供了对文件系统目录的操作接口。Qt是一个跨平台的应用程序开发框架&#xff0c;广泛用于开发桌面、移动和嵌入式设备上的应用程序。QDir类使得开发者能够方便地在不同操作系统上处理目录和文件&#xff0c;如进行目录遍历、…