是否可以防止 Windows 在关闭时删除休眠文件 (hiberfil.sys)?

7 windows windows-7 file-management hibernate

我正在尝试将休眠文件从系统分区 (SSD) 移动到其他分区 (HDD)。

我知道很多人说这是不可能的,但我还没有完全相信。

我想要做的是:

  1. 从 Windows 7 DVD 启动;
  2. hiberfil.sys从SSD复制到HDD;
  3. hiberfil.sys从 SSD 中删除;
  4. hiberfil.sys在 SSD 上创建符号链接;

不幸的是,当我从 Windows 7 DVD 启动时,我遗憾地发现 hiberfil.sys 文件不存在。我记得我在某处读到过 Windows 会在关闭时自动删除 hiberfil.sys 文件。

是否可以防止 Windows 在关闭时删除 hiberfil.sys 文件?

谢谢


更新

似乎 Windows 在关闭时实际上不会删除 hiberfil.sys 文件。这是 VMware Tools 在关闭/启动时自动禁用休眠。

Ƭᴇc*_*007 5

不,你不能移动它。

在引导期间,Windows(和您的 BIOS)使用最小的文件 I/O 系统来定位引导驱动器和完成引导所需的文件(包括文件系统驱动程序)。由于休眠文件包含关机前的系统状态,因此实际上需要引导至“完整”文件系统。

如果您从 DOS 时代就开始使用,您可能记得必须使用“SYS”来使磁盘可引导;你不能只是将启动文件(msdos.sys、io.sys 等)复制到磁盘并让它工作,因为它们需要(ed)位于磁盘上的特定地址,以便系统知道在哪里找到它们来启动实际的操作系统。同样的交易在这里...

这是一个很好的简介:

休眠遵循类似的模式。使操作系统休眠意味着将内存的全部内容转储到休眠文件中;从休眠状态恢复需要将该文件吸回内存并假装什么也没发生。同样,这是另一个鸡与蛋的问题:要加载休眠文件,您需要文件系统驱动程序,但文件系统驱动程序在休眠文件中。如果将休眠文件保存在引导驱动器的根目录中,则可以使用微型文件系统驱动程序。

您可以在此处阅读本文的其余部分。

  • @Tom Wijsman - 它仍然适用。以下是 2009 年 MS MVP 的参考资料,特别是关于 Windows 7:http://social.technet.microsoft.com/Forums/bg-BG/w7itproui/thread/b5baa5bf-bdb2-4c9e-8795-1441f59700a0 - 他链接回到同一篇文章。我认为你会发现硬链接的问题是它们在文件系统运行之前不存在,这将是_after_hibernaiton 文件已用于启动。 (3认同)
  • @Tom Wijsman - 我知道 MVP 不是真正的 MS 代表。但是他们通常比互联网上的普通人更了解他们最喜欢的 MS 技术。xbootmgr 跟踪用于检查进入和退出 ACPI 睡眠状态时的系统性能(以及它们处于这些状态的时间)。直到挂载休眠文件并且操作系统再次运行后,跟踪才会开始/继续。 (2认同)
  • @techie007:抱歉扮演魔鬼的拥护者。可以在我的回答中找到 Windows Internals 书中的 MS 代表解释,并像您一样跟踪它是两种最新的方法来验证以这种方式是不可能的,唯一要尝试的就是改变它注册表位置,因为它很可能是有原因的...... (2认同)