总结
可以使用 2 种方法修改 GRUB2 参数:
1.使用grubby工具。
2.修改/etc/default/grub文件,使用命令 grub2-mkconfig。
还要确保不要直接编辑文件 /boot/grub.cfg。
该文件使用 grubby 工具根据更改自动更新。
从 RHEL 7 开始,GRUB2 是默认的引导加载程序。
GRUB2 的配置和设置与 RHEL 6 及之前版本中使用的 GRUB 有很大不同。
grubby 命令行实用程序可用于对 /boot/grub.cfg 文件进行持久更改。
我们还可以修改 /etc/default/grub 文件并使用 grub2-mkconfig 来修改参数。
注意:不建议通过 vi 手动修改 /boot/grub.cfg
如何使用 grubby 修改 GRUB2 参数
- 使用 grubby 命令列出所有存在的内核条目。
# grubby --info=ALL index=0 kernel=/boot/vmlinuz-3.10.0-229.el7.x86_64 args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet LANG=en_US.UTF-8" root=/dev/mapper/vg_os-lv_root initrd=/boot/initramfs-3.10.0-229.el7.x86_64.img title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 3.10.0-229.el7.x86_64 index=1 kernel=/boot/vmlinuz-0-rescue-0c4400a0fc934267945bc23cb6c4440d args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet" root=/dev/mapper/vg_os-lv_root initrd=/boot/initramfs-0-rescue-0c4400a0fc934267945bc23cb6c4440d.img title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 0-rescue-0c4400a0fc934267945bc23cb6c4440d index=2 non linux entry
-update-kernel 选项可用于在与以下选项结合使用时更新菜单项:
-args : 添加新参数。
-remove-args :删除现有参数。
如何删除参数
让我们看一个从菜单项中删除参数的示例。
以下示例显示了如何删除“rhgb quiet”参数。
# grubby --remove-args "rhgb quiet" --update-kernel /boot/vmlinuz-3.10.0-229.el7.x86_64
列出所有内核条目并验证所做的更改。
我们会注意到内核 /boot/vmlinuz-3.10.0-229.el7.x86_64 的“rhgb 相当”参数已被删除。
# grubby --info=ALL index=0 kernel=/boot/vmlinuz-3.10.0-229.el7.x86_64 args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap LANG=en_US.UTF-8" root=/dev/mapper/vg_os-lv_root initrd=/boot/initramfs-3.10.0-229.el7.x86_64.img title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 3.10.0-229.el7.x86_64 index=1 kernel=/boot/vmlinuz-0-rescue-0c4400a0fc934267945bc23cb6c4440d args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet" root=/dev/mapper/vg_os-lv_root initrd=/boot/initramfs-0-rescue-0c4400a0fc934267945bc23cb6c4440d.img title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 0-rescue-0c4400a0fc934267945bc23cb6c4440d index=2 non linux entry
如何添加参数
让我们看一个向菜单项添加参数的示例。
让我们再次添加删除的参数“rhgb quiet”。
使用“-args”选项向 GRUB2 添加参数。
# grubby --args "rhgb quiet" --update-kernel /boot/vmlinuz-3.10.0-229.el7.x86_64
列出所有内核条目并验证所做的更改。
# grubby --info=ALL index=0 kernel=/boot/vmlinuz-3.10.0-229.el7.x86_64 args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap LANG=en_US.UTF-8 rhgb quiet" root=/dev/mapper/vg_os-lv_root initrd=/boot/initramfs-3.10.0-229.el7.x86_64.img title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 3.10.0-229.el7.x86_64 index=1 kernel=/boot/vmlinuz-0-rescue-0c4400a0fc934267945bc23cb6c4440d args="ro nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet" root=/dev/mapper/vg_os-lv_root initrd=/boot/initramfs-0-rescue-0c4400a0fc934267945bc23cb6c4440d.img title=Red Hat Enterprise Linux Server 7.1 (Maipo), with Linux 0-rescue-0c4400a0fc934267945bc23cb6c4440d index=2 non linux entry
修改 /etc/default/grub 中定义的参数
我们可能需要修改的另一个常见条目是 grub 菜单的超时时间,它定义在 /etc/default/grub.conf 中。
我们可以使用下面描述的方法来修改文件 /etc/default/grub 中定义的任何其他参数。
# cat /etc/default/grub GRUB_TIMEOUT=5 #### we have modified this from 5 seconds to 15 seconds GRUB_DEFAULT=saved GRUB_DISABLE_SUBMENU=true GRUB_TERMINAL_OUTPUT="console" GRUB_CMDLINE_LINUX="nomodeset crashkernel=auto rd.lvm.lv=vg_os/lv_root rd.lvm.lv=vg_os/lv_swap rhgb quiet" GRUB_DISABLE_RECOVERY="true"
我们可以编辑 /etc/default/grub 并修改为“GRUB_TIMEOUT=15”,然后使用 grub2-mkconfig 命令重建 grub.cfg。
# grub2-mkconfig -o /boot/grub2/grub.cfg