我在一台机器上安装了 Ubuntu 12.10 和 Windows 7 Home Basic。我将 Windows 7 设置为休眠后,按下电源按钮时,它不会加载 BOOT OPTIONS 或 GRUB 屏幕,而是直接启动 Windows 7。我在一些论坛上看到,按下电源按钮后按 ESC 键,但即使这样也无济于事,因为笔记本电脑开始发出很大的噪音。请帮我解决如何在 W7 休眠时启动操作系统,并在关闭 Ubuntu 后再次恢复 W7。提前谢谢。
答案1
回答:
因为您使用 Wubi 安装了 Ubuntu,所以不幸的是,如果 Windows 处于休眠状态,您将无法选择要启动哪个操作系统。
解释:
从评论来看,您似乎使用 Wubi 安装了 Ubuntu,这意味着您在 Windows 中安装了 Ubuntu。这是因为在评论中,您说“Ubuntu 安装在分区 H: 上”,这可能意味着您可以从 Windows 操作系统访问此 H: 分区并看到其中名为“Ubuntu”的文件夹,对吗?如果是,请继续阅读:
当您重新启动计算机时,它会默认启动 BOOTMGR,即 Windows 引导程序,并为您提供操作系统选择(Windows 或 Ubuntu)。如果您选择 Ubuntu,则进入 GRUB。到目前为止一切正常。但是,BOOTMGR 所做的第一件事(在为您提供操作系统选择之前)是先检查是否有休眠操作系统。当它发现 Windows 处于休眠状态时,它会直接启动到该操作系统,而不会为您提供选项。这就是您的机器上正在发生的事情。另一方面,GRUB 不会这样做。
您将如何克服这个问题?通过将 GRUB 设为默认引导加载程序(Ubuntu 和 Windows 作为操作系统选项),而不是 BOOTMGR。但是,如果 Ubuntu 安装在单独的分区上(以另一种格式格式化的分区,无法ext4
通过 Windows 访问),则会出现这种情况。但是由于您的 Ubuntu 是通过 Wubi 安装的,这意味着它位于 H: 分区上,这意味着它位于 Windows 分区上,这个分区是休眠 Windows 的一部分!明白了吗 =)?因此,我们不能将 GRUB 安装为默认引导加载程序,并要求它从休眠分区启动 Ubuntu,因为这样它会(我认为)试图破坏“休眠数据”并基本上关闭您的 Windows(休眠时您会丢失所有未保存的数据),然后尝试启动 Ubuntu。现在明白了吗?
所以最后,很遗憾,我认为这不可行。您的解决方案是卸载 Ubuntu/Wubi,然后在单独的分区上从头安装 Ubuntu。此解决方案将卸载 Ubuntu/Wubi,并将删除 Ubuntu 中的所有内容,因此请确保备份您需要的文件。
另一个可能的解决方案是将您的 Wubi Ubuntu 转换(迁移)为完整、正常的 Ubuntu 安装(放在单独的分区上)。这样,它将复制您的所有内容,您应该会发现所有文件都恢复原样(**尽管在使用操作系统时始终建议备份文件)。执行此解决方案的步骤详述如下:如何将 Wubi 安装转换为常规安装?以下是您将要执行的操作的简要说明:
- 启动你的 Wubi Ubuntu。
- 使用
gparted
创建一个足够大的空分区来容纳您的 Wubi Ubuntu(只需创建一个与您的 H: 分区一样大的分区,或与“Ubuntu”文件夹一样大)。选择ext4
作为新分区的文件系统类型。 - 从该问题中下载脚本,然后运行
sudo bash wubi-move.sh /dev/sdaX
,其中sdaX
是您在步骤 1 中创建的新分区(“X”是一个数字,例如。您可以在分区旁边sda6
看到该新分区的编号)。gparted
再次强调,这只是一个简短的描述。请访问我链接的问题并阅读全文。
说了这么多,我建议的解决方案是:
- 备份您想要的 Ubuntu 的所有内容。
- 彻底删除 Ubuntu Wubi (如何卸载 Wubi)
- 从头安装 Ubuntu。
如果您的 H 分区仅用于 Ubuntu,那么您可以使用整个分区来安装新的 Ubuntu。
答案2
首先,重要的是要了解您希望实现的目标可能不可行的技术原因。当您休眠 Windows 时,计算机会将内存中的所有内容写入硬盘驱动器并关闭计算机。休眠时,对磁盘的任何更改都可能破坏安装并导致计算机无法使用。因此,休眠专门设计为不允许您在休眠时在操作系统之间切换。
话虽如此,看看 https://superuser.com/questions/46299/is-it-possible-to-enable-hibernation-when-dual-booting-windows
根据您的设置,您应该能够在休眠时使用 BIOS 启动菜单在操作系统之间切换。
这依赖于您在不同的物理驱动器上安装每个操作系统。
答案3
我正在回答问题中与这个问题相关的部分“我甚至无法恢复 Windows“。我也遇到了这个问题......在安装了双启动的系统中Windows 7的和Ubuntu(实际上Linux Mint 17 64 位!),我有一个现代系统(带有 UEFI bios 的技嘉主板),并且可以有选择地启动 Windows 启动管理器、GRUB 加载程序等。
当我将 W7 会话休眠时,无论我做什么,都无法恢复它。我总是
"Your computer cannot come out of hibernation"
显示的错误是代码0xC000009a无论我从 BIOS 启动菜单中选择 Windows 启动加载程序,还是使用 GRUB 并选择 Windows 启动选项,最终结果都是一样的:我被迫销毁暂停(休眠)W7 会话中的信息并“全新”启动到 Windows。
经过一番研究,特别是通过搜索该错误消息和特定代码,我找到了这个解决方案,值得称赞的是:http://www.sevenforums.com/general-discussion/307622-serious-error-0xc000009a.html和http://answers.microsoft.com/en-us/windows/forum/windows_7-system/windows-boot-manager-your-computer-cant-come-out/a3170a6f-2962-45ac-8005-bde7abb35831
显然,错误代码表示与 Windows 中的注册表信息相关的错误。但是,Windows 用于存储休眠信息的 hiberfil.sys 文件似乎也存在问题。
因此,这两个网站建议的修复方法如下:
找你的开始 -> 所有程序 -> 附件 -> 命令提示符菜单上的项目,右键单击它,然后选择以管理员身份运行。然后,输入以下命令:
powercfg-h关闭
重新启动系统(不要休眠)...
当您再次返回 Windows 时,重复以管理员权限运行命令提示符(有点像“sudo”),然后输入:
powercfg-h开启
通过休眠 W7 来测试您的修复,然后唤醒机器并选择启动 Windows 7(如果您根据设置进入 GRUB 加载程序)。它应该显示“恢复 Windows”
这一系列步骤显然可以清除所有损坏的休眠文件以及任何关于如何设置休眠的注册表“误解”。我没有更多技术细节为什么它可以工作,但确实如此!我现在可以自由休眠,并在休眠后重新启动到 Windows 7,甚至使用 GRUB 作为启动管理器(但当然,选择 Windows 启动)。
我更改了 GRUB 默认设置,在超时后启动 Windows,这样恢复 W7 的休眠会话对我来说是最方便的。我使用 W7 的次数多于 Linux,但使用双启动设置,我可以同时使用两者!
感谢每一位为我们带来 GNU/Linux 这一出色的免费软件的人!