引导加载程序安装在哪里?


14

引导加载程序(例如Grub)通常安装在哪里?

当我在磁盘的不同分区上沿着Windows侧面安装12.04时,遇到了“用于引导加载程序安装的设备”的选择。如果我理解正确,那就是指定引导加载程序Grub的安装位置,

我在互联网上发现它是要指定包含OS分区的磁盘,而不是磁盘上的任何分区。例如,磁盘sda,而不是分区sda1,sda2。

问题:

我想知道引导加载程序实际安装在磁盘上的什么位置?

它是否已安装在用于操作系统和个人数据的任何现有分区上,或者是否具有自己的分区(例如,在Ubuntu的系统监视器中也可见)?

谢谢并恭祝安康!


1
引导加载程序安装在HARD DISK和ubuntu的根文件夹上(据我所知)
Ravi

(1)它在Ubuntu系统监视器上或在某些现有分区上是否具有自己的分区?(2)“在ubuntu的根文件夹上”是指安装的Ubuntu的同一分区,即“ /”的分区吗?但是,当我选择“ /”作为“用于引导加载程序安装的设备”时,在启动过程中加载要引导进入的OS选项时出错。我只能选择整个磁盘,而不能选择其任何分区作为“用于引导加载程序安装的设备”。
蒂姆(Tim)

请编辑您的标题。我认为这与您的问题不符
阿舒(Ashu)2012年

如果是UEFI系统,则grub的一部分位于ESP-与Windows启动加载程序共享的efi系统分区中。UEFI具有可以记住条目的NVRAM。askubuntu.com/questions/63610/…,这是用于删除Windows但使用相同的过程:askubuntu.com/questions/794725/…–
oldfred

1
拜托你打开一个新的问题,如果你有一个新的或后续的问题?如果您将几乎不相关的问题添加到现有问题上,则会扩大其范围,从而使它们难以回答。最重要的是,它可能会使现有答案无效。我可以自由地恢复添加了后续问题的编辑。谢谢。
David Foerster

Answers:


18

需要在BIOS正在寻找启动内容的地方安装启动加载程序。为简单起见,通常有一个磁盘驱动器用于启动计算机,在该磁盘上安装GNU / Linux系统,引导加载程序也到达该位置。

引导加载程序唯一需要的是:

  • BIOS能够找到它
  • 它能够找到并引导您的操作系统(对于Linux,您只需要Bootloader就能以某种方式访问内核,如果使用的是initrd映像,则可以)。

只要涵盖了这两点,就可以将其安装在更方便的位置以及BIOS会在哪里寻找它。

BIOS通常会在硬盘的主启动记录中查找引导加载程序,该记录是驱动器开头的小区域,您可以在其中放置一些要运行的代码。您也可以在分区的开头安装引导加载程序。

引导加载程序通常足够小以适合这些小区域,即使没有,它们也必须在此放置一些东西,以便BIOS引导引导加载程序。

lilo是安装在这些区域中的简单引导程序。grub更大,因此您需要在这些区域中安装一些代码,然后从磁盘分区(grub称为“已安装”,其配置文件所在的磁盘分区)中加载更多的代码以及二进制代码,通常将其设置为系统/boot分区,为方便起见,也将内核和initrds放在其中。

在这种情况下,如果提示您输入磁盘,则意味着它询问您应该在哪个主引导记录上grub进行安装,即要从中引导计算机的磁盘。这部分grub将仅安装在磁盘MBR上。其余的可能被安装在同一个分区//boot/Ubuntu系统的您正在安装(和休息从Ubuntu的,找目录访问/boot/grub//grub/)。


1
谢谢!是那个小区域,即磁盘的MBR,一个分区本身还是在其他分区中?它会显示在Ubuntu系统监视器中吗?
蒂姆(Tim)

2
不,MBR不是分区。它实际上是分区表本身与(可选)引导代码一起存储的地方。它不会出现在系统监视器中,因为它不是分区并且没有文件系统(至少如果“系统监视器”是这样:dedoimedo.com/images/computers/wubi-ubuntu-system-monitor .jpg-已挂载文件系统表)。它也不会显示在显示分区表的工具中。(它非常小,顺便说一句:只有512个字节。)
njsg 2012年

1
BIOS是否也安装在磁盘的MBR中?那是哪里
蒂姆(Tim)

3
不,BIOS在主板上的一块小的可擦写存储芯片中。它处理低级硬件问题,它是在计算机启动过程的早期阶段处理一些细节的事情(例如启用/禁用/准备一些设备,寻找启动设备,管理网络启动和POST)。维基百科上有一篇有关启动过程文章,您可能会觉得很有趣。
njsg 2012年

11

Grub2是Ubuntu的标准引导加载程序。与往常一样,我们更喜欢具有高度可配置的应用程序。Grub2就是其中之一。无论这是一个好主意,Grub2都将准确地安装到您告诉它的位置。

主引导记录

通常的情况是 您从中引导计算机的驱动器主引导记录(MBR)。这很可能是您的第一个(或唯一)硬盘/sda。这也是安装Grub2时的默认选项。

其他驱动器

当然,该引导设备也可以是另一个硬盘驱动器,SSD甚至是外部设备。然后,当您询问Grub2时,您必须告诉它希望在哪里安装它。

隔断

需要将Grub安装到分区的情况很少见,但是仍然有可能,例如,如果您使用另一个引导程序并从分区启动记录中链式加载Grub。

其他引导程序

其他引导加载程序也位于MBR中。Grub2将覆盖它们,因此您将无法再使用它们进行引导。Grub2将负责引导您从引导时显示的菜单中选择的操作系统。

Grub应用程序和设置

Grub应用程序及其设置由于其大小而不适用于主引导记录。因此,它们将安装在其他位置(再次可以配置它)。通常,默认情况下,Grub2在根目录下查找文件/在安装Ubuntu分区,但是它也可以是任何硬盘驱动器上的任何其他分区。

启动分区

有人认为,为此设置一个单独的专用启动分区是个好主意。但是仅在特殊情况下才需要这样做,例如,如果您安装了需要从GUID分区表(GPT)进行引导的UEFI BIOS。


4

在安装Ubuntu时,正是您选择安装它的位置。ubiquity在安装过程中提示您输入此信息。见下文:

普遍存在的grub安装

如果您正在运行旧版系统(BIOS),则通常是您选择的驱动器的主启动记录,或者是您选择将其安装在其中的分区的分区启动记录的异常选择。如果您正在运行带有统一可扩展固件接口的系统,则grub引导加载程序将安装在ESP中。

资料来源:

https://help.ubuntu.com/community/Grub2/安装

https://zh.wikipedia.org/wiki/BIOS

https://zh.wikipedia.org/wiki/Unified_Extensible_Firmware_Interface

https://www.rodsbooks.com/efi-bootloaders/installation.html#accessing

经验


1

命令lsblk /dev/sdalsblk /dev/sdb

将显示标签/boot/boot/efi等指示启动管理器使用的分区



0

我花了一个小时试图找到在Debian中安装GRUB的配置,因为它没有存储在GRUB自己的配置文件中。

事实证明,它是由debconf处理的:debconf-show grub-pc并查找“ grub-pc / install_devices”。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.