返回顶部
首页 > 资讯 > 操作系统 >如何使用 Linux 文件恢复工具
  • 139
分享到

如何使用 Linux 文件恢复工具

2023-06-16 19:06:40 139人浏览 薄情痞子
摘要

如何使用 linux 文件恢复工具,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux 系统管理员守则中有这么一条:“慎用 rm -rf 命令,除非你知道此命令所带来的后果

如何使用 linux 文件恢复工具,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

Linux 系统管理员守则中有这么一条:“慎用 rm -rf 命令,除非你知道此命令所带来的后果“,不过 Linux 下删除文件并不是真实的删除磁盘分区中的文件,而是将文件的 inode 节点中的扇区指针清除,同时释放这些数据对应的数据块,当释放的数据块被系统重新分配时,那些被删除的数据就会被覆盖,所以误删除数据后,应马上卸载文件所在的分区。然后使用相关工具进行恢复。以 ubuntu 12.04 平台为例介介绍四个(foremost、extundelete、testdisk 和 phtorec)常用的 Linux 删除文件恢复工具的使用方法。

Linux 文件恢复的原理

inode 和 block

首先简单介绍一下 Linux 文件系统的最基本单元:inode。inode 译成中文就是索引节点,每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是 inode,另一部份是 block,block 是用来存储数据用的。而 inode 呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。inode 为每个文件进行信息索引,所以就有了 inode 的数值。linux 操作系统下可以使用 ls –id 命令来查看文件或者目录的 inode 值,一般”root”目录的 inode 值为 2,一个分区挂载到一个目录下时,这个”root”目录的 inode 值为 2。

# mount /dev/sdb2 /tmp  # ls -id /tmp  2 /tmp

文件恢复的原理

本文要介绍的命令是通过文件系统的 inode 值(一般是 2 )来获取文件系统信息。在 ext3 和 ext4 文件系统中,每个文件都是通过 inode 来描述其数据存放的具体位置,当文件被删除以后,inode 的数据指针部分被清零,文件目录区没有太多变化。文件的读写都是通过 inode 来实现,当 inode 数据指针被清零以后,即便文件内容还在,也没有办法把文件内容组合出来。当 ext3 和 ext4 文件系统中的元数据 metadata 发生变化时,相应的元数据 metadata 在日志文件会有一份拷贝。比如一个文件被删除了,它的 inode 信息会在日志文件中先保存一份,然后把要删除文件 inode 相关信息清零。这个日志文件是循环使用的,当操作过多时,删除的文件的 inode 日志记录会被新的数据替换,这就彻底丧失了根据 inode 找回数据的机会了。如果是大量文件的删除,这个日志文件会被反复循环利用多次,只留给***删除的那些文件的恢复机会。

使用命令行工具恢复文件

foremost 和 extundelete 简介

fORMost 是一个基于文件头和尾部信息以及文件的内建数据结构恢复文件的命令行工具。这个过程通常叫做数据挖掘(data carvubg)。formost 可以分析由 dd、Safeback、Encase 等生成的镜像文件,也可以直接分析驱动器。文件头和尾可以通过配置文件设置,也可以通过命令行开关使用 formost 内建的文件类型。formost 最初是由美国空军特别调查室(air Force Office of Special Investigations)和信息系统安全研究中心(The Center for Information Systems Security Studies and Research)开发的,现在使用 GPL 许可。Foremost 支持恢复如下格式:avi, bmp, dll, doc, exe, gif, htm, jar, jpg, mbd, mov, mpg, pdf, png, ppt, rar, rif, sdw, sx, sxc, sxi, sxw, vis, wav, wmv, xls, zip。

针对 Linux 下的 ext 文件系统来说,常用的 Linux 文件删除恢复工具有 debugfs、ext3grep、extundelete 等。extundelete 是一个开源的数据恢复工具,支持 ext3、ext4 文件系统,其官方站点位于Http://extundelete.sourceforce.net/,目前***稳定版本为 0.2.0。

上面介绍的两种命令行工具 foremost 和 extundelete 二者相比,foremost 支持的文件系统比较多(包括 ext2、 ext3 、vfat、NTFS、ufs、jfs 等)和 extundelete 支持的文件系统较少(ext3、ext4)文件系统。不过 foremost 只能支持恢复特定格式的文件。

