本文最后更新于:November 18, 2020 am
grubby是一个用于更新和显示有关各种体系结构特定的引导程序的配置文件信息的命令行工具。 它主要设计用于安装新内核并需要查找有关当前引导环境的信息的脚本,同时也可以对启动内核的各项信息参数进行修改。
本文主要介绍如何在centos8中使用grubby工具来对系统的内核启动参数和启动顺序进行调整。
使用yum或者dnf可以直接安装grubby工具。
$ yum install grubby Last metadata expiration check: 1:29:38 ago on Wed 18 Nov 2020 09:44:26 AM +08. Package grubby-8.40-38.el8.x86_64 is already installed. Dependencies resolved. Nothing to do . Complete!
查看当前的默认启动内核:
$ grubby --default-kernel /boot/vmlinuz-4.18.0-193.28.1.el8_2.x86_64
查看系统安装的全部内核:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 $ grubby --info=ALL index=0 kernel="/boot/vmlinuz-5.9.1-1.el8.elrepo.x86_64" args="ro crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet intel_iommu=on $tuned_params " root="/dev/mapper/cl-root" initrd="/boot/initramfs-5.9.1-1.el8.elrepo.x86_64.img $tuned_initrd " title="Red Hat Enterprise Linux (5.9.1-1.el8.elrepo.x86_64) 8.2 (Ootpa)" id ="12ab47b22fef4c02bcdc88b340d5f706-5.9.1-1.el8.elrepo.x86_64" index=1 kernel="/boot/vmlinuz-4.18.0-193.28.1.el8_2.x86_64" args="ro crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet intel_iommu=on $tuned_params " root="/dev/mapper/cl-root" initrd="/boot/initramfs-4.18.0-193.28.1.el8_2.x86_64.img $tuned_initrd " title="CentOS Linux (4.18.0-193.28.1.el8_2.x86_64) 8 (Core)" id ="12ab47b22fef4c02bcdc88b340d5f706-4.18.0-193.28.1.el8_2.x86_64" index=2 kernel="/boot/vmlinuz-4.18.0-193.19.1.el8_2.x86_64" args="ro crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet intel_iommu=on $tuned_params " root="/dev/mapper/cl-root" initrd="/boot/initramfs-4.18.0-193.19.1.el8_2.x86_64.img $tuned_initrd " title="CentOS Linux (4.18.0-193.19.1.el8_2.x86_64) 8 (Core)" id ="12ab47b22fef4c02bcdc88b340d5f706-4.18.0-193.19.1.el8_2.x86_64" index=3 kernel="/boot/vmlinuz-4.18.0-193.el8.x86_64" args="ro crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet intel_iommu=on $tuned_params " root="/dev/mapper/cl-root" initrd="/boot/initramfs-4.18.0-193.el8.x86_64.img $tuned_initrd " title="CentOS Linux (4.18.0-193.el8.x86_64) 8 (Core)" id ="12ab47b22fef4c02bcdc88b340d5f706-4.18.0-193.el8.x86_64" index=4 kernel="/boot/vmlinuz-0-rescue-12ab47b22fef4c02bcdc88b340d5f706" args="ro crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet intel_iommu=on" root="/dev/mapper/cl-root" initrd="/boot/initramfs-0-rescue-12ab47b22fef4c02bcdc88b340d5f706.img" title="CentOS Linux (0-rescue-12ab47b22fef4c02bcdc88b340d5f706) 8 (Core)" id ="12ab47b22fef4c02bcdc88b340d5f706-0-rescue"
设置新的默认启动内核:
$ grubby --set-default=/boot/vmlinuz-5.9.1-1.el8.elrepo.x86_64 The default is /boot/loader/entries/12ab47b22fef4c02bcdc88b340d5f706-5.9.1-1.el8.elrepo.x86_64.conf with index 0 and kernel /boot/vmlinuz-5.9.1-1.el8.elrepo.x86_64 $ grubby --default-kernel /boot/vmlinuz-5.9.1-1.el8.elrepo.x86_64 $ grubby --set-default-index=1 The default is /boot/loader/entries/12ab47b22fef4c02bcdc88b340d5f706-4.18.0-193.28.1.el8_2.x86_64.conf with index 1 and kernel /boot/vmlinuz-4.18.0-193.28.1.el8_2.x86_64 $ grubby --default-kernel /boot/vmlinuz-4.18.0-193.28.1.el8_2.x86_64
添加/删除内核启动参数:
$ grubby --update-kernel=ALL --remove-args=intel_iommu=on $ grubby --update-kernel=ALL --args=intel_iommu=on $ grubby --update-kernel=/boot/vmlinuz-5.9.1-1.el8.elrepo.x86_64 --args=intel_iommu=on
查看特定内核的具体信息:
$ grubby --info=/boot/vmlinuz-5.9.1-1.el8.elrepo.x86_64 index=0 kernel="/boot/vmlinuz-5.9.1-1.el8.elrepo.x86_64" args="ro crashkernel=auto resume=/dev/mapper/cl-swap rd.lvm.lv=cl/root rd.lvm.lv=cl/swap net.ifnames=0 rhgb quiet intel_iommu=on $tuned_params " root="/dev/mapper/cl-root" initrd="/boot/initramfs-5.9.1-1.el8.elrepo.x86_64.img $tuned_initrd " title="Red Hat Enterprise Linux (5.9.1-1.el8.elrepo.x86_64) 8.2 (Ootpa)" id ="12ab47b22fef4c02bcdc88b340d5f706-5.9.1-1.el8.elrepo.x86_64"