![使休眠数据持久化(WIndows 7)](https://linux22.com/image/1532489/%E4%BD%BF%E4%BC%91%E7%9C%A0%E6%95%B0%E6%8D%AE%E6%8C%81%E4%B9%85%E5%8C%96%EF%BC%88WIndows%207%EF%BC%89.png)
我想知道是否有可能在恢复后保留休眠数据,这样即使重新启动后,我之前的会话也会恢复。我知道使用 VM 会很简单,但在走这条路之前,我正在探索其他可能性。
我曾考虑过将文件设为只读或取消系统的权限,但我想我会来这里看看是否有更好的方法。
理想情况下,我希望能够选择全新重启,而不会干扰“已保存的会话”。我认为一个很棒的工具是备份休眠数据的程序,并允许您选择要保存哪些数据(如果有)。我也很乐意手动执行此操作或编写脚本来执行此操作,我的障碍是获取所述数据,因为成功恢复后它会被删除,不是吗?
提前致谢。
答案1
你不能同时拥有这两种方式。如果你保存了休眠状态,你必须从该休眠状态恢复,而一旦你这样做,该休眠状态将被破坏。如果你选择不从休眠状态恢复,它也将被破坏,并且上次关机对于操作系统来说会成为意外断电。
归根结底,NTFS 高度依赖状态。文件系统驱动程序在 RAM 中保存大量有关低级 NTFS 数据结构当前状态的元数据(例如,指向打开句柄的块指针、缓存数据、日志倒带位置、已加载块的干净 RAM 页与脏 RAM 页、写时复制状态等)。
当您进入休眠状态时,所有 RAM 都会复制到休眠文件中,并且整个休眠状态必须在重新启动之间保持一致。如果在保存休眠状态和恢复休眠状态之间硬盘上哪怕只有一个字节的数据发生变化,那么状态就不再一致,整个休眠文件将被视为无效。任何不同的操作都如同两个不同的操作系统同时挂载了卷。它们会对文件系统的状况产生分歧,并会破坏彼此的记录,从而导致严重的文件系统损坏。这就是为什么企业 SAN 网络中使用的群集存储文件系统使用为此目的而设计的文件系统的原因。NTFS 根本不可能做到这一点。
即使您对休眠系统进行离线块级备份并将其还原到相同的驱动器,它仍然会使休眠状态无效,因为驱动器的硬件 GUID 将发生变化,并且这也是状态数据的一部分。
此规则的唯一例外是 HORM (H休眠哦nce,R假设米微软增强型写入过滤器 (EWF) 的“任何”功能。此功能仅在 Windows Embedded 版本和 Windows 10 的企业版中可用。这使您可以休眠系统一次,然后根据需要多次从该休眠状态恢复。但是,该功能的缺点是,对文件系统所做的任何更改都会静默地完全重定向到 RAM 磁盘,并在每次系统关闭时转储,从而使整个文件系统在此之后变为只读。