从 Windows 修复 Ubuntu 引导加载程序

从 Windows 修复 Ubuntu 引导加载程序

我的 Windows 8 安装在 C 盘。我将 Ubuntu 安装在 D 盘。安装 Ubuntu 时,我错误地选择了从 C 盘加载引导加载程序。然后,重新启动,它直接启动到 Ubuntu,而没有给我从操作系统列表中选择的选项。然后,我使用以下命令从 Ubuntu 修复了 Windows 加载程序:

sudo apt-get update; sudo apt-get install syslinux

然后

sudo dd if=/usr/lib/syslinux/mbr.bin of=/dev/sda

现在,它直接启动到 Windows 中!问题被逆转了!

问题是如何有一个引导加载程序选项可供选择,以引导到所需的操作系统。谢谢

最后更新

我删除了那些不必要的磁盘并重新安装了 ubuntu。但情况还是一样!我有端口 0 上有 120GB SSD包含我的 Windows 8 和一张 端口 1 中为 500GB我安装了 ubuntu 和端口 2 中的 2TB 磁盘。另外还有一个 8GB 的​​ USB 记忆棒,我用它来进行引导修复。以下是已上传至的报告: http://paste.ubuntu.com/15503838/

顺便说一句,如果需要,我可以重新安装 ubuntu,或者如果这样做可以找到更简单的解决方案。但不幸的是,我无法接触 Windows 操作系统。
我花了一整天的时间解决这个启动问题,但没有成功,这对我来说太复杂了,只有当涉及到单独的硬盘时,我在我的笔记本电脑上运行它,在一个有两个分区的驱动器上。工作得非常好!但由于台式机有多个硬盘,所以变得很复杂。我很感激你的帮助。

答案1

显然,你的 Ubuntu 安装在一个单独的磁盘上(sdg),而且由于你选择了 Windows 磁盘(sda我假设),所以 grub 的启动代码安装到了它的 MBR,然后你用 syslinux 的启动代码替换了它。它会寻找active分区并最终加载 bootmgr。

因此您需要重新安装 grub sdg(使用 Ubuntu live 介质):

mount /dev/sdg1 /mnt
grub-install --boot-directory /mnt/boot /dev/sdg

您可以将 Windows 驱动器保留为 BIOS 中的优先驱动器,并在需要时使用 BIOS 启动菜单切换到 Ubuntu。

如果您更喜欢使用 grub 进行切换,请在 BIOS 设置中优先考虑 Ubuntu 驱动器,并为 Windows 添加启动项:

GRUB_DISABLE_OS_PROBER=true

此条目用于阻止 GRUB 将 os-prober 的结果添加到菜单中。值为“true”将在执行 update-grub 命令期间禁用 os-prober 对操作系统(包括 Windows、Linux、OSX 和 Hurd)的其他分区的检查。

https://help.ubuntu.com/community/Grub2/Setup

因此请确保选项是错误的在 中/etc/default/grub,确保os-prober已使用 apt-get 安装,然后运行update-grub​​。

答案2

我刚刚用过引导修复 成功了。只需下载 Live CD 或 Live USB,然后使用它启动您的机器。

在此处输入图片描述

相关内容