HCRM博客

如何在CentOS系统中恢复误删除的文件?

在 CentOS 操作系统中,文件恢复是一个复杂但可行的任务,尤其是当误删除重要文件时,以下将详细介绍如何在 CentOS 中恢复误删除的文件,包括使用 extundelete 工具和 xfsdump 工具的步骤。

查看分区类型

在开始恢复之前,需要确定文件所在的分区类型,可以通过以下命令查看:

如何在CentOS系统中恢复误删除的文件?-图1
(图片来源网络,侵权删除)
df T

该命令会列出所有挂载的文件系统及其类型,xfs 或 ext4,不同的分区类型需要使用不同的恢复工具和方法。

二、使用 extundelete 恢复文件(适用于 ext4 分区)

1、安装 extundelete

安装 e2fsprogs 开发包和其他依赖项:

    yum install e2fsprogsdevel e2fsprogs e2fsprogslibs y

下载并解压 extundelete 安装包:

    wget http://nchc.dl.sourceforge.net/project/extundelete/extundelete/0.2.4/extundelete0.2.4.tar.bz2
    tar jxvf extundelete0.2.4.tar.bz2
    cd extundelete0.2.4

编译并安装 extundelete:

如何在CentOS系统中恢复误删除的文件?-图2
(图片来源网络,侵权删除)
    yum y install gcc gccc++
    ./configure
    make
    make install

验证安装是否成功:

    which extundelete

2、创建测试目录和文件

    cd /
    mkdir /data
    cd /data
    touch deletefile

3、模拟文件删除

    rm rf deletefile

4、恢复文件

使用 extundelete 查看删除的文件:

    /usr/local/bin/extundelete inode 2 /dev/sda2

注意:这里的/dev/sda2 是分区设备名,2 是被删除文件的 inode 号,可以通过ls i 命令查看。

如果文件可以恢复,extundelete 会提示进一步操作,否则,可能需要卸载分区并运行 fsck 检查文件系统。

三、使用 xfsdump 恢复文件(适用于 xfs 分区)

1、备份文件系统

在误删除文件之前,最好先进行备份:

    xfsdump f /tmp/dump_data /data

如果备份成功,会出现如下信息:

    xfsdump: Dump Status: SUCCESS

2、恢复文件

如果已经备份,可以使用以下命令恢复文件:

    xfsdump r f /tmp/dump_data o /restored_data

这里/restored_data 是恢复文件的目标目录。

其他恢复方法

1、使用 debugfs 工具

进入 debugfs 模式:

    debugfs

打开被删除文件所在的分区:

    open /dev/sda1

查找被删除文件的目录:

    ls d /www/wwwroot/gitea

查找文件所在的区块号:

    logdump i <1452682>

block 后面的数值并退出 debugfs:

    quit

使用 dd 命令恢复文件:

    dd if=/dev/sda1 of=/www/wwwroot/gitea/asd bs=1152 count=1 skip=5767796

这里bs 与 offset 值一致,skip 与 block 值一致。

在 CentOS 中恢复误删除的文件有多种方法,具体选择哪种方法取决于文件系统的分区类型和具体情况,对于 ext4 分区,extundelete 是一个强大的工具;对于 xfs 分区,xfsdump 则更为适用,无论使用哪种方法,都应在操作前做好充分的备份,以防止数据进一步丢失,及时停止对磁盘的写操作也是提高恢复成功率的关键,通过以上详细的步骤和示例,用户可以更好地理解和掌握 CentOS 下的文件恢复方法。

分享:
扫描分享到社交APP
上一篇
下一篇