# 系统启动与引导加载器

URL: https://caijiao.org/gentoo/bootloader
Source: docs/gentoo/bootloader.md
Description: 本章介绍 Gentoo 系统启动流程及 GRUB 引导加载器的安装与配置方法。

完成内核编译与安装后，下一步是配置 **系统启动与引导加载器**，确保 Gentoo 能够正常启动。GRUB 是 Gentoo 推荐的引导加载器，支持多内核和多系统启动。

## 一、系统启动流程概述

Gentoo 系统启动大致流程：

1. **BIOS/UEFI** 检测硬件并加载引导加载器  
2. **GRUB** 显示启动菜单，加载指定内核  
3. **内核** 初始化硬件和挂载根文件系统  
4. **Init 系统** 启动系统服务（OpenRC 或 systemd）  
5. 用户登录

## 二、安装 GRUB 引导加载器

1. 安装 GRUB 包：

```bash
emerge sys-boot/grub
````

2. 安装到主引导记录（MBR）或 EFI 分区：

* BIOS 系统：

```bash
grub-install /dev/sda
```

* UEFI 系统：

```bash
grub-install --target=x86_64-efi --efi-directory=/boot/efi --bootloader-id=gentoo
```

## 三、生成 GRUB 配置文件

GRUB 配置文件位于 `/boot/grub/grub.cfg`。生成方法：

```bash
grub-mkconfig -o /boot/grub/grub.cfg
```

生成过程中，GRUB 会扫描 `/boot` 下的内核和 initramfs 文件，并生成启动条目。

## 四、常用 GRUB 配置选项

在 `/etc/default/grub` 可配置：

```bash
GRUB_TIMEOUT=5           # 启动菜单等待时间（秒）
GRUB_DISTRIBUTOR="Gentoo"
GRUB_CMDLINE_LINUX="root=/dev/sda3"  # 指定根分区
```

修改后需重新生成配置文件：

```bash
grub-mkconfig -o /boot/grub/grub.cfg
```

## 五、验证系统启动

1. 退出 chroot 并重启：

```bash
exit
reboot
```

2. 在启动菜单选择 Gentoo 内核
3. 系统启动后，检查内核版本和根分区：

```bash
uname -r
mount | grep "on / "
```

## 六、建议操作

* 保留多个内核条目，以便出现问题时回滚
* 确认 EFI 系统挂载正确，防止启动失败
* 定期更新 GRUB 配置和内核
