安装 GRUB 到 Ubuntu 分区

Noe*_*oel 9 partitioning grub2 bios

所以我的电脑有以下分区:

/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”时,它会加载一个黑屏并显示“无效的拱形独立 ELF 魔法

grub 救援> _" 并允许我输入内容。我该如何解决这个问题,或者告诉我的计算机 Grub 在哪里?

Ser*_*gey 5

BIOS 不够聪明,不会问您有关分区的问题,实际上,它对分区一无所知。从 BIOS 的角度来看,您的磁盘只是一个 512 字节扇区的序列。

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

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

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