grubby命令详解
创始人
2024-02-17 18:24:37
0

grubby

概要

grubby - 用于配置grub,lilo和elilo的命令行工具。grubby是一个命令行工具,用于更新和显示关于各种特定于体系结构的引导加载程序的配置文件的信息。它主要用于安装新内核并需要查找有关当前引导环境的信息的脚本。

语法:

grubby [--add-kernel = kernel-path ] [--args = args ] 
[--bad-image-okay] [--boot-filesystem = bootfs ] 
[--bootloader-probe] [--config-file 路径 ] 
[--copy-default] [--default-kernel] 
[--grub] [--lilo] [--yaboot] [--silo] [--zipl] 
[--info = kernel-path ] [--initrd = initrd-path ] 
[--make-default] [-o path] [--version] 
[--remove-kernel = kernel-path ] [--remove-args = args ] 
[--set -default = kernel-path ] [--title = entry-title] 
[--add-multiboot = multiboot-path ] [--mbargs = args ] 
[--remove-multiboot = multiboot-path ] [--remove-mbargs = args ]

描述

基于bios的Intel x86平台,默认的引导加载程序为grub2,配置文件在“/boot/grub2/grub.cfg”路径下。基于uefi的Intel x86平台默认的引导加载程序为grub2,配置文件路径为/boot/efi/efi/redhat/grub.cfg。在PowerPC平台上,基于Power8和Power9的系统支持grub2作为引导加载程序,并使用存储在/boot/grub2/grub.cfg中的配置。在s390x平台上,zipl引导加载程序使用/etc/zipl.conf中的默认配置。

在Intel x86平台上,grub是默认引导加载程序,配置文件位于/boot/grub/grub.conf中。在Intel ia64平台上,使用 elilo模式,配置文件的默认位置是/boot/grub/grub.conf。在PowerPC平台上,使用yaboot分析,配置文件应该位于/etc/yaboot.conf中。

所有引导加载程序都将引导项定义为单独的配置片段,这些配置片段默认存储在/boot/loader/entries中。配置文件的格式在https://systemd.io/BOOT_LOADER_SPECIFICATION上指定。这个肮脏的工具用于更新和显示BootLoaderSpec片段文件中定义的配置。
有许多方法可以指定用于--info、--remove-kernel和--update-kernel的内核。指定DEFAULT或ALL分别选择默认条目和所有条目。另外,引导项的标题可以通过使用TITLE=Ititle作为参数来指定;使用带有该标题的所有条目。

默认的引导加载器目标主要由构建grubby的体系结构决定。每个体系结构都有一个首选的引导加载程序,并且每个引导加载程序都有自己的配置文件。如果在命令行上没有选择引导加载程序,那么grubby将使用这些默认设置来搜索现有配置。如果没有找到引导加载程序配置文件,则grubby将使用该体系结构的默认值。这些默认值在下表中列出。

arch

bootloader

configuration file

x86_64 [BIOS]

grub2

/boot/grub2/grub.cfg

x86_64 [UEFI]

grub2

boot/efi/EFI/redhat/grub.cfg

 i386

grub2

/boot/grub2/grub.cfg

ia64

elilo

/boot/efi/EFI/redhat/elilo.conf

ppc [>=Power8]

grub2

/boot/grub2/grub.cfg

ppc [<=Power7]

yaboot

/etc/yaboot.conf

s390

 zipl

/etc/zipl.conf

s390x

 zipl

/etc/zipl.conf

OPTIONS

标签

描述

--add-kernel=kernel-path

为位于kernel-path的内核添加一个新的启动项。

--args=kernel-args

当添加一个新内核时,它指定了默认应该传递给内核的命令行参数(注意,如果使用--copy-default,它们将与模板中的参数合并)。当使用--update-kernel时,它指定了新的参数添加到参数列表。可以使用多个空格分隔的参数。如果参数已经存在,则新值将替换旧值。如果配置文件对指定根文件系统有特殊的处理(如lilo.conf那样),则 root = kernel参数会得到特殊处理。

--boot-filesystem = bootfs

grub引导加载程序希望配置路径中列出的文件路径相对于它们所在文件系统的顶部,而不是相对于当前根文件系统。默认情况下,grubby会搜索当前挂载的文件系统列表来确定这一点。如果给出了这个选项,grubby的行为就像指定的文件系统是包含内核的文件系统一样(这个选项主要是为测试而设计的)。

--bootloader-probe

