8.64. GRUB-2.12

GRUB 软件包包含 “大统一” (GRand Unified) 启动引导器。

估计构建时间: 0.3 SBU
需要硬盘空间: 166 MB

8.64.1. 安装 GRUB

[注意]

注意

在 LoongArch 系统上,以下命令为 UEFI 构建 GRUB。但由于 LFS 不包含 FreeType 软件包和 Unifont 数据文件,GRUB 不会安装用于引导器的字体,导致 GRUB 引导目录使用较为粗糙的字体,或只占据整个屏幕中较小的一部分区域。如果您希望解决这一问题,在 LFS 系统构建完成后,安装 FreeType,然后按照 BLFS 中的说明 补充安装这里未安装的 GRUB 组件,但要移除 --target=x86_64 选项并跳过安装 /usr/lib/grub/x86_64-efi 目录的命令。

如果您的系统固件不支持 UEFI,您需要跳过该软件包,自行尝试找出引导系统的方法。

[警告]

警告

移除所有可能影响构建的环境变量:

unset {C,CPP,CXX,LD}FLAGS

不要尝试使用自定义的编译选项优化该软件包。该软件包是一个引导加载器,其源代码中的低级操作可能被一些激进的优化所破坏。

补充源码包发布时缺失的一个文件:

echo depends bli part_gpt > grub-core/extra_deps.lst

准备编译 GRUB:

./configure --prefix=/usr          \
            --sysconfdir=/etc      \
            --disable-efiemu       \
            --disable-werror

新的配置选项的含义:

--disable-werror

该选项允许在有较新的 Flex 版本导致的警告时完成构建。

--disable-efiemu

该选项通过禁用 LFS 不需要的特性和测试程序,最小化需要构建的内容。

编译该软件包:

make

不推荐运行该软件包的测试套件。许多测试依赖于在 LFS 的有限环境中不存在的软件包。如果一定要进行测试,运行 make check

安装该软件包:

make install
mv -v /etc/bash_completion.d/grub /usr/share/bash-completion/completions

使用 GRUB 引导您的 LFS 系统的方法将在第 10.4 节 “使用 GRUB 设定引导过程”中讨论。

8.64.2. GRUB 的内容

安装的程序: grub-bios-setup, grub-editenv, grub-file, grub-fstest, grub-glue-efi, grub-install, grub-kbdcomp, grub-macbless, grub-menulst2cfg, grub-mkconfig, grub-mkimage, grub-mklayout, grub-mknetdir, grub-mkpasswd-pbkdf2, grub-mkrelpath, grub-mkrescue, grub-mkstandalone, grub-ofpathname, grub-probe, grub-reboot, grub-render-label, grub-script-check, grub-set-default, grub-sparc64-setup, 以及 grub-syslinux2cfg
安装的目录: /usr/lib/grub, /etc/grub.d, /usr/share/grub, 以及 /boot/grub (在初次运行 grub-install 时安装)

简要描述

grub-bios-setup

是 grub-install 使用的辅助程序

grub-editenv

是一个用于编辑环境块的工具

grub-file

检验文件是否是给定类型

grub-fstest

是一个调试文件系统驱动程序的工具

grub-glue-efi

将 32 位和 64 位二进制文件结合成一个文件 (以便在 Apple 生产的机器使用)。

grub-install

在您的驱动器上安装 GRUB

grub-kbdcomp

是一个脚本,用于将 xkb 布局转化为 GRUB 能够识别的格式

grub-macbless

是 Mac 风格的,用于 HFS 和 HFS+ 文件系统的 bless 程序 (bless 仅用于 Apple 生产的机器;它能将设备变得可引导)

grub-menulst2cfg

将经典的 GRUB menu.lst 转化为 grub.cfg 以供 GRUB 2 使用

grub-mkconfig

生成一个 grub.cfg 文件

grub-mkimage

创建 GRUB 可引导镜像

grub-mklayout

生成 GRUB 键盘布局文件

grub-mknetdir

准备 GRUB 网络启动目录

grub-mkpasswd-pbkdf2

生成用于引导菜单的加密 PBKDF2 密码

grub-mkrelpath

生成相对于根目录的系统路径名称

grub-mkrescue

为软盘,CDROM/DVD,或 USB 设备创建 GRUB 可引导镜像

grub-mkstandalone

生成独立 (包含所有模块) 的镜像

grub-ofpathname

打印 GRUB 设备路径的帮助程序

grub-probe

探测给定路径或设备的信息

grub-reboot

仅为下次启动设置 GRUB 默认引导项

grub-render-label

为 Apple Mac 设置 Apple .disk_label

grub-script-check

在 GRUB 配置脚本中检查语法错误

grub-set-default

设置 GRUB 默认引导项

grub-sparc64-setup

grub-setup 使用的帮助程序

grub-syslinux2cfg

将 syslinux 配置文件转换为 grub.cfg 格式