本文介绍如何在 TencentOS Server 上使用
grub2 和 grubby 管理内核引导项,包括查看当前引导配置、修改默认启动内核以及调整内核启动参数。TencentOS Server 主要通过以下工具管理内核引导:
工具 | 适用版本 | 说明 |
grubby | TencentOS Server 3 / 4 | fedora 社区工具,推荐使用 |
grub2-* | TencentOS Server 2 | GRUB 2 原生命令 |
注意事项
权限要求:请确认已获取 root 权限
适用场景:多内核环境下切换默认启动内核、调整内核启动参数
使用 grubby 管理引导
TencentOS Server 3 和 4 推荐使用
grubby 进行内核引导配置查看当前默认启动的内核:
grubby --default-kernel
返回结果如下:
/boot/vmlinuz-5.4.241-24.0017.41.3
查看系统中所有可用的内核信息:
grubby --info=ALL
返回结果如下:
index=0kernel="/boot/vmlinuz-5.4.241-24.0017.28"args="ro quiet elevator=noop console=ttyS0,115200 console=tty0 vconsole.keymap=us crashkernel=3G-16G:256M,16G-64G:384M,64G-128G:512M,128G-486G:768M,486G-972G:1024M,972G-:2048M vconsole.font=latarcyrheb-sun16 net.ifnames=0 biosdevname=0 intel_idle.max_cstate=1 intel_pstate=disable iommu=pt amd_iommu=on nopvspin"root="UUID=1cdbeeff-b545-47c3-8442-9038c7ad903b"initrd="/boot/initramfs-5.4.241-24.0017.28.img"title="TencentOS Server (5.4.241-24.0017.28) 3.3 (Final)"id="30e472194cb8417c88b24ec0b1915e7f-5.4.241-24.0017.28"
查看指定内核的详细信息:
grubby --info=/boot/vmlinuz-\\<版本号> #示例版本号:5.4.241-24.0017.28
查看当前默认内核的详细信息:
grubby --info=$(grubby --default-kernel)
设置默认启动内核
警告:
设置默认内核后需要重启系统才能生效。建议您先确认目标内核版本正确,避免设置错误内核版本,导致系统无法启动。
通过内核路径设置默认启动内核:
grubby --set-default /boot/vmlinuz-\\<版本号> #示例版本号:5.4.241-24.0017.28
以设置
5.4.241-24.0017.28 为默认内核为例:grubby --set-default /boot/vmlinuz-5.4.241-24.0017.28
返回结果如下:
The default is /boot/loader/entries/30e472194cb8417c88b24ec0b1915e7f-5.4.241-24.0017.28.conf with index 0 and kernel /boot/vmlinuz-5.4.241-24.0017.28
修改内核启动参数
警告:
修改默认内核或内核参数后,需要重启系统才能生效。建议您先确认参数正确,避免设置错误参数,导致系统无法启动。
为默认内核添加启动参数:
grubby --update-kernel=$(grubby --default-kernel) --args="\\<参数>"
以添加 debug 参数为例:
grubby --update-kernel=$(grubby --default-kernel) --args="debug"
为所有内核添加启动参数:
grubby --update-kernel=ALL --args="\\<参数>"
从默认内核移除启动参数:
grubby --update-kernel=$(grubby --default-kernel) --remove-args="\\<参数>"
以移除 quiet 参数为例:
grubby --update-kernel=$(grubby --default-kernel) --remove-args="quiet"
使用 grub2 管理引导
以下命令适用于 TencentOS Server 2,在 TencentOS Server3/4 上不推荐使用。
查看当前默认启动项:
grub2-editenv list
返回结果如下:
saved_entry=TencentOS Server (5.4.119-19.0009.67.1) 2.4
查看所有可用的启动项:
awk -F\\' '$1=="menuentry " {print i++ " : " $2}' /boot/grub2/grub.cfg
返回结果如下:
0 : TencentOS Server (5.4.119-19.0009.67.1) 2.41 : TencentOS Server (5.4.120-19.0009.67.1) 2.4 #该版本不存在,仅作演示示例
设置默认启动项(按序号)
按序号设置默认启动项:
grub2-set-default <序号>
验证设置是否生效:
grub2-editenv list
验证
完成内核引导配置后,重启系统验证更改生效。
确认当前默认内核(重启后执行):
grubby --default-kernel
确认实际运行的内核版本:
uname -r
常见问题
设置默认内核后,重启仍然进入旧内核
可能原因:使用了
grub2-set-default 但 GRUB 配置文件未更新。处理方案:重新配置
grub重新生成 GRUB 配置:
grub2-mkconfig -o /boot/grub2/grub.cfg
验证默认内核:
grubby --default-kernel
需要一次性用指定内核启动(不修改默认),如何操作?
使用
grub2-reboot 指定下次启动的内核:grub2-reboot \\<内核标题或序号>
查看内核序号:
grubby --info=ALL | grep index
意外添加了错误的内核参数导致系统无法启动,如何恢复?
1. 重启进入 GRUB 引导菜单(按
Esc 或 Shift 键)。2. 选择要启动的内核,按
e 进入编辑模式。3. 找到以
linux 开头的行,手动删除错误参数。4. 按
Ctrl+X 启动系统。5. 启动后使用
grubby --update-kernel 修复配置。