在Fedora 39+、RHEL 9、AlmaLinux 9、Rocky Linux 9和CentOS Stream 9 Linux发行版上,您可以使用grubby程序管理GRUB引导条目。
在本文中,我们将向您展示如何使用GRUBY在Fedora、RHEL、AlmaLinux、Rocky Linux和CentOS Stream上的GRUB引导项中添加/删除内核引导参数。我们还将向您展示如何在Fedora、RHEL、AlmaLinux、Rocky Linux和CentOS Stream上使用GRUBY添加/删除定制的GRUB引导条目,并将特定的GRUB引导条目设置为默认条目。
内容主题:
- Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上的所有GRUBboot
- 在Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上显示特定的GRUB引导项
- 将新的内核引导参数/参数添加到Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上的所有GRUB引导条目
- 在Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流上将新的内核引导参数/参数添加到特定的GRUB引导条目
- 从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流上的所有GRUBBoot NTFS中删除内核引导参数/参数
- 从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上的特定GRUB引导项中删除内核引导参数/参数
- 在Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上添加带有自定义内核参数/参数的GRUB引导项
- 将GRUB引导项设置为Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上的默认项
- 从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流中删除一个GRUB引导条目
- 结论
Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上的所有GRUBboot
要列出Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流系统的所有GRUB引导项,请按如下方式运行grubby:
$sudo grubby——info = ALL
如您所见,列出了CentOS Stream 9系统的所有GRUB引导条目(X2)。
每个引导条目都有:
- 索引号
- 完整的内核路径
- 内核引导参数也称为内核参数
- 根文件系统的完整路径
- “initrd”文件的完整路径
- GRUB引导条目的标题
- 此引导条目的配置文件的ID(可在“/ot/loader/entry/”目录中找到)
在Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上显示特定的GRUB引导项
您可以在Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream系统上使用GRUBY显示特定GRUB引导条目的信息。
若要显示默认GRUB引导项的信息,请运行以下命令:
$sudo grubby——info =默认
应该会显示默认的GRUB引导条目。
您还可以在特定索引处显示关于GRUB引导项的信息。索引号从0开始。
若要显示第一个GRUB引导项(索引0处)的信息,请运行以下命令:
$sudo grubby——info = 0
同样,您可以使用以下命令显示第二个GRUB引导条目(索引1处)的信息,依此类推:
$sudo grubby——info = 1
将新的内核引导参数/参数添加到Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上的所有GRUB引导条目
要在Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream系统的所有GRUB引导条目中添加一个内核引导参数/参数(比如"nomodeset"),请运行以下命令:
$sudo gRUBY--UPDATE-KERNEL=all--args=‘noodeset’
要向Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream系统的所有GRUB引导条目添加多个内核引导参数/参数(例如,“onomodeset”和“nouveau.Blacklist=1”),请使用空格分隔内核引导参数/参数,如下所示:
$sudo grubby——update—core = ALL——args ='nomodeset nouveau. blacklist = 1 '
如您所见,内核引导参数/参数"nomodeset"和"nouveau.blacklist = 1"被添加到所有的GRUB引导项中。
$sudo grubby——info = ALL
在Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流上将新的内核引导参数/参数添加到特定的GRUB引导条目
要向Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream系统的默认GRUB引导项添加内核引导参数/变元(比如“selinux=0”),请运行以下命令:
$sudo grubby——update—core =默认——args ='selinux = 0 '
要将多个内核引导参数/参数(例如"selinux = 0"和"ipv6.disable = 1")添加到Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流系统的默认GRUB引导项中,请使用空格分隔内核引导参数/参数,如下所示:
$sudo gRUBY--UPDATE-KERNEL=DEFAULT--args=‘selinux=0 ipv6.able=1’
同样,您可以将内核引导参数/参数添加到特定索引(例如索引0)的GRUB引导条目,如下所示:
$sudo grubby——update—core = 0——args ='selinux = 0 ipv6.disable = 1 '
正如您所看到的,内核引导参数/参数"selinux = 0"和"ipv6.disable = 1"只添加到默认(索引0)的GRUB引导项中。
$sudo grubby——info = ALL
从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流上的所有GRUBBoot NTFS中删除内核引导参数/参数
要从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流系统的所有GRUB引导条目中删除内核引导参数/参数(比如"nomodeset"),请运行以下命令:
$sudo grubby——update—core = ALL——remove—args ='nomodeset '
要从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream系统的所有GRUB引导条目中删除多个内核引导参数/参数(例如“onomodeset”和“nouveau.Blacklist=1”),请使用空格分隔内核引导参数/参数,如下所示:
$sudo grubby——update—core = ALL——remove—args ='nomodeset nouveau. blacklist = 1 '
正如您所看到的,内核引导参数/参数"nomodeset"和"nouveau.blacklist = 1"从所有的GRUB引导条目中删除。
$sudo grubby——info = ALL
从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上的特定GRUB引导项中删除内核引导参数/参数
要从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流系统的默认GRUB引导项中删除内核引导参数/参数(假设"selinux = 0"),请运行以下命令:
$sudo grubby——update—core = Default——remove—args ='selinux = 0 '
要从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流系统的默认GRUB引导条目中删除多个内核引导参数/参数(例如"selinux = 0"和"ipv6.disable = 1"),请使用空格分隔内核引导参数/参数,如下所示:
$sudo grubby——update—core =默认——remove—args ='selinux = 0 ipv6.disable = 1 '
同样,您可以从特定索引处(例如索引0)的GRUB引导项中删除内核引导参数/参数,如下所示:
$sudo grubby——update—core = 0——remove—args ='selinux = 0 ipv6.disable = 1 '
如您所见,内核引导参数/参数“selinux=0”和“ipv6.able=1”仅从默认的(索引0)GRUB引导条目中删除。
$sudo grubby——info =默认
在Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上添加带有自定义内核参数/参数的GRUB引导项
有时,最好创建默认的GRUB引导条目的副本,并修改复制的GRUB引导条目上的内核参数/参数,而不是破坏出厂默认的GRUB引导条目。
要创建默认的GRUB引导项的副本,您需要知道默认的GRUB引导项的完整内核路径和"initrd"路径。
若要查找完整的内核路径和默认GRUB引导项的"initrd"路径,请运行以下命令:
$sudo grubby——info =默认
应该显示默认的GRUB引导条目的完整内核路径[1]和"initrd"路径[2]。请注意这些信息。
若要使用在前面命令的输出中找到的内核路径和"initrd"路径创建默认GRUB引导项的副本,请运行以下命令:
$sudo grubby——copy—default
——add—core ="/boot/vmlinuz—5.14.0—391.el9.x86_64"
——initrd ="/boot/initramfs—5.14.0—391.el9.x86_64.img $tuned_initrd"
——title ="$(cat/etc/redhat—release)—禁用SELinux—$(uname—r)"
注意:请确保将内核路径和“initrd”路径分别替换为“-add-core=”和“-initrd=”部分中的路径。此外,在“-title=”部分中为GRUB引导条目使用描述性标题。
注:在"—title"中,"$(cat/etc/redhat—release)"被替换为操作系统和版本名称(即CentOS Stream 9),"$(uname—r)"被替换为当前使用的Linux内核的版本号(即5.14.0—391.el9.x86_64)。
应该创建一个新的GRUB引导条目。
如您所见,在索引0 [2]处创建了一个新的GRUB引导条目[1]。
$sudo grubby——info = ALL
您可以使用grubby "—args"选项添加新的内核参数/参数,并使用"—remove—args"选项从新创建的GRUB引导条目(索引0处)移除内核参数/参数。
例如,要添加"selinux = 0"内核参数/参数,并从新创建的GRUB引导项(索引0处)中删除"quiet"内核参数/参数,请按如下方式运行grubby命令:
$sudo grubby——update—core = 0——args ="selinux = 0"——remove—args ="安静"
正如您所看到的,"selinux = 0"内核参数/参数被添加,"quiet"内核参数/参数被从新创建的GRUB引导条目(索引0处)中删除。
$sudo grubby——info = 0
将GRUB引导项设置为Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream上的默认项
创建自定义GRUB引导条目后,您可能希望将其设置为计算机/服务器的默认GRUB引导条目,以便您的计算机/服务器在默认情况下使用它进行引导。
您可以使用以下命令找到默认的GRUB引导条目的索引:
$sudo grubby——default—index
如您所见,默认索引为1。
我们添加的自定义GRUB引导项的索引为0。
若要将自定义GRUB引导项设置为默认值,请运行以下命令:
$sudo gRubby--set-default-index=0
索引0处的GRUB引导条目应设置为默认引导条目。
正如您所看到的,自定义的GRUB引导项被设置为默认引导项。
自定义的GRUB引导项是从GRUB引导加载程序中自动选择的。
如您所见,定制GRUB引导条目包含我们配置的所有定制内核参数/参数。
从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS流中删除一个GRUB引导条目
您也可以使用GRUBY从Fedora/RHEL/AlmaLinux/Rocky Linux/CentOS Stream系统中删除GRUB引导项。
我们在索引0 [1]处创建了一个新的GRUBboot entry [1],以演示使用grubby移除GRUBboot entry的过程。
若要删除索引0处的GRUB引导项,请运行以下命令:
$sudo grubby——remove—core = 0
如您所见,删除了GRUB引导项,并重新调整了索引。
结论
在本文中,我们向您展示了如何使用grubby列出GRUB引导项。我们还向您展示了如何使用grubby将内核引导参数/参数添加到GRUB引导项中,以及如何使用grubby从GRUB引导项中移除内核引导参数/参数。我们还向您展示了如何使用grubby添加/删除自定义的GRUB引导项。最后,我们向您展示了如何使用grubby将一个GRUB引导项设置为默认值。本文中展示的过程应该适用于Fedora、RHEL、AlmaLinux、Rocky Linux和CentOS Stream操作系统。