Debian 7.3.0 - GRUB 是必需的吗?

Debian 7.3.0 - GRUB 是必需的吗?

我最近一直在玩 Debian,因为在我看来,这是我从 Ubuntu 开始 Linux 之旅后最合乎逻辑的一步(我真的不喜欢 Unity,而且同时安装 GNOME 让我很烦,因为我不能完全卸载 Unity,否则会弄乱剩余的桌面功能。)在安装过程中一直困扰我的一件事是安装 GRUB 的选项。

在我看来,这似乎没有必要,应该像 Ubuntu 和 Windows 那样直接启动到内核,而不是让我选择一个,而我的选择总是一样的——默认选项。

在安装过程中,解释该选项的文本大致是这样的:“我们需要让 Debian 可启动”——这就是我犹豫是否选择“否”的主要原因。我当然希望它能启动!我可以花点时间看看如果我选择“否”,会发生什么,但我认为最好先问问大家。

选择“否”安装 GRUB 是否安全?如果未安装 Debian,Debian 是否仍会启动?如果选择“否”是安全的,那么此选项有什么缺点吗?

答案1

嗯...我该怎么说呢。Debian 是一个在计算机上运行的 Linux 发行版,但要让它开始工作,需要一个引导加载程序。该发行版基本上依赖于 GRUB 或任何其他引导加载程序,直到它准备好运行。您可以使用 syslinux 作为 GRUB 的替代品。

答案2

扩展已接受的答案......

当 x86 PC 启动时,其 CPU 以 16 位实模式执行,并运行存储在 BIOS 中的代码。BIOS 执行 POST 和初始配置后,它会从启动盘的开头读取前 512 个字节,并将执行转移到那里 — 它是引导加载程序的初始代码,其余部分应该由引导加载程序完成。

现在考虑休息是什么。 在最简单的情况下,引导加载程序应该能够定位和加载内核的映像并将执行转移到那里。较早的事实标准 Linux 加载程序,,lilo保存了存储内核的所有扇区的连续映射。但从那时起,情况发生了很大变化:更多的文件系统开始使用,将内核保存在 RAID 设备或 LVM 逻辑磁盘或所有这些的堆栈上已成为惯例。计算机开始具有更多可插拔磁盘,这意味着它们的初始化顺序是任意的,因此命名存在问题。现在考虑一下,如今基于 Linux 构建通用系统需要一些早期可用的用户空间这些工具保存在所谓的“initrd”(初始 RAM 磁盘)或“initramfs”(初始 RAM 文件系统)中,因此实际上引导加载程序不仅加载 Linux 内核,还加载与其匹配的 initramfs。

因此,引导加载程序的任务是:

  1. Bootstrap 本身 —— 这 512 字节只能合理地查找和加载更复杂的东西。
  2. 发现并初始化访问启动文件系统(包含内核及其 initramfs 的文件系统)所需的所有层。
  3. 加载所有内容,然后将控制权转移到内核。

现在考虑一下,大多数人都觉得能够以某种方式可视化和控制这个过程很有用,因此引导加载程序需要能够显示某种菜单,并能够调整要加载的内容和加载方式。加载备用内核的能力也可能是一个好处(例如,从 Debian 安全更新存储库安装的新内核永远不会删除现有内核 — 相反,现有内核会被保留下来,如果在新内核中发现回归,则可以使用该内核进行引导)。

因此,可以看出,除非我们处理的是内存/存储空间要求非常严格的嵌入式系统,并且没有人控制如何加载内核,否则将此功能直接放入内核是不合理的,尤其是因为引导加载程序本质上是一个高度依赖于硬件平台的软件。这就是引导加载程序存在的原因,也是为什么在通用系统上使用它的需求是不可避免的原因。

相关内容