searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

设置内核启动参数的正确方式

2023-09-27 08:57:25
97
0

当我们需要修改Linux内核启动参数时,很多同学喜欢直接修改/etc/grub2.cfg文件。这不是一个好的做法。原因是:一方面,我们升级内核后,需要将这个文件再改一遍,很不方便;另一方面,这样容易出错,导致内核启动失败。

 

实际上,Linux已经为我们准备了一系列工具来安全方便地修改内核参数。以下以添加预留大页内存为例,说明如何使用这些工具来修改Linux内核启动参数。

 

工具

grub2-mkconfig

grub2-set-default

如果您的系统中找不到上述工具,可以使用如下命令安装:

sudo yum install grub2 -y

修改内核参数默认配置文件

内核配置文件位于:/etc/default/grub , 其内容大致如下:

GRUB_TIMEOUT=5

GRUB_DISTRIBUTOR="$(sed 's, release .*$,,g' /etc/system-release)"

GRUB_DEFAULT=saved

GRUB_DISABLE_SUBMENU=true

GRUB_TERMINAL_OUTPUT="console"

#GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swaa

p rhgb quiet console=tty0,115200n8"

GRUB_CMDLINE_LINUX="crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swapp

 rhgb quiet console=ttyS0 default_hugepagesz=1G hugepagesz=1G hugepages=2"

GRUB_DISABLE_RECOVERY="true"

若想了解其中参数的具体含义,可以执行:

info -f grub2 -n 'Simple configuration'

这里不再一一解释。

 

若要实现本文前面实现的“预留大页内存”的目标,需要在 GRUB_CMDLINE_LINUX 后面添加 “default_hugepagesz=1G hugepagesz=1G hugepages=2”

添加好后,保存退出。

 

生成grub配置文件

Grub配置文件位于: /boot/grub2/grub.cfg。   为了避免原文件丢失,可以先做备份:

cp /boot/grub2/grub.cfg /boot/grub2/grub.cfg.bak

 

如果有多个内核,想顺便指定默认启动的内核版本的话,可以先使用这个命令查看内核列表:、

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

 

在作者的计算机上,得到如下输出:

0 : CentOS Linux (4.18.20) 7 (Core)

1 : CentOS Linux (3.10.0-1160.71.1.el7.x86_64) 7 (Core)

2 : CentOS Linux (0-rescue-bdfa1d9689cc40789eba2411fb530bc8) 7 (Core)

 

记住你要默认启动的内核的编号,然后使用如下命令调整启动顺序。例如我想使用4.18内核,则执行

grub2-set-default 0

 

然后生成grub配置文件:

grub2-mkconfig -o /boot/grub2/grub.cfg

 

配置生效

重启计算机即可。

 

0条评论
0 / 1000
李****一
10文章数
2粉丝数
李****一
10 文章 | 2 粉丝