在 Ubuntu 中,我使用 将一些文件移动到 USB 棒mv dir/file /media/7EXXX/swap/
。完成此操作后,我忘记在物理移除 USB 棒之前“安全移除”。现在,file
USB 中不显示。是否可以检索尚未写入 USB 的数据(我假设这些数据驻留在页面/磁盘缓存中)。
答案1
简单的回答是“不,很抱歉,但是你的数据已经丢失了” :(
尽快关机(甚至可能不干净地关机)并使用 LiveCD 等来挂载源分区并使用testdisk
/photorec
等恢复文件。
请记住下次添加,; sync
以便当提示再次出现时您知道文件已写入 USB。
一般来说,几乎不可能从文件缓存中检索数据,除非您能以某种方式找到“页面缓存”过程是什么,否则就会出现其他问题。
/proc/$pid/mem
您可以使用诸如 -- 之类的调试器检查并转储进程内存的内容,gdb
但进程必须能够被 SIGSTOPped。因此:将文件缓存转储到磁盘文件以进行分析并可能使用 、 等进行恢复的要求testdisk
如下photorec
:
- 找到难以捉摸的“页面缓存”过程
- 确保它可以被阻止
- 将其内存转储到磁盘
- 无需重启
在内核开发方面有丰富经验的人可能会编写一些代码来完成此操作……