我不小心截断了一个没有备份的文件,现在该怎么办?

我不小心截断了一个没有备份的文件,现在该怎么办?

我正在运行 KVM 服务器 300Gb vmdk 文件大小 当我想备份我的服务器时,我运行脚本(注意发送服务器:192.168.13.95,接收服务器 192.168.13.91)

#tar cv vm-102-disk-1.vmdk | nc -q 1 192.168.13.91 1234

在我的发送服务器上运行脚本

#nc -w 10 192.168.13.95 1234 > vm-102-disk-1.vmdk

不幸的是,我也从另一个控制台在发送服务器中运行它,实际上我知道我必须从接收服务器运行该脚本

这个错误导致我的 300Gb vmdk 文件被重写为 0 字节,有什么办法可以恢复它吗?

答案1

文件以一系列逻辑形式存储在磁盘上,通常为 512 字节或 4096 字节。当文件截断为 0 字节(这显然是这里发生的情况),这意味着文件系统更新了文件的元数据,以便它先前声明为文件一部分的所有块都不再是文件的一部分。

事实上,那些曾经属于文件一部分的块现在将被标记为可用空间

由于大多数活动系统每秒执行数十到数千次磁盘写入(更新日志文件、性能核算、后台更新过程、用户输入等),硬盘的可用空间将倾向于以非常随机、“碎片化”的方式使用,小块的信息会被从整个磁盘上标记为空闲的块中分配出来。

这有点像拿了一幅好画,让某人随意地把桶里的颜料泼到这幅画上。这幅画就毁了非常很快。曾经有序的数据(完整的 VMDK 映像)将很快变成一串杂乱的位,其中大部分仍然是您的 VMDK,但其中随机散布着其他文件的块。

防止对此,最好的办法是知道当这种情况发生时该怎么做。

如果你没有刚刚截断的文件的备份,你需要做的是立刻切断系统电源。拔掉插头,我的意思是将其从墙上拔下。切断系统的电源。如果是笔记本电脑,请拔掉插头并取出电池。

关闭计算机通常会运行数十个系统管理脚本,这些脚本会执行大量写道到磁盘。这就是那个随意向你的杰作泼洒颜料的人。你不会想要这样的。

在这种情况下,拔掉插头是至少你可能做的有害的事情。

然后,一旦电源被切断,您就可以冷静下来,喘口气,开始理性地思考如何恢复数据。但无论您做什么,在恢复数据之前,都不要打开系统并再次从该硬盘启动。

--

规范的、通用的超级用户数据恢复帖子位于这里

相关内容