grubby会尝试确定当前是否安装了grub或lilo。当找到其中一个引导加载程序时,该引导加载程序的名称将显示在stdout上。两者都可以安装(在不同的设备上),grubby会打印出两个引导程序的名称,每行一个。grub探针需要一个注释掉的引导指令grub.conf, 与lilo配置文件中的标准指令相同。如果不存在,grubby会假定grub没有安装(请注意,anaconda将该指令放置在它创建的grub.conf文件中)。该选项仅适用于x86 BIOS平台。

--bad-image-okay

当grubby正在寻找一个用于某些东西(例如模板或默认启动项)的条目时,它会使用完整性检查(例如确保内核存在于文件系统中)来确保条目显然不起作用, t选中。此选项会覆盖该行为,主要用于测试。

--config-file=path

使用路径作为配置文件,而不是默认值。

--config-default

grubby会从当前的默认内核拷贝尽可能多的信息(如内核参数和根设备)。内核路径和initrd路径将永远不会被复制。

--default-kernel

显示当前默认内核的完整路径并退出。

--default-index

显示当前默认引导项的索引值并退出

--default-title

显示当前默认引导项的标题并退出

--env=path

使用path作为grub2环境块文件,而不是默认路径。

--grub2

 Configure grub2 bootloader.

--grub

使用grub样式的配置文件而不是lilo样式。这是ia32平台的默认设置。

--info=kernel-path

显示与内核路径匹配的所有引导项的信息。如果kernel-path为DEFAULT,则显示默认内核的信息。如果kernel-path为ALL,则显示所有引导项的信息。

--initrd=initrd-path

使用initrd-path作为添加的新内核的初始ram磁盘的路径。

--extrainitrd=initrd-path

使用initrd-path作为要添加到引导项中的辅助初始ram磁盘映像的路径。

--make-default

将添加的新内核条目设置为默认条目。

--remove-args=kernel-args

kernel-args指定的参数将从--update-kernel指定的内核中删除。对于支持独立根文件系统配置的配置文件,root参数得到特殊处理。

--remove-kernel=kernel-path

删除与内核路径匹配的所有启动项。这可能会与--add-kernel一起使用,在这种情况下,添加的新内核将永远不会被删除。

--set-default=kernel-path

引导指定内核的第一个条目将作为默认引导条目。

--set-default-index=entry-index

Makes the given entry number the default boot entry.

--title=entry-title

当添加一个新的内核条目时,entry-title将用作该条目的标题。

--update-kernel=kernel-path

更新匹配kernel-path的内核条目。目前唯一可以更新的项是内核参数列表,它是通过--args和--remove-args选项修改的。
如果使用ALL参数,则/etc/default/grub中的变量GRUB_CMDLINE_LINUX将使用最新的内核参数列表进行更新,除非使用--no-etc-grub-update选项。

--zipl

使用zipl样式配置文件。

--bls-directory=path

使用path作为BootLoaderSpec配置文件的目录,而不是默认的/boot/loader/条目。

--no-etc-grub-update

当使用——update-kernel选项和ALL参数时,使grubby不更新/etc/default/grub中的GRUB_CMDLINE_LINUX变量。

--debug

Display extra debugging information for failures.

Multiboot Specification为引导加载程序和操作系统提供了一个genreic接口。它受GRUB引导加载程序的支持。

--add-multiboot = multiboot-path

为位于multiboot-path的multiboot内核添加一个新的启动项 。请注意,这通常伴随着 --add-kernel选项。

--remove-multiboot = multiboot-path

删除与多引导路径相匹配的所有引导条目。

--mbargs = multiboot-args

当添加一个新的多重引导内核时,它指定了默认应该传递给该内核的命令行参数。当使用--update-kernel时,它指定了新的参数添加到参数列表。可以使用多个空格分隔的参数。如果参数已经存在,则新值将替换旧值。

--remove-mbargs = multiboot-args

由multiboot-args指定的参数将从--update-kernel指定的内核中删除。

示例:

1、添加一个新的内核条目并从当前默认内核复制所有选项。这是大多数用户想要的行为。

grubby --add-kernel=new_kernel --title="entry_title" --initrd="new_initrd" --copy-default

2、Add a new kernel entry with custom arguments

grubby --add-kernel=new_kernel --title="entry_title" --initrd="new_initrd" --args=kernel_args

3、Remove all menu entries for a specified kernel.

grubby --remove-kernel=old_kernel

4、Target a single menu entry to remove without targetting other entries with the same kernel.

