是否可以从磁盘/页面缓存中恢复未刷新的数据?

是否可以从磁盘/页面缓存中恢复未刷新的数据?

在 Ubuntu 中,我使用 将一些文件移动到 USB 棒mv dir/file /media/7EXXX/swap/。完成此操作后,我忘记在物理移除 USB 棒之前“安全移除”。现在,fileUSB 中不显示。是否可以检索尚未写入 USB 的数据(我假设这些数据驻留在页面/磁盘缓存中)。

答案1

简单的回答是“不,很抱歉,但是你的数据已经丢失了” :(

尽快关机(甚至可能不干净地关机)并使用 LiveCD 等来挂载源分区并使用testdisk/photorec等恢复文件。

请记住下次添加,; sync以便当提示再次出现时您知道文件已写入 USB。


一般来说,几乎不可能从文件缓存中检索数据,除非您能以某种方式找到“页面缓存”过程是什么,否则就会出现其他问题。

/proc/$pid/mem您可以使用诸如 -- 之类的调试器检查并转储进程内存的内容,gdb但进程必须能够被 SIGSTOPped。因此:将文件缓存转储到磁盘文件以进行分析并可能使用 、 等进行恢复的要求testdisk如下photorec

  • 找到难以捉摸的“页面缓存”过程
  • 确保它可以被阻止
  • 将其内存转储到磁盘
  • 无需重启

在内核开发方面有丰富经验的人可能会编写一些代码来完成此操作……

相关内容