我在 Linux 服务器上用空白文件覆盖了一个大文件。我可以恢复现有文件吗?

我在 Linux 服务器上用空白文件覆盖了一个大文件。我可以恢复现有文件吗?

我回到我的机器,尝试通过 ssh 将文件保存到我的 linux 服务器(CentOS)上。

失败了。

我不想保留所做的任何更改,因此我关闭了编辑器并重新打开文件(通过 ssh)。

保存尝试删除了文件。

自从我上次上传到修订控制以来,我对其进行了大量更改。

由于文件刚刚被删除,我猜数据还在那里。这只是一个文本文件 (php),有什么方法可以恢复它吗?

答案1

鉴于它刚刚擦除了文件,我认为数据仍然存在。

恐怕您猜错了。根据文件系统和底层设备,曾经组成文件的字节可能仍然存在于磁盘上,但除了全面取证恢复外,其他任何方法都无法访问它,我敢肯定您不想为此付费。

您是否检查过临时目录,确保没有其他副本?因为您可能无法恢复该特定文件。

关于这些坏消息我很遗憾。

答案2

如果 inode 被取消引用,您可能能够恢复数据。如果块被覆盖,则需要像 Matt 指出的那样进行取证恢复。

我首选的方法是使用debugfs,可用于访问已被取消引用但尚未被覆盖的 inode。lsdel命令是关键。使用一些简单的脚本,您可以创建指向 lsdel 输出的所有 inode 的硬链接,并开始摸索数据。

还有其他技巧,例如查找文件系统或者查找 inode使用不同的方法。

祝你好运,小心谨慎。低级实用程序如果不谨慎,很容易产生灾难性的后果。

答案3

使用相簿。就是这样。曾经遇到过一个问题(Linux),我删除了一个分区,该分区在 LVM2 卷组中用作物理卷,并且没有 /etc/lvm/backup 文件的备份。PhotoRec 巧妙地解决了这个问题,检查了已删除的分区并为我恢复了此文件(纯文本文件),从中我能够重建原始配置。祝你好运。

答案4

这是最后一个建议 - 看看您是否可以在本地计算机上恢复编辑器打开的文件。我以前做过这个,能够在本地恢复,而不必在服务器上尝试恢复,因为服务器更忙,因此更有可能重新使用文件占用的磁盘空间。

相关内容