grub2.cfg中修改内核引导选项的正确方法是什么?

What is the correct method to modify kernel boot option in grub2.cfg?

RHEL 7 附带的内核是 3.10,然后我成功构建并安装了 4.2.0。但是我在/etc/grub2.cfg中发现内核启动选项缺少我想要的:intel_iommu,所以我在/etc/grub2.cfg中手动添加“intel_iommu=on”:

menuentry ...{
        ......
        linux16 /vmlinuz-4.2.0-rc8+ root=/dev/mapper/rhel-root ro rd.lvm.lv=rhel/root crashkernel=auto  rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us rhgb quiet LANG=en_US.UTF-8 intel_iommu=on
        ......
}

然后重启内核,从dmesg输出:

[root@localhost /]# dmesg | grep DMAR
[    0.000000] DMAR: IOMMU enabled

我可以看到“intel_iommu=on”生效了。

我只是想知道在 grub2.cfg 中修改内核引导选项的正确方法是什么。添加选项是否需要手动修改grub2.cfg

编辑grub.conf 文件应该没问题。如果您不喜欢使用命令行编辑 grub,您可以使用 grub customizer (http://ubuntuforums.org/showthread.php?t=1664134)

经过调查,我找到了答案:

(1) 根据需要修改/etc/grub.d目录或/etc/default/grub文件中的文件;
(2) 使用grub2-mkconfig -o /boot/grub2/grub.cfg命令生成新的配置文件。

例如添加“intel_iommu=on”:
(1) 在/etc/default/grub文件中添加“intel_iommu=on”;
(2) 执行grub2-mkconfig -o /boot/grub2/grub.cfg

然后生效!