Linux GRUB2
boot loader
在计算机启动的时候决定如何运行(启动)安装于硬盘上的操作系统,GRand Unified Bootloader(GRUB)是 Linux 中最流行的 Bootloader 程序。目前主要有 2 个 GRUB 版本:
- GRUB : 遗留版本 GRUB v1,在较旧的 Linux 发行版中使用
- GRUB 2 : 当前最新版本,较新的 Linux 发行版中默认的 Bootloader. GRUB 2 的主要功能依旧是 查找并启动已安装在计算机上的操作系统 。同时 通过内嵌了一些工具和配置文件提供了更强大的功能以及灵活性 。
GRUB 2 的配置文件是 /boot/grub/grub.cfg
或者 /boot/grub2/grub.cfg
,关于其配置文件,要注意以下事项:
grub.cfg
的内容是由工具grub-mkconfig
根据/etc/default/grub
和/etc/grub.d/
中的内容自动生成,最好不要手动改动grub.cfg
中可以包含 Shell 脚本语法,如 函数,循环,变量等- 用于定位内核(Kernels)和
Initial RAM
位置的设备名称,最好是使用更加可靠的 标签(Labels) 或者是 UUIDs(Universally Unique Identifiers) ,而不是类似于/dev/sda
的设备名称,这可以防止计算机系统新增硬盘后,/dev/sda
变成了/dev/sdb
而导致系统启动时内核无法找到。
GRUB 2 常用指令说明
下表列出了 GRUB 2 Boot Menu 中常用的指令说明,更详细信息可以参考 info grub
或者 info grub2
Command | Description | Examples |
---|---|---|
linux file ... |
从指定的文件中加载 Linux 内核镜像(Linux Kernel Image) 后面跟随的内容会被当作内核指令(Kernel Command)一字不差的传递给内核 |
linux /boot/vmlinuz-6.8.0-1016-aws root=PARTUUID=00c91e58-1b26-492f-a75f-c5159138dd1a ro console=tty1 console=ttyS0 |
initrd file [file ...] |
仅用于 linux 指令之后。为 Linux Kernel Image 按顺序加载 initial RAM Disks ,并在其中设置合适的参数 |
initrd /boot/microcode.cpio /boot/initrd.img-6.8.0-1016-aws |