重新安装 Win XP hal.dll 后,Grub2 将无法检测到 Ubuntu 11.10 操作系统。

重新安装 Win XP hal.dll 后,Grub2 将无法检测到 Ubuntu 11.10 操作系统。

大家好,我是 Ubuntu 新手。我已在单个硬盘上安装了 ubuntu 11.10 以进行双启动。我手动分区,但基本上忘记了 /boot 分区在哪个 sda 上。我的安装运行正常,我尝试使用它安装更新。过了一会儿,当我想启动 Windows 时,它显示缺少“hal.dll”文件。我使用 Windows 资源 CD 解决了这个问题,但在启动 PC 后,它直接进入 Windows XP。我尝试使用 Live CD/USB 手动重新安装 Grub2,它成功了,但我认为我已将其安装在不同的“sda#”(确切地说是 sda5)上,因为即使在启动 PC 时加载 Grub2,但只有 Windows XP 显示为我的操作系统,而缺少 Ubuntu 11.10。

现在,我尝试安装引导修复程序来解决使用 Live CD/USB 时出现的问题。引导修复程序告诉我引导配置成功,但随后出现了一个基本的 grub 界面(黑色界面,命令行 grub> 出现)。现在我甚至无法启动 Windows XP。任何帮助都将不胜感激。顺便说一下,这是我被要求保存的引导修复记录:http://paste.ubuntu.com/890228/如您所见,sda5 和 sda7 上有启动文件。我认为这就是我现在遇到的核心问题。

提前致谢!

答案1

我解决了 XP 和 Ubuntu 12.04(我在 Windows 之后安装)和 Grub2 双启动时类似的缺失 hal.dll 问题。我无法启动 Ubuntu,因此我使用 Boot-Repair,它修复了 Grub2 并让我启动 Ubuntu,但却破坏了我的 Windows XP 启动,具有讽刺意味的是(我相信)是因为我选择了“修复 Windows 启动文件”选项。

我找到的解决方案是启动 Ubuntu 并编辑 Windows 的 C:/boot.ini 文件。当我将此文件与 boot.ini.bak 文件进行比较时,我发现分区号与原始文件相比发生了不适当的更改:

default=multi(0)disk(0)rdisk(0)partition(2)\WINDOWS

default=multi(0)disk(0)rdisk(0)partition(3)\WINDOWS

一旦我将 boot.ini 恢复为原始状态(通过将 boot.ini.bak 的内容粘贴到 boot.ini 中),使得 XP 从分区 (2) 而不是分区 (3) 启动,Windows XP 就可以正常启动了!

我对这些东西真的很陌生,但我相信这个问题的出现是因为 Boot-Repair 将我的 Ubuntu 交换驱动器(它是一个逻辑/扩展分区,而不是主分区)识别为额外分区,而 Windows XP 没有。因此,如果在 Windows 安装之前有逻辑分区,Boot-Repair 可能会破坏您的 Windows boot.ini 文件。

答案2

请运行Boot-Repair,单击“高级选项”,然后:

  • 在“GRUB 位置”选项卡中,选择“使用单独的 /boot:sda5”选项

  • 并在“GRUB 选项”选项卡中勾选“FlexNet”选项

  • 然后应用,并指示将出现的新 URL。重新启动并检查是否更好。

相关内容