我对 Grub 有一个简单的问题。当 Ubuntu 是机器上安装的唯一系统时,打开计算机时不会出现 Grub,我的问题是:当 Ubuntu 是唯一的系统时,Grub 不会安装在 MBR 上吗?
当我尝试 Grub 中的 ASPM 命令时,我对此产生了怀疑,想看看它是否能为我的笔记本节省一些电量,结果差别只有 0.4W。我甚至不知道它是否有效果,或者这只是一个正常的振荡。
谢谢。
答案1
答案2
默认情况下,如果只安装了一个操作系统,Grub 不会显示已安装操作系统的列表。但是,它仍然有许多条目(例如安全模式和内存测试)。
要强制显示列表(并证明其存在),只需在启动过程中(内核加载之前)按住 Shift 键。
答案3
GRUB 作为引导管理器
你把 GRUB 看作是一个引导经理,这没错,但这只是其功能的一部分。引导管理器在选择不同的操作系统时最有用。但作为引导管理器,GRUB 还允许您:
- 在不同的内核之间进行选择
- 手动指定内核选项(如
nomodeset
) - 运行 memtest (RAM 测试实用程序) -技术上这是启动另一个操作系统
- 实现密码保护启动
- 执行基本的诊断和恢复操作——尽管我们通常只是从实时 CD/DVD 或实时 USB 启动,因为它功能更强大,而且通常更容易且技术含量更低
正如其他人所说,当 Ubuntu 是唯一安装的操作系统时,大多数功能都可以通过Shift在启动时按住来访问。
但最重要的是,GRUB 是一个引导加载程序。
但最重要的GRUB 的功能是引导加载器。引导加载程序和引导管理器的功能有些重叠,这两个术语有时可以互换使用。但区别在于:
- 启动管理器提供了方便的功能来增强用户对启动过程的控制。
- 引导加载程序执行启动操作系统所需的操作。如果没有引导加载程序,操作系统根本无法启动。
基本上所有引导管理器都是引导加载程序,但并非所有引导加载程序都是引导管理器。有些引导加载程序提供的引导管理功能不如 GRUB 广泛。例如,Windows 引导加载程序允许您在操作系统之间进行选择,但实际上它通常仅用于在不同的Windows操作系统之间进行选择。
为什么需要引导加载程序
计算机的 BIOS 或 EFI 固件负责访问存储设备并从主引导记录正在启动的设备。
内核映像(通常)位于磁盘上的实际分区内。引导加载程序访问包含内核的文件系统,将内核加载到内存中,执行运行内核所需的任何步骤1并运行它2。
一些引导加载程序提供了额外的功能,比如允许您选择要引导的操作系统或内核,或者为接受它们的内核(如 Linux 内核和大多数其他现代内核)设置引导选项。但从某种意义上说,这些都是次要的:引导加载程序的主要功能是加载内核并开始运行。如果没有引导加载程序,您的 PC 根本无法启动操作系统。
(1)例如,由于历史原因,传统的基于 32 位或 64 位 BIOS 的 PC 一开始会模拟 16 位处理器。它必须先“变成”32 位(或 64 位)机器,然后才能加载现代内核,而现代引导加载程序可以实现这一点。
(2)内核在首次加载后,其行为就像一个程序,因此称其为“正在运行”是合理的。系统启动后,现代操作系统中不再存在称为“内核”的特定进程。相反,存在多个独立的内核服务,我们通常认为的“正在运行的内核”实际上更像是一个图书馆(提供系统调用到应用程序)。
进一步阅读:
- 维基百科:主引导记录
- 维基百科:引导
- 操作系统开发 wiki:引导加载程序
- xv6:一个简单的类Unix教学操作系统、附录 B:引导加载程序(第 87 页)