文档中心>实践教程>云服务器>如何在 Linux 上通过 GRUB 添加内核参数

如何在 Linux 上通过 GRUB 添加内核参数

最近更新时间:2024-11-07 11:28:22

我的收藏

操作场景

本文档介绍如何在腾讯云云服务器上通过 GRUB 添加内核参数。如果您在使用 GRUB 引导装载程序,想修改或添加内核参数,您可以编辑 GRUB 配置文件。下面是针对特定发行版在 GRUB 的配置文件中添加内核启动参数的方法。

示例操作系统

本文使用的云服务器实例操作系统以 CentOS 7.9、Ubuntu 24.04、OpenCloudOS 9、TencentOS Server 3.X/TencentOS Server 4.X 为例。

前提条件

已购买 Linux 云服务器。如果您还未购买云服务器,请参见 快速配置 Linux 云服务器

操作步骤

OpenCloudOS 9以及 TencentOS Server 3.X/TencentOS Server 4.X 系统引入了业界主流的 grub blscfg 功能,默认配置将以固定形式写入 /boot/loader/entries/ 对应的入口文件中。因此,修改通用配置文件 /etc/default/grub 将无法影响特定版本的内核参数。当前需要通过 grubby 工具修改对应内核参数。
根据您使用的操作系统版本,执行以下操作步骤:
2. 添加内核启动参数。
CentOS 7.9
Ubuntu 24.04
OpenCloudOS 9
TencentOS Server 3.X/TencentOS Server 4.X
1. 执行以下命令,编辑 /etc/default/grub 文件。
vim /etc/default/grub
2. i 切换至编辑模式,找到 GRUB_CMDLINE_LINUX 这一行,在 GRUB_CMDLINE_LINUX 结尾处以 “name=value” 的格式添加内核参数。例如:当前新增的内核参数是 systemd.debug-shell=1



3. Esc,输入 :wq,保存文件并返回。
4. 执行以下命令,重新生成 Kernel 配置。
grub2-mkconfig -o /boot/grub2/grub.cfg
5、执行以下命令,重启机器。
reboot
6、执行以下命令,检查是否更改成功。
cat /proc/cmdline
如果返回结果有新增参数,则说明添加成功。



1. 执行以下命令,编辑 /etc/default/grub 文件。
vim /etc/default/grub
2. i 切换至编辑模式,找到 GRUB_CMDLINE_LINUX 这一行,在 GRUB_CMDLINE_LINUX 结尾处以 “name=value” 的格式添加内核参数。例如:当前新增的内核参数是 systemd.debug-shell=1



3. Esc,输入 :wq,保存文件并返回。
4. 执行以下命令,重新生成 Kernel 配置。
grub-mkconfig -o /boot/grub/grub.cfg
5. 执行以下命令,重启机器。
reboot
6. 执行以下命令,检查是否更改成功。
cat /proc/cmdline
如果返回结果有新增参数,则说明添加成功。



1. 执行以下命令,新增内核参数。
grubby --update-kernel=ALL --args="systemd.debug-shell=1"
2. 执行以下命令,验证是否添加成功。
grubby --info ALL
如下图所示有新增参数,则说明添加成功。



3. 执行以下命令,重启机器。
reboot
4. 执行以下命令,检查是否更改成功。
cat /proc/cmdline
如果返回结果有新增参数,则说明添加成功。



1. 执行以下命令,新增内核参数。
grubby --update-kernel=ALL --args="systemd.debug-shell=1"
2. 执行以下命令,验证是否添加成功。
grubby --info ALL
如下图所示有新增参数,则说明添加成功。



3. 执行以下命令,重启机器。
reboot
4. 执行以下命令,检查是否更改成功。
cat /proc/cmdline
如果返回结果有新增参数,则说明添加成功。




关闭 blscfg 功能读取传统内核参数的配置文件

/etc/default/grub 设置了 GRUB_ENABLE_BLSCFG=true,代表系统使用了 grub blscfg 功能。如果想要禁用 blscfg 功能,使用传统内核参数的配置文件来新增参数,则需要在 /etc/default/grub 中设置 GRUB_ENABLE_BLSCFG=false

操作步骤

说明:
该方式将延续使用类似 CentOS 7的传统 grub 方式,默认读取 /etc/default/grub 的配置参数。
1. 执行以下命令,打开 /etc/default/grub 文件。
vim /etc/default/grub
2. i 切换至编辑模式,找到 GRUB_CMDLINE_LINUX 这一行,在 GRUB_CMDLINE_LINUX 结尾处以 “name=value” 的格式添加内核参数。例如当前新增的内核参数是 systemd.debug-shell=1



3. Esc,输入 :wq,保存文件并返回。
4. 执行以下命令,关闭 blscfg 功能。
sed -i "s/GRUB_ENABLE_BLSCFG=true/GRUB_ENABLE_BLSCFG=false/g" /etc/default/grub
5. 执行以下命令,重新生成 Kernel 配置。
grub2-mkconfig -o /boot/grub2/grub.cfg
6. 执行以下命令,重启机器。
reboot
7. 执行以下命令,检查是否更改成功。
cat /proc/cmdline
如果返回结果有新增参数,则说明添加成功。