26.4. 使用 grubby 工具对 GRUB 2 菜单进行持久更改
grubby
工具可用于从 grub.cfg
文件读取信息,并对该文件进行永久性更改。例如,它启用更改 GRUB 2 菜单条目以指定要在系统启动时传递给内核并更改默认内核的参数。
在 Red Hat Enterprise Linux 7 中,如果手动调用 grubby
而无需指定 GRUB 2 配置文件,则默认搜索 /etc/grub2.cfg
,这是指向 grub.cfg
文件的符号链接,该文件的位置取决于架构。如果找不到该文件,它将搜索依赖于默认架构的架构。
列出默认内核
要找出默认内核的文件名,请按如下所示输入命令:
~]# grubby --default-kernel /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
要找出默认内核的索引号,请按如下所示输入命令:
~]# grubby --default-index 0
更改默认引导条目
要在指定为默认内核的内核中进行持久更改,请使用 grubby
命令,如下所示:
~]# grubby --set-default /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
查看内核的 GRUB 2 菜单条目
要列出所有内核菜单条目,请按如下所示输入命令:
~]$ grubby --info=ALL
在 UEFI 系统中,所有 grubby
命令必须以 root
身份输入。
要查看特定内核的 GRUB 2 菜单条目,请输入以下命令:
~]$ grubby --info /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64 index=0 kernel=/boot/vmlinuz-3.10.0-229.4.2.el7.x86_64 args="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" root=/dev/mapper/rhel-root initrd=/boot/initramfs-3.10.0-229.4.2.el7.x86_64.img title=Red Hat Enterprise Linux Server (3.10.0-229.4.2.el7.x86_64) 7.0 (Maipo)
尝试 Tab 补全以查看 /boot/
目录中的可用内核。
从 GRUB 2 菜单条目中添加和删除参数
当与 --
选项更新菜单条目,以添加新参数和 args 结合使用时,可以使用 --
update-kernel--remove-arguments
以删除现有参数。这些选项接受带引号的空格分隔列表。从 GRUB 2 菜单条目同时添加和删除参数的命令具有以下格式:
grubby --remove-args="argX argY" --args="argA argB" --update-kernel /boot/kernel
要从内核的 GRUB 2 菜单条目中添加和删除参数,请使用以下命令:
~]# grubby --remove-args="rhgb quiet" --args=console=ttyS0,115200 --update-kernel /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
该命令将删除 Red Hat 图形引导参数,启用看到引导消息,并添加串行控制台。由于控制台参数将在行末尾添加,因此新控制台的优先级将高于配置的任何其他控制台。
要查看更改,请使用 --info
命令选项,如下所示:
~]# grubby --info /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
index=0
kernel=/boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
args="ro rd.lvm.lv=rhel/root crashkernel=auto rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun16 vconsole.keymap=us LANG=en_US.UTF-8 ttyS0,115200"
root=/dev/mapper/rhel-root
initrd=/boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
title=Red Hat Enterprise Linux Server (3.10.0-229.4.2.el7.x86_64) 7.0 (Maipo)
使用相同参数更新所有内核菜单
要在所有内核菜单条目中添加相同的内核引导参数,请输入以下命令:
~]# grubby --update-kernel=ALL --args=console=ttyS0,115200
--update-kernel
参数还接受 DEFAULT 或以逗号分隔的内核索引号列表。
更改内核参数
要更改现有内核参数中的值,请再次指定 参数,根据需要更改值。例如,要更改虚拟控制台字体大小,使用以下命令:
~]# grubby --args=vconsole.font=latarcyrheb-sun32 --update-kernel /boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
index=0
kernel=/boot/vmlinuz-3.10.0-229.4.2.el7.x86_64
args="ro rd.lvm.lv=rhel/root crashkernel=auto rd.lvm.lv=rhel/swap vconsole.font=latarcyrheb-sun32 vconsole.keymap=us LANG=en_US.UTF-8"
root=/dev/mapper/rhel-root
initrd=/boot/initramfs-3.10.0-229.4.2.el7.x86_64.img
title=Red Hat Enterprise Linux Server (3.10.0-229.4.2.el7.x86_64) 7.0 (Maipo)
有关更多命令选项,请参阅 grubby(8)手册页
。