使用 foremost

首先安装软件包:

#apt-get install foremost

其它 Linux 发行版用户可以在 http://foremost.sourceforge.net/ 下载源代码编译安装。下面看看使用方法。

恢复单个类型文件

笔者删除一个 USB(/dev/sdba1)存储器中一个 png 文件然后使用 formost 恢复。

#rm -f /dev/sdb1/photo1.png  #foremost -t png -i /dev/sdb1

恢复完成后会在当前目录建立一个 output 目录,在 output 目录下会建立 png 子目录下会包括所有可以恢复的 png 格式的文件。

需要说明的是 png 子目录下会包括的 png 格式的文件名称已经改变,另外 output 目录下的 audit.txt 文件是恢复文件列表。

恢复多个类型文件

#foremost -v -T -t doc,pdf,jpg,gif -i /dev/sda6 -o /media/disk/Recover

恢复完成后会在当前目录建立一个 output 目录,在 output 目录下会建立四个子目录(/doc,/pdf,/jpg,/gif),分别包括四种类型文件。另外 output 目录下的 audit.txt 文件是恢复文件列表。

使用 extundelete

首先安装软件包:

#apt-get install extundelete

其它 Linux 发行版用户可以在http://extundelete.sourceforce.net/下载源代码编译安装。下载安装 extundelete 之前要安装两个软件包 e2fsprogs 和 e2fslibs。下面看看使用方法

模拟数据误删除环境

这里我们使用一个分区/dev/sdd1 挂在在/backupdate 上,建立一个测试目录/delete 并建立一文件:del1.txt 。

# mkdir –p /backupdate/deldate  # mkfs.ext4 /dev/sdd1  # mount /dev/sdd1 /backupdate  #cd /backupdate/deldate  # touch del1.txt  # echo " test 1" > del1.txt

获取文件校验码:

# md5sum del1.txt                             66fb6627dbaa37721048e4549db3224d  del1.txt

删除文件:

# rm -fr /backupdate/*

卸载文件系统或者挂载为只读:

# umount /backupdate

查询恢复数据信息,注意这里的--inode 2 这里会扫描分区 :

# extundelete /dev/sdd1 --inode 2  .....  File name                                       | Inode number | Deleted status  Directory block 8657:  .                                                 2  ..                                                2  lost+found                                        11             Deleted  del1.txt                                              12             Deleted

上面标记为 Deleted 是已经删除的文件或目录。

开始恢复文件

默认恢复到当前目录下的 RECOVERED_FILES 目录中去。

# extundelete /dev/sdd1 --restore-file del1.txt

如果恢复一个目录:

# extundelete /dev/sdd1 --restore-directory /backupdate/deldate

恢复所有文件:

# extundelete /dev/sdd1 --restore-all

获取恢复文件校验码,对比检测是否恢复成功:

# md5sum RECOVERED_FILES/ del1.txt                           66fb6627dbaa37721048e4549db3224d  RECOVERED_FILES/del1.txt

查看校验码与之前的是否完全一致。

