将 GRUB 安装到 Ubuntu 分区

将 GRUB 安装到 Ubuntu 分区

我的电脑有以下分区:

/dev/sda —(我知道这不是一个真正的分区,但它更像是引导加载程序)

/dev/sda1——(Windows 7 启动加载程序)

/dev/sda3——(Windows 7)

/dev/sda4 —(数据分区,NTFS)

这意味着我有 /dev/sda2 作为可用空间。

我不想更改计算机的 MBR。我希望 /dev/sda2 包含 GRUBUbuntu。理想情况下,当我打开电脑时,BIOS会询问我是否要启动 Windows 7 或 Ubuntu(或 Grub 或分区 2),我可以选择其中之一。但我希望 Grub 和 Ubuntu 位于同一个分区上,这样它们就不会以任何方式干扰 Windows 或 Windows 的引导加载程序/分区 (sda3)

我怎样才能做到这一点?

问题:格式化分区时,Ubuntu 不允许我将它们设为虚拟分区,因此事情变得更加困难。

我试过:将 Ubuntu 安装到 /dev/sda2(我将其格式化为 ext4),然后告诉 Ubuntu 安装程序将引导加载程序安装到 /dev/sda2。但是当我从 BIOS 的启动选择中选择“Ubuntu”时,它会加载一个黑屏并显示“无效的 arch independent ELF magic

grub rescue> _” 并允许我输入内容。我该如何修复这个问题,或者告诉我的电脑 Grub 在哪里?

答案1

BIOS 不够聪明,不会询问您有关分区的信息,事实上,它对分区一无所知。从 BIOS 的角度来看,您的磁盘只是一串 512 字节扇区。

当 BIOS 准备将控制权传递给引导加载程序时,它只会从磁盘读取前 512 个字节,然后盲目地将控制权传递给位于该数据中预定义位置的任何程序。该程序 (MBR 引导加载程序) 的工作是加载操作系统(这通常涉及从磁盘上的其他位置加载更复杂的引导加载程序)。

重点是 - 这是你的引导加载程序,存储在 MBR 中,它知道分区和其他信息。您可能在那里有一个 Windows 引导加载程序或 GRUB。如果您找到一种方法来配置Windows 引导加载程序将控制权传递给已安装的 GRUB,/dev/sdaX那么您的架构就可以工作了,尽管我从未听说有人这样做。您知道,Windows 并不十分关心能否加载其他操作系统。

如果您的机器有两个硬盘,那么您可以做您想做的事情 - 只需在一个硬盘上安装 Windows,在另一个硬盘上安装 Ubuntu,然后在 BIOS 中切换它们。或者,我不知道,也许可以将 GRUB 放在闪存驱动器上?那实际上​​会很酷 - 如果驱动器被拔出,Windows 将启动,如果您插入驱动器,Ubuntu 将启动(前提是“从 USB 启动”在启动设备列表中排在第一位)。

答案2

我使用第三方启动管理器,这意味着我特别想grub安装到某个分区。在安装过程中处理这个问题很容易,因为 Ubuntu 允许你将 grub 放在你喜欢的任何位置。但是,如果你想在安装后再这样做,那么很简单:

sudo grub-install /dev/sda1 --force

sda1您想将其放置在哪个分区?

答案3

请问为什么您不想在 MBR 中安装 GRUB,从而取代 Windows 引导加载程序?


不建议在分区中安装 GRUB,这通常被认为是馊主意。通常最好让 Ubuntu 在硬盘的 MBR 中安装 GRUB。

然后 GRUB 就可以负责加载 Ubuntu 或 Windows。这种方法简单、无害,而且是推荐的方法。

如果您选择返回 Windows 并专门使用其引导加载程序,则此过程也是完全可逆的。


如果您决定在 MBR 中安装 GRUB(您应该这样做),那么 Boot Repair 是可行的方法。

安装 GRUB

要安装 GRUB 引导加载程序,请按照以下步骤操作。

在 Ubuntu 中打开终端,并运行以下命令:

sudo add-apt-repository ppa:yannubuntu/boot-repair
sudo apt-get update
sudo apt-get install -y boot-repair
boot-repair

几秒钟后,Boot Repair 的主窗口将打开。

点击Recommended repair

你完成了!

重新启动以测试一切。

在计算机启动时按住该Shift键以显示 GRUB 菜单,您可以选择要启动的操作系统。


词汇表

引导加载程序:在任何操作系统运行之前运行的一段代码。引导加载程序用于引导其他操作系统。每个操作系统通常都有自己的引导加载程序。

GRUB(大统一引导加载程序:一个引导加载程序包,旨在支持多种操作系统,并允许用户在启动时选择它们。它是 Ubuntu 的默认引导加载程序。

命令、命令行:传统的 Unix 环境,您在其中输入命令来告诉计算机要做什么。

终端:允许您访问命令行的应用程序。通过点击其键盘快捷键打开它,Ctrl Alt T

答案4

这很容易做到。只需下载 EasyBCD 即可编辑 Windows 引导加载程序。

相关内容