文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Linux系统误删文件的恢复方法是什么

2023-06-28 17:39

关注

这期内容当中小编将会给大家带来有关Linux系统误删文件的恢复方法是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

背景信息

在日常使用中有时难免会出现数据被误删除的情况,该如何快速、有效地恢复数据呢?在阿里云上恢复数据有多种方式,例如:

  • 通过ECS管理控制台回滚已创建的快照、恢复自定义镜像等方式。

  • 购买多台ECS,实现业务的负载均衡和高可用。

在Linux下,基于开源的数据恢复工具有很多,常见的有debugfs、R-Linux、ext3grep、extundelete等,比较常用的有ext3grep和extundelete,这两个工具的恢复原理基本一样,只是extundelete功能更加强大。使用阿里云的云服务器时,如果您不小心误删除数据,并且Linux系统也没有与Windows系统下回收站类似的功能,您可以方便快速安装extundelete工具。

extundelete工具能够利用inode信息结合日志去查询该inode所在的block位置,以此查找和恢复所需的数据。该工具最给力的一点就是支持ext3/ext4双格式分区恢复,基于整个磁盘的恢复功能较为强大。

在数据被误删除后,首先要做的是卸载被删除数据所在的磁盘或磁盘分区。因为将文件删除后,仅仅是将文件的inode节点中的扇区指针清零,实际文件还存储在磁盘上,如果磁盘以读写模式挂载,这些已删除的文件的数据块就可能被操作系统重新分配出去,在这些数据块被新的数据覆盖后,误删除的数据就无法恢复。所以,以只读模式挂载磁盘可以尽量降低数据块中数据被覆盖的风险,提高恢复数据成功的几率。

说明 在实际线上恢复过程中,切勿将extundelete安装到您误删的文件所在硬盘,这样会有一定几率将需要恢复的数据彻底覆盖,切记操作前做好快照备份。

本教程适用的对象是:

  • 磁盘中文件误删除的用户,且未对磁盘进行过写入等操作

  • 网站访问量小、少量ECS实例的用户

需安装的软件及版本:e2fsprogs-devel、e2fsprogs、gcc-c++、make(编译器等)、Extundelete-0.2.4。

说明 extundelete需要libext2fs版本1.39或更高版本来运行,但是对于ext4支持,请确保您有e2fsprogs版本1.41或更新版本(可以通过运行命令dumpe2fs并记录其输出的版本)。

以上版本是写文档时的软件版本。您下载的版本可能与此不同。

操作步骤

使用开源工具Extundelete快速恢复被误删的数据的操作步骤如下:

步骤一:部署extundelete工具

运行以下命令,部署extundelete工具:

wget  http://zy-res.oss-cn-hangzhou.aliyuncs.com/server/extundelete-0.2.4.tar.bz2yum -y install  bzip2  e2fsprogs-devel  e2fsprogs  gcc-c++  make    #安装相关依赖和库tar -xvjf extundelete-0.2.4.tar.bz2cd extundelete-0.2.4                                #进入程序目录./configure                                         #如下图表示安装成功

Linux系统误删文件的恢复方法是什么

make && make install

这个时候会出现src目录,该目录下有个extundelete可执行文件以及相应路径,其实默认文件安装路径为usr/local/bin,下面模拟删除后恢复数据的操作就在usr/local/bin目录下进行。

步骤二:使用extundelete模拟数据误删除后恢复的过程

完成以下操作,使用extundelete模拟数据误删除后恢复的过程:

  1. 检查ECS现有的磁盘和可用分区,并对/dev/vdb进行分区和格式化。

    fdisk -l

    Linux系统误删文件的恢复方法是什么

  2. 将分区后的磁盘挂载到/zhuyun目录下,然后在/zhuyun下新建测试文件hello,并写入内容test

    mkdir /zhuyun                                #新建zhuyun目录mount /dev/vdb1 /zhuyun                      #将磁盘挂载到zhuyun目录下echo test > hello                            #写入测试文件
  3. 记录文件hello的md5值。md5sum命令用于生成和校验删除前和恢复后两个文件的md5值。

    md5sum hello

    Linux系统误删文件的恢复方法是什么

  4. 模拟删除hello文件。

    rm -rf hellocd ~fuser -k /zhuyun                     #结束使用某分区的进程树(确认没有资源占用的话,可以跳过此步)
  5. 卸载数据盘。

    umount /dev/vdb1                     #任何的文件恢复工具,在使用前,均要将要恢复的分区卸载或挂载为只读,防止数据被覆盖使用
  6. 使用extundelete工具恢复文件。

    1. extundelete --inode 2 /dev/vdb1       #为查找某i节点中的内容,使用2则说明为整个分区搜索,如果需要进入目录搜索,只须要指定目录I节点即可。这是可以看到删除的文件名和inode

      Linux系统误删文件的恢复方法是什么

    2. /usr/local/bin/extundelete  --restore-inode 12  /dev/vdb1    #恢复删除的文件

      这个时候会在执行命令的同级目录下出现RECOVERED_FILES目录。Linux系统误删文件的恢复方法是什么

  7. 通过md5sum命令查看恢复后RECOVERED_FILES文件的md5值。

    md5sum RECOVERED_FILES

    查看删除前的hello和恢复后的RECOVERED_FILES两个文件的md5值是否一致,如果一致,则数据恢复成功。

上述就是小编为大家分享的Linux系统误删文件的恢复方法是什么了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     801人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     348人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     311人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     432人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     220人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-人工智能
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