应用总结:笔者在现实使用过程中发现 extundelete 还是有很大的不完整性,基于整个磁盘的恢复功能较为强大,基于目录和文件的恢复还不够强大。在 Linux 下误删除了文件,当发现数据丢失以后,不要进行任何操作,保留现场。要想办法把数据丢失的文件系统经过 dd 命令或者 AIR(Automated Image Restore,http://cdnetworks-kr-2.dl.sourceforge.net/ )工具到另外的存储空间上作为最原始的备份,以便数据恢复专家现场诊断恢复。

使用 scalpel

以上介绍的工具主要使用在 ext3 和 ext4 的文件系统,如果用户使用的那些没有日志机制的旧有文件系统,可以使用 scalpel 工具。scalpel 是一种快速文件恢复工具,它通过读取文件系统的数据库来恢复文件。它是独立于文件系统的。

用户可以在http://www.digitalforensiCSSolutions.com/Scalpel/ 下载源代码编译安装。下面看看使用方法:

使用 scalpel 工具之前,首先要修改配置文件: /etc/scalpel/scalpel.conf。

例如用户要恢复所有删除 pdf 文件,那么要在/etc/scalpel/scalpel.conf 把包括 pdf 文件格式的两行之前的# 去掉。

[...]  pdf     y       5000000 %PDF  %EOF\x0d  REVERSE  pdf     y       5000000 %PDF  %EOF\x0a  REVERSE  [...]

然后保存文件。

下面看看使用方法:

# scalpel /dev/sdb1 -o /RECOVERY/

其中/dev/sdb1 是目标驱动器,/RECOVERY/ 是恢复文件存储目录。目录下的 audit.txt 文件是恢复文件列表。

使用字符终端工具 testdisk 和 phtorec

testdisk 简介

testdisk 是分区表恢复、raid 恢复、分区恢复的开源免费工具(testdisk 支持如下文件系统: FAT12/FAT16/FAT32/NTFS/ext2/ext3/ext4)。testdisk 支持的功能: 修复分区表, 恢复已删除分区,用 FAT32 备份表恢复启动扇区,重建 FAT12/FAT16/FAT32 启动扇区,修复 FAT 表,重建 NTFS 启动扇区,用备份表恢复 NTFS 启动扇区,用 mft 镜像表(mft mirror)修复 mft 表,查找 ext2/ext3 备份的 superblock,从 FAT,NTFS 及 ext2 文件系统恢复删除文件,从已删除的 FAT,NTFS 及 ext2/ext3 分区复制文件。

使用方法

首先安装:

#apt-get install testdisk

其它 Linux 发行版用户可以在http://www.cgsecurity.org/wiki/TestDisk_Download 下载源代码编译安装。下载安装 testdisk 之前要安装几个软件包 libjpeg8 ,libncursesw5, libuuid1, zlib1g 。下面看看使用方法。

启动 testdisk:

#testdisk

testdisk 启动后的工作界面首先是选择恢复操作中的 log 文件(testdisk.log)的纪录方式见图 1。

图 1.选择恢复操作中的 log 文件的纪录方式

如何使用 Linux 文件恢复工具

[Create]新建[Append]追加[No Log]不纪录

选择了 log 文件的记录方式后、系统显示处于连接状态的磁盘设备见图 2。

图 2.处于连接状态的磁盘设备

如何使用 Linux 文件恢复工具

在列出的磁盘设备中,选择要恢复的分区,然后选择磁盘分区的种类。若是 ext4 文件系统的话,请选择 [None ] Non partitioned media 见图 3:

图 3.选择 [None ] Non partitioned media

如何使用 Linux 文件恢复工具

说明:一般选择[Intel] Intel/PC partition(如果是 GPT 分区,请选择 EFI GPT),对于 ext4 文件系统选择 [Intel] Intel/PC partition 也能正确识别,只是分析硬盘時比较慢。

下面的画面中选择[Analyse],对分区进行分析见图 4。

图 4.对分区进行分析

如何使用 Linux 文件恢复工具

下面显示了当前分区的状态。这是软件分析的当前分区表的分区结果,我们选择“Deep Search”进行一次深入检测见图 5。

图 5.选择“Deep Search”进行一次深入检测

如何使用 Linux 文件恢复工具

下面是检测完成界面见图 6。

图 6.检测完成界面

如何使用 Linux 文件恢复工具

在这个画面时,按 P 键就可以列出硬盘上的文件见图 7。

图 7.红色的文件名称就是已经被删除的文件

如何使用 Linux 文件恢复工具

红色的文件名称就是已经被删除的文件,选择好你要恢复的文件后,按 c 键之后,它就会问你要复制到哪个目录,这时请选择你要 复制的目地地(destination)即可。

photorec 简介

photorec 是一款用于恢复硬盘、光盘中丢失的视频、文档、压缩包等文件,或从数码相机存储卡中恢复丢失图片的数据恢复软件(因此,该软件命名为 photo recovery 这个名字)。 photorec 忽略文件系统,能直接从介质底层恢复数据,因此,在介质的文件系统严重破坏或被重新格式化后,它也能进行数据恢复。出于安全考虑, photorec 以只读方式来访问您要恢复数据所在的磁盘或存储卡介质。提示: 一旦发现丢失或意外删除了某个图片、文件, 请不要继续往该存储设备或磁盘保存新文件;否则您可能会覆盖原来的数据。 这意味着您在使用 photorec 时,您千万不要将恢复的文件写入到原数据所存储的同一分区。

使用 photorec 恢复文件

photorec 是 testdisk 的伴侣程序,安装 testdisk 后 photorec 就可以使用了。

  启动 photorec

# photorec

图 8 中显示了已连接磁盘设备,准备恢复的文件在那个设备上就选择它,然后在选择 Proceed 按钮继续下一步。

图 8.已连接磁盘设备

如何使用 Linux 文件恢复工具

接下来,选择恢复的磁盘分区格式。这里选择 ext4 见图 9。

图 9.选择恢复的磁盘分区格式

如何使用 Linux 文件恢复工具

画面下方[File Opt]中有可供恢复的文件种类提供被选择见图 10。

图 10.可供恢复的文件种类

如何使用 Linux 文件恢复工具

说明:如果只是 root 据某些文件签名要恢复部分文件类型,那么可以按 s 取消全部勾选,然后移动光标到要恢复的文件类型,可按空格来选择高亮选中的类型。

下面设定要分析的磁盘空间区域,可整个分区搜索,也可只搜索自由空间(相当于未分配簇)见图 11 。

图 11.设定要分析的磁盘空间区域

如何使用 Linux 文件恢复工具

下面选择分区所使用的文件系统类型,然后设定导出的文件目录,一般输入 Y 并回车即可。图 12 是恢复完成界面。

图 12.恢复完成

如何使用 Linux 文件恢复工具

恢复完了选择 Quit 退出 PhtoRec。被恢复的文件是 recup_dir.x 的若干数字子组合为文件名被保存在当前目录的/recup_dir 子目录下的。

功能对比

表 1 是 Linux 删除文件恢复工具

如何使用 Linux 文件恢复工具

可以使用 testdisk 进行文件恢复的场合,也就是硬盘上的分区(该分区有原有数据纪录)已经损坏的情形。但是如果损坏之后,重新再次做成了新分区的话,文件恢复的可能性比较小,很困难。photorec 不仅针对 硬盘、USB 设备、CD-ROM、SD 卡,而且还可以对其它存储设备进行应用。

看完上述内容,你们掌握如何使用 Linux 文件恢复工具的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网操作系统频道,感谢各位的阅读!

--结束END--

本文标题: 如何使用 Linux 文件恢复工具

本文链接: https://lsjlt.com/news/284725.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 如何使用 Linux 文件恢复工具
    如何使用 Linux 文件恢复工具,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Linux 系统管理员守则中有这么一条:“慎用 rm -rf 命令,除非你知道此命令所带来的后果...
    99+
    2023-06-16
  • 使用 Linux 文件恢复工具恢复rm -rf删除的文件
    Linux 系统管理员守则中有这么一条:“慎用 rm -rf 命令,除非你知道此命令所带来的后果“,不过 Linux 下删除文件并不是真实的删除磁盘分区中的文件,而是将文件的 inode 节点中的扇区指针清除,同...
    99+
    2022-06-03
    extundelete foremost Linux photorec scalpel testdisk Ubuntu 分区 命令行 工具 文件删除 文件恢复 文件系统
  • 如何使用ACL工具备份和恢复Linux的文件权限
    这篇文章主要介绍“如何使用ACL工具备份和恢复Linux的文件权限”,在日常操作中,相信很多人在如何使用ACL工具备份和恢复Linux的文件权限问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用ACL工具...
    99+
    2023-06-28
  • 在Linux系统下如何使用PhotoRec & TestDisk工具来恢复文件
    这篇文章主要为大家展示了“在Linux系统下如何使用PhotoRec & TestDisk工具来恢复文件”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“在Linux系统下如何使用Photo...
    99+
    2023-06-16
  • Linux中如何使用TestDisk恢复文件
    这篇文章给大家分享的是有关Linux中如何使用TestDisk恢复文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。TestDisk是一款功能强大的硬盘修复工具,帮助用户恢复丢失的数据,修复不能启动的硬盘, 用T...
    99+
    2023-06-27
  • 使用xtrabackup工具如何热备和恢复mysql
    下文主要给大家带来使用xtrabackup工具如何热备和恢复mysql,希望这些内容能够带给大家实际用处,这也是我编辑使用xtrabackup工具如何热备和恢复mysql这篇文章的主要目的。好了,废话不多说...
    99+
    2024-04-02
  • linux误删文件如何恢复
    这篇文章主要介绍“linux误删文件如何恢复”,在日常操作中,相信很多人在linux误删文件如何恢复问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”linux误删文件如何恢复”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-22
  • 如何在Linux下使用Tar工具归档文件
    这篇文章主要讲解了“如何在Linux下使用Tar工具归档文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何在Linux下使用Tar工具归档文件”吧!Tar 由 'Tape arc...
    99+
    2023-06-13
  • Linux利用lsof/extundelete工具恢复误删除的文件或目录
    前言 linux不像windows有那么显眼的回收站,不是简单的还原就可以了。 linux删除文件还原可以分为两种情况,一种是删除以后在进程存在删除信息,一种是删除以后进程都找不到,只有借助于工具还原。这里分别检查介绍下...
    99+
    2022-06-04
    linux误删除文件夹恢复 linux恢复误删除文件
  • 基于特征码文件恢复工具magicrescue
    基于特征码文件恢复工具magicrescue...
    99+
    2023-06-04
  • Ext分区文件恢复工具extundelete有什么用
    小编给大家分享一下Ext分区文件恢复工具extundelete有什么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! Ext分区文件恢复工具extund...
    99+
    2023-06-04
  • linux文件只读该如何恢复
    linux文件只读该如何恢复,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。linux文件只读的恢复方法:1、利用“chmod 666 指定文件”命令将只读文件设置为可读可写的文...
    99+
    2023-06-29
  • linux如何恢复删除的文件
    要恢复被删除的文件,您可以尝试以下方法:1. 使用恢复工具:有一些专门用于恢复被删除文件的工具,例如TestDisk、PhotoRe...
    99+
    2023-08-20
    linux
  • linux误删文件夹如何恢复
    在Linux中,当你误删了一个文件夹时,可以尝试使用以下方法恢复:1. 使用回收站恢复:某些桌面环境或文件管理器会有回收站功能,被删除的文件夹可能会被移动到回收站中。你可以在桌面上或文件管理器中查找回收站,并恢复被删除的文件夹。2. 使...
    99+
    2023-08-11
    linux
  • linux文件被删除如何恢复
    要恢复被删除的Linux文件,可以尝试以下几种方法: 使用文件恢复工具:有一些专门针对Linux系统的文件恢复工具,如TestD...
    99+
    2024-03-04
    linux
  • 如何恢复solidworks草图工具栏
    本篇文章给大家分享的是有关如何恢复solidworks草图工具栏,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。恢复方法:首先打开软件,点击页面顶部的“三角形符号”图标按钮,在下...
    99+
    2023-06-15
  • LINUX使用rm误删文件后恢复
    最近使用centos执行了rm -rf删除了一个文件,后面想恢复。 先关闭selinux vim /etc/selinux/configSELINUX=disabledreboot 重启生效 1、使用...
    99+
    2023-08-31
    linux 服务器 运维 centos 安全
  • Linux下如何使用ACL备份及恢复文件权限
    小编给大家分享一下Linux下如何使用ACL备份及恢复文件权限,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ACL的全称是 Access Control List...
    99+
    2023-06-27
  • 如何使用Testdisk恢复删除的文件
    这篇文章主要讲解了“如何使用Testdisk恢复删除的文件”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Testdisk恢复删除的文件”吧!Testdisk是一个强大的免费的跨平台的...
    99+
    2023-06-27
  • 如何使用VSCode工具创建HTML文件
    本篇内容主要讲解“如何使用VSCode工具创建HTML文件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用VSCode工具创建HTML文件”吧! &nb...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作