grubby --info=old_kernel

grubby --remove-kernel=menu_index

5、Update the arguments for all entries of a specific kernel. New arguments get added while existing arguments get updated values.

grubby --update-kernel=current_kernel --args="kernel_args"

6、Remove the arguments for a single entry of a specific kernel.

 grubby --info=current_kernel

 grubby --remove-args=menu_index --args="kernel_args"

待更新完成grub参数, 在ubuntu系统中没有grubby命令。desktop版本使用update-grub2或者grub2-mkconfig -o /boot/efi/EFI/ubuntu/grub.cfg或者/boot/grub/grub.cfg。

server版本使用grub2-mkconfig -o /boot/grub2/grub.cfg。

相关内容

热门资讯

虞书欣谈成名的代价令人心疼,如... 虞书欣谈成名的代价令人心疼,如今她在圈内的前景如何?虞书欣在圈内前景是很不错的,大家都很喜欢她,也有...
最有效的减肥食谱 最有效的减肥食谱谁有最有效的减肥食谱呢?麻烦给一个吧?急求最有效的减肥食谱,听说有一个什么汤的可以很...
关晓彤鹿晗被曝月底会分手,你对... 关晓彤鹿晗被曝月底会分手,你对于他们两个的爱情有什么看法?当初我也觉得他们俩的感情肯定不会长久的,但...
她曾在家中喂猪,却被张艺谋相中... 她曾在家中喂猪,却被张艺谋相中一夜成名,魏敏芝如今过得怎样?魏敏芝过得非常不错啊,而且当地的头衔也是...
电影《中邪》主要讲了什么? 电影《中邪》主要讲了什么?中邪的剧情简介 · · · · · ·大学生丁鑫和刘梦为拍摄农村风俗纪录片...
可以在营业厅查到短信的内容吗? 可以在营业厅查到短信的内容吗?查自己的短信==如果你是本人应该可以…不是本人是不可以的那是别人的隐私...
春日时雨时晴,杏花开时,小雨落... 春日时雨时晴,杏花开时,小雨落在身上,衣服欲湿未湿;杨柳风最柔,吹到脸上也下觉其寒。是什么诗句沾衣欲...
低学历的女人真的不能娶吗? 低学历的女人真的不能娶吗?我觉得不是的,娶妻子还是主要看对方的品性如何,而不是在意对方的学历。不一定...
电影配音问题 懂的进来 不是很... 电影配音问题 懂的进来 不是很难我想知道一个问题 比如说 一个电影 演员是 X 那他的说...可以是...
关于大蒜的谜语有哪些 关于大蒜的谜语有哪些有关蒜的谜语有:两二小,头长草 (打字一)谜底:蒜弟兄七八个,围着柱子坐,只要一...
怎么夸老师漂亮 怎么夸老师漂亮老师您长得太有气质了,非常出众,我身为一个女孩子都快要把持不住了。就直接一点说:老师你...
一般怎么钢琴即兴伴奏,一拿到简... 一般怎么钢琴即兴伴奏,一拿到简谱就能伴奏的和弦 天空之城简易般的可一参考 摸摸就出来的 弹一个音 ...
我对异地女友说,异地太苦了我真... 我对异地女友说,异地太苦了我真心问你,你和我一起内心快乐吗?她说,不管日子再苦,有你就是甜的?你一个...
为什么叫镇江 为什么叫镇江为什么叫镇江意义为"Garrison of the Yangtze River"
在足球历史上,阿贾克斯都获得过... 在足球历史上,阿贾克斯都获得过多少次欧冠?一共应该是获得过4次冠军,而且他真的是特别厉害,很少有人可...
时间简史是谁写的? 时间简史是谁写的?史蒂芬·威廉·霍金
我爱她,但她爱他。 我爱她,但她爱他。如果换了我是你!我会一直的爱着她!她爱着他,你又爱着他!她知道爱一个不爱自己人的资...
歌词:我是你的月亮,是你夜里的... 歌词:我是你的月亮,是你夜里的光芒。叫月光曲,嘿嘿
枪神纪里面的英文歌曲叫什么? 枪神纪里面的英文歌曲叫什么?枪神纪里面的英文歌曲叫什么?一首是男的一首是女的,女的那首好像有一句是,...
中外小朋友 大家手拉手 来自五... 中外小朋友 大家手拉手 来自五大洲 是什么歌名?中外小朋友 大家手拉手 来自五大洲 是什么歌名?《庆...