服务器或Linux系统电脑开机,出现多个内核启动选项,CentOS系统默认选择第一个最新的内核启动,但常常这个最新的内核没有作用,有可能会导致服务器或电脑无法自动开机的现象。此时,需要修改系统默认的开机启动内核,附带删除那个无用的内核。
cat /boot/grub2/grub.cfg |grep menuentry
列表(如下三个,对应开机启动的内核选项):
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
menuentry_id_option=""
export menuentry_id_option
menuentry 'CentOS Linux (3.10.0-1160.53.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.el7.x86_64-advanced-29a1318e-73f6-4bee-999c-28b6c4ec1bfb' {menuentry 'CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-1160.el7.x86_64-advanced-29a1318e-73f6-4bee-999c-28b6c4ec1bfb' {
menuentry 'CentOS Linux (0-rescue-05a2d16ea7ab4e2983412cb94d46c4c8) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-0-rescue-05a2d16ea7ab4e2983412cb94d46c4c8-advanced-29a1318e-73f6-4bee-999c-28b6c4ec1bfb' {
uname -r
显示目前使用内核:
3.10.0-1160.el7.x86_64
grub2-set-default 'CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)'
或者(0表示开机启动的内核选项第一个,1表示第二个,依此类推):
grub2-set-default 1
有时最后可能需要执行:
#grub2-mkconfig -o /boot/grub2/grub.cfg ##使配置文件生效
grub2-editenv list
结果:
saved_entry=CentOS Linux (3.10.0-1160.el7.x86_64) 7 (Core)
————————————————————————————————————————————————————
rpm -qa | grep kernel
系统安装的所有内核,如下:
kernel-tools-3.10.0-1160.53.1.el7.x86_64
kernel-devel-3.10.0-1160.el7.x86_64
kernel-tools-libs-3.10.0-1160.53.1.el7.x86_64
kernel-headers-3.10.0-1160.53.1.el7.x86_64
kernel-3.10.0-1160.53.1.el7.x86_64
kernel-3.10.0-1160.el7.x86_64
kernel-devel-3.10.0-1160.53.1.el7.x86_64
kernel-devel-3.10.0-1160.42.2.el7.x86_64
uname -r
显示目前使用内核:
3.10.0-1160.el7.x86_64
注意:内核名称“3.10.0-1160.el7.x86_64”中的“l”,不是数字“1”而是字母“l”。
命令:rpm -e 内核名称,(yum remove 命令也可以)比如:
rpm -e kernel-3.10.0-1160.53.1.el7.x86_64
或者使用下面命令删除多余的内核:(以上与以下操作均需确认清楚)
yum remove kernel-3.10.0-1160.53.1.el7.x86_64