「GRUB」- 加载模块

问题描述

部分系统或者引导目录(/boot)安装在 LVM 分区中,需要配置 GRUB 识别 LVM 分区。

本文将介绍如何配置 GRUB 以支持 LVM 分区。

方法一、使用环境变量(推荐)

修改 /etc/default/grub 或者 /etc/default/grub.d/foo.cnf 的 GRUB_PRELOAD_MODULES 环境变量:

GRUB_PRELOAD_MODULES="lvm"

方法二、修改 grub.cfg 配置(反对)

强烈反对使用该方法调整 GRUB 配置,因为多数发行版使用 update-grub 配置 grub.cfg 文件。如果直接配置 grub.cfg 文件,可能会导致配置文件被覆盖(因为某些软件包的安装会执行 update-grub 命令)。

当然,我们仍有部分场景需要手动配置。配置示例如下,将 insmod 添加到 menuentry 内即可:

menuentry 'DEBIAN GNU/Linux' {
        load_video

        insmod gzio
        insmod part_gpt
        insmod lvm
        insmod ext2

        set root='lvmid/xxxxx/xxxxx'
        linux   /boot/vmlinuz root=/dev/mapper/os ro
        initrd  /boot/initrd.img
}