deepin分享-Linux 下恢复误删文件

devtools/2025/1/23 2:30:03/

在 Linux 系统中,误删文件是常见的问题,但幸运的是,通过一些工具和方法,我们仍然有可能恢复这些文件。本文将通过一个实际案例,介绍在 Linux 下恢复误删文件的步骤和注意事项。

恢复步骤
  1. 停止写入操作

    • 首先,我要求客户长按电源键关闭电脑,以避免关机过程中的数据写入操作进一步破坏丢失的文件。

    • 然后,我通过向日葵远程连接到客户机器上的 Windows 系统,制作了一个 Ubuntu 的 U 盘 Live 系统。

  2. 启动 Live 系统

    • 从 U 盘启动 Ubuntu Live 系统后,我安装了向日葵客户端,以便远程操作。

    • 在整个恢复过程中,未挂载硬盘上的分区,以避免数据被进一步覆盖。

  3. 查看磁盘分区

    • 使用 lsblk -f 命令查看客户的磁盘分区情况,确认被删除文件所在的分区为 /dev/sda3ext4 格式)。

  4. 安装恢复工具

    • 在 Live 系统中,我安装了 testdiskext4magic 两个工具。

  5. 使用 TestDisk 验证删除时间

    • 执行命令 sudo testdisk /dev/sda,通过 TestDisk 查看删除数据的具体位置,并验证删除文件的时间。

    • 确认删除时间为 2022年9月25日15:00

  6. 使用 Ext4magic 恢复文件

    • 挂载另一个分区(如 /dev/sda1)作为恢复数据的存储位置。

    • 执行命令:

      sudo ext4magic /dev/sda3 -a "$(date -d "2022-09-25 15:00:00" +%s)" -r

      该命令表示恢复从 2022 年 9 月 25 日 15:00 开始删除的文件。

  7. 检查恢复结果

    • 恢复的文件被保存在 RECOVERDIR 目录中,但文件的目录结构和原始文件名可能丢失。

    • 例如,Python 文件被归类到 RECOVERDIR/MAGIC-2/text/x-script.python,而 .rmf 文件则位于 RECOVERDIR/MAGIC-2/application/octet-stream

    • 通过文件内容的关键字(如 Python 文件中的 specialpackage.rmf 文件中的 mykeyinhead)来定位和恢复文件。

注意事项
  1. 备份重要数据

    • 重要的数据应在不同介质上进行备份,以避免因误操作导致数据丢失。

  2. 避免写入操作

    • 误删数据后,不要在同一分区进行写入操作。如果分区可以安全卸载,则直接卸载;如果分区有自动写入操作(如 //home 分区),建议直接关闭电脑。

  3. 使用 Live 系统恢复

    • 对于有自动写入操作的分区,建议使用 Live Linux 系统启动后进行恢复操作。

  4. 尝试其他工具

    • 如果 ext4magic 恢复的文件不完整,可以尝试使用 photorec 工具。photorec 会根据文件类型的特征逐扇区扫描硬盘,恢复删除的文件。但这种方法耗时较长,且恢复的文件可能会占用大量空间。

  5. 文件系统日志恢复

    • 在较新的操作系统(如 Ubuntu 20.04)中,通过文件系统日志恢复删除文件并保留原始文件名和目录结构的方法可能不再有效。旧版本系统(如 Ubuntu 16.04)可能支持这种恢复方式。

支持ing


http://www.ppmy.cn/devtools/152752.html

相关文章

第 3 章 核心处理层(上)

3.1 MyBatis初始化 MyBatis 初始化过程中,除了会读取 mybatis-config.xml 配置文件以及映射配置文件,还会加载配置文件指定的类,处理类中的注解,创建一些配置对象,最终完成框架中各个模块的初始化。 3.1.1 建造者模式…

工业制造离不开的BOM

在制造业的浩瀚星空中,物料清单(BOM)犹如“北极星”,牢牢指引着产品从设计蓝图迈向实物诞生的全过程。 BOM的分类 按照设计制造的不同阶段,将BOM划分为设计BOM、工艺BOM、制造BOM三种类型。 设计BOM Engineering BO…

Cyber Security 101-Security Solutions-Firewall Fundamentals(防火墙基础)

了解防火墙并亲身体验 Windows 和 Linux 内置防火墙。 任务1:防火墙的用途是什么 我们看到商场、银行、 餐馆和房屋。这些警卫被安置在 这些区域用于检查进出人员。这 维护此检查的目的是确保没有人在没有 被允许。这个警卫充当了他所在区域和访客之间的一堵墙。 …

【C++】模板(进阶)

本篇我们来介绍更多关于C模板的知识。模板初阶移步至:【C】模板(初阶) 1.非类型模板参数 1.1 非类型模板参数介绍 模板参数可以是类型形参,也可以是非类型形参。类型形参就是我们目前接触到的一些模板参数。 //类型模板参数 …

WebSocket——推送方案选型

一、前言:为何需要服务端主动推送? 在现代应用中,很多功能都依赖于“消息推送”。比如: 小红点提醒:我们经常在手机应用里看到的一个小红点提示,表示有新的消息或任务需要我们关注。新消息提醒&#xff1…

Vue.js组件开发-实现后端返回二进制文件在浏览器自动下载

在Vue.js组件开发中,若需实现从后端获取二进制文件并触发浏览器自动下载,可以利用axios(或其他HTTP客户端库)来向后端发送请求,随后利用Blob对象及URL.createObjectURL方法生成一个可供下载的链接,最后通过…

Spring Boot自动配置原理:如何实现零配置启动

引言 在现代软件开发中,Spring 框架已经成为 Java 开发领域不可或缺的一部分。而 Spring Boot 的出现,更是为 Spring 应用的开发带来了革命性的变化。Spring Boot 的核心优势之一就是它的“自动配置”能力,它极大地简化了 Spring 应用的配置…

c++学习第七天

创作过程中难免有不足&#xff0c;若您发现本文内容有误&#xff0c;恳请不吝赐教。 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考。 一、const成员函数 //Date.h#pragma once#include<iostream> using namespace std;class Date { public:Date…