我正在运行 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,但其中随机散布着其他文件的块。
到防止对此,最好的办法是知道当这种情况发生时该怎么做。
如果你没有刚刚截断的文件的备份,你需要做的是立刻切断系统电源。拔掉插头,我的意思是将其从墙上拔下。切断系统的电源。如果是笔记本电脑,请拔掉插头并取出电池。
关闭计算机通常会运行数十个系统管理脚本,这些脚本会执行大量写道到磁盘。这就是那个随意向你的杰作泼洒颜料的人。你不会想要这样的。
在这种情况下,拔掉插头是至少你可能做的有害的事情。
然后,一旦电源被切断,您就可以冷静下来,喘口气,开始理性地思考如何恢复数据。但无论您做什么,在恢复数据之前,都不要打开系统并再次从该硬盘启动。
--
规范的、通用的超级用户数据恢复帖子位于这里。