玟茵开源社区知识库

如果您有自己的想法或者金点子,请提交给我们或直接参与项目,在此欢迎各位,您的反馈是我们持续前进的动力。
  1. 首页
  2. 翻译文献
  3. 正文

使用 grubby 工具在 GRUB 中进行永久更改

2023年11月28日 745点热度 0人点赞 0条评论

文章目录[隐藏]

  • 7.1. 先决条件
  • 7.2. 列出默认的内核
  • 7.3. 查看内核的 GRUB 菜单条目
  • 7.4. 编辑内核参数
  • 7.5. 在 GRUB 菜单条目中添加和删除参数
  • 7.6. 添加一个新的引导条目
  • 7.7. 使用 grubby 更改默认引导条目
  • 7.8. 使用同样的参数更新所有内核菜单
  • 7.9. 为当前和将来的内核更改默认内核选项
  • 7.1. 先决条件

    • 您已在您的系统上成功安装了 RHEL。
    • 您有 root 权限。

    7.2. 列出默认的内核

    通过列出默认内核,您可以找到默认内核的文件名和索引号,以对 GRUB 引导装载程序进行永久更改。

    流程

    • 要找到默认内核的文件名,请输入:
    # grubby --default-kernel
    
    /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64
    • 要找到默认内核的索引号,请输入:
    # grubby --default-index
    
    0

    7.3. 查看内核的 GRUB 菜单条目

    您可以列出所有内核菜单条目,或者查看特定内核的 GRUB 菜单条目。

    流程

    • 要列出所有内核菜单条目,请输入:

      # grubby --info=ALL 
      index=0 kernel="/boot/vmlinuz-4.18.0-372.9.1.el8.x86_64" args="ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet $tuned_params zswap.enabled=1" root="/dev/mapper/rhel-root" initrd="/boot/initramfs-4.18.0-372.9.1.el8.x86_64.img $tuned_initrd" title="Red Hat Enterprise Linux (4.18.0-372.9.1.el8.x86_64) 8.6 (Ootpa)" id="67db13ba8cdb420794ef3ee0a8313205-4.18.0-372.9.1.el8.x86_64" index=1 kernel="/boot/vmlinuz-0-rescue-67db13ba8cdb420794ef3ee0a8313205" args="ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet" root="/dev/mapper/rhel-root" initrd="/boot/initramfs-0-rescue-67db13ba8cdb420794ef3ee0a8313205.img" title="Red Hat Enterprise Linux (0-rescue-67db13ba8cdb420794ef3ee0a8313205) 8.6 (Ootpa)" id="67db13ba8cdb420794ef3ee0a8313205-0-rescue"
    • 要查看特定内核的 GRUB 菜单条目,请输入:

      # grubby --info /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64 
      grubby --info /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64 index=0 kernel="/boot/vmlinuz-4.18.0-372.9.1.el8.x86_64" args="ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet $tuned_params zswap.enabled=1" root="/dev/mapper/rhel-root" initrd="/boot/initramfs-4.18.0-372.9.1.el8.x86_64.img $tuned_initrd" title="Red Hat Enterprise Linux (4.18.0-372.9.1.el8.x86_64) 8.6 (Ootpa)" id="67db13ba8cdb420794ef3ee0a8313205-4.18.0-372.9.1.el8.x86_64"
    注意  尝试 tab 补全来查看 /boot 目录中的可用内核。

    7.4. 编辑内核参数

    您可以更改现有内核参数中的值。例如,您可以更改虚拟控制台(屏幕)字体和大小。

    流程

    • 将虚拟控制台字体更改为 latarcyrheb-sun,大小为 32。

      # grubby --args=vconsole.font=latarcyrheb-sun32 --update-kernel /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64

    7.5. 在 GRUB 菜单条目中添加和删除参数

    您可以从 GRUB 菜单添加、删除或同时添加或删除参数。

    流程

    • 要向 GRUB 菜单条目中添加参数,请使用 --update-kernel 选项和 --args。例如,以下命令添加了一个串行控制台:

      # grubby --args=console=ttyS0,115200 --update-kernel /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64

      控制台参数附加到行尾,新控制台将优先于任何其他配置的控制台。

    • 要从 GRUB 菜单条目中删除参数,请使用 --update-kernel 选项和 --remove-args。例如:

      # grubby --remove-args="rhgb quiet" --update-kernel /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64

      这个命令会删除红帽图形引导参数,并启用日志消息,这是详细模式。

    • 要同时添加和删除参数,请输入:

      # grubby --remove-args="rhgb quiet" --args=console=ttyS0,115200 --update-kernel /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64

    验证步骤

    • 要查看您所做的永久更改,请输入:

      # grubby --info 
      /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64 index=0 kernel="/boot/vmlinuz-4.18.0-372.9.1.el8.x86_64" args="ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap $tuned_params zswap.enabled=1 console=ttyS0,115200" root="/dev/mapper/rhel-root" initrd="/boot/initramfs-4.18.0-372.9.1.el8.x86_64.img $tuned_initrd" title="Red Hat Enterprise Linux (4.18.0-372.9.1.el8.x86_64) 8.6 (Ootpa)" id="67db13ba8cdb420794ef3ee0a8313205-4.18.0-372.9.1.el8.x86_64"

       

    7.6. 添加一个新的引导条目

    您可以向引导装载程序菜单条目中添加一个新的引导条目。

    流程

    1. 将来自默认内核的所有内核参数复制到这个新的内核条目。

      # grubby --add-kernel=new_kernel --title="entry_title" --initrd="new_initrd" --copy-default
    2. 获取可用的引导条目的列表。

      # ls -l /boot/loader/entries/*
      -rw-r--r--. 1 root root 408 May 27 06:18 /boot/loader/entries/67db13ba8cdb420794ef3ee0a8313205-0-rescue.conf
      -rw-r--r--. 1 root root 536 Jun 30 07:53 /boot/loader/entries/67db13ba8cdb420794ef3ee0a8313205-4.18.0-372.9.1.el8.x86_64.conf
      -rw-r--r--  1 root root 336 Aug 15 15:12 /boot/loader/entries/d88fa2c7ff574ae782ec8c4288de4e85-4.18.0-193.el8.x86_64.conf

       

      创建一个新的引导条目。例如,对于 4.18.0-193.el8.x86_64 内核,请按如下所示运行命令:
    3. # grubby --grub2 --add-kernel=/boot/vmlinuz-4.18.0-193.el8.x86_64 --title="Red Hat Enterprise 8 Test" --initrd=/boot/initramfs-4.18.0-193.el8.x86_64.img --copy-default

    验证

    • 验证新添加的引导条目是否已列在可用的引导条目中。

      # ls -l /boot/loader/entries/* -rw-r--r--. 1 root root 408 May 27 06:18 /boot/loader/entries/67db13ba8cdb420794ef3ee0a8313205-0-rescue.conf -rw-r--r--. 1 root root 536 Jun 30 07:53 /boot/loader/entries/67db13ba8cdb420794ef3ee0a8313205-4.18.0-372.9.1.el8.x86_64.conf -rw-r--r-- 1 root root 287 Aug 16 15:17 /boot/loader/entries/d88fa2c7ff574ae782ec8c4288de4e85-4.18.0-193.el8.x86_64.0~custom.conf -rw-r--r-- 1 root root 287 Aug 16 15:29 /boot/loader/entries/d88fa2c7ff574ae782ec8c4288de4e85-4.18.0-193.el8.x86_64.conf

    7.7. 使用 grubby 更改默认引导条目

    使用 grubby 工具,您可以更改默认引导条目。

    流程

    • 要在指定为默认内核的内核中进行持久更改,请输入:
    # grubby --set-default /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64 
    The default is /boot/loader/entries/67db13ba8cdb420794ef3ee0a8313205-4.18.0-372.9.1.el8.x86_64.conf with index 0 and kernel /boot/vmlinuz-4.18.0-372.9.1.el8.x86_64

    7.8. 使用同样的参数更新所有内核菜单

    您可以向所有内核菜单条目中添加相同的内核引导参数。

    流程

    • 要向所有内核菜单条目中添加相同的内核引导参数,请附加 --update-kernel=ALL 参数。例如,这个命令向所有内核添加一个串行控制台:

      # grubby --update-kernel=ALL --args=console=ttyS0,115200
      注意--update-kernel 参数还接受 DEFAULT 或以逗号分隔的内核索引号列表。

       

    7.9. 为当前和将来的内核更改默认内核选项

    通过使用 kernelopts 变量,您可以更改当前和将来的内核的默认内核选项。

    流程

    1. 列出 kernelopts 变量中的内核参数:

      # grub2-editenv - list | grep kernelopts 
      kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet
    2. 对内核命令行参数进行更改。您可以添加、删除或修改参数。例如,要添加 debug 参数,请输入:

      # grub2-editenv - set "$(grub2-editenv - list | grep kernelopts) <debug>"
    3. 可选 :验证新添加的参数是否已添加到 kernelopts 中:

      # grub2-editenv - list | grep kernelopts
      kernelopts=root=/dev/mapper/rhel-root ro crashkernel=auto resume=/dev/mapper/rhel-swap rd.lvm.lv=rhel/root rd.lvm.lv=rhel/swap rhgb quiet debug
      重启系统以使更改生效。
    注意 另外,您可以使用 grubby 命令将参数传递给当前和将来的内核:
    # grubby --update-kernel ALL --args="<PARAMETER>"
    
    
    https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/8/html/managing_monitoring_and_updating_the_kernel/assembly_making-persistent-changes-to-the-grub-boot-loader_managing-monitoring-and-updating-the-kernel
    
    本作品采用 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议 进行许可
    标签: grub grubby kernel
    最后更新:2024年4月3日

    WenYinOS

    这个人很懒,什么都没留下

    点赞
    < 上一篇
    下一篇 >

    文章评论

    razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
    取消回复

    这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理。

    COPYLEFT © 2023 玟茵开源社区知识库. ALL RIGHTS RESERVED.

    Theme Kratos Made By Seaton Jiang