现代 Windows 版本默认休眠而不是关机。我记得听说过,如果休眠过程或启动出现问题并且 hiberfil.sys 被删除,即使您已将数据保存到磁盘,也可能会丢失数据。以下是某人报告此情况的一个例子:https://social.technet.microsoft.com/Forums/windows/en-US/e82ba84c-f0c5-4ee1-856d-b652f5cad6df/hibernation-file-deleted-but-saved-data-lost
我可以理解为什么会丢失未保存的数据,但在这种情况下,您真的会丢失已保存的数据吗?这是怎么发生的?任何已保存的数据难道不应该独立于 hiberfil.sys 中的内容写入文件系统吗?
答案1
你不应该丢失已经存储在磁盘上的信息。但是,回写缓存或许可以解释这一点。
写回缓存通过将要写入磁盘的数据放入内存区域并将实际写入磁盘的时间推迟到稍后,以便可以合并多次写入,从而提高性能。但是,写入数据的应用程序会被告知数据在进入缓存后立即写入,而不是在提交到磁盘时写入。
如果在刷新缓存之前发生休眠,则数据的唯一副本将位于 中hiberfil.sys
。恢复失败将导致数据丢失。
其他可能的解释包括文件系统损坏和简单的用户错误。