Centos7如何切换启动的内核

一、启动报错

由于安装更新时异常断电等原因,可能导致内核出错。
报错如下:

[1.xxxxx] i8042: No controller found
[1.xxxxx] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[1.xxxxx] CPU: 0 PID: 1Comm: swapper/0 Not tainted 3.10.0-1062.18.1.el7.x86_64 #1
[1.xxxxx] Hardware name: /068CDY, BIOS 2.4.3 07/09/2014
[1.xxxxx] Call Trace:
[1.xxxxx] dump_stack+0x19/0x1b
[1.xxxxx] panic+0xe8/0x21f
[1.xxxxx] mount_block_root+0x19/0x1b.....此处省略错误信息.......(开头的xxxx代表省略的数字)

二、用其他内核启动

重启时回到启动界面,可以看到启动时可以选择不同的内核,可以选择其他内核如图(此图来自互联网)

三、修改启动顺序

重启之后可以用安装盘修复,也可以直接修改grub,设置默认的启动内核,我采用的是后面的方法。

[root@lh test]# cat /boot/grub2/grub.cfg |grep "menuentry "
menuentry 'CentOS Linux (3.10.0-1062.18.1.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-0251cb04-f274-45ea-84a3-4a8cb45b65ee' {
menuentry 'CentOS Linux (3.10.0-862.3.3.el7.x86_64) 7 (Core)' --class centos --class gnu-linux --class gnu --class os --unrestricted $menuentry_id_option 'gnulinux-3.10.0-327.el7.x86_64-advanced-0251cb04-f274-45ea-84a3-4a8cb45b65ee' {
[root@lh test]# grub2-set-default 'CentOS Linux (3.10.0-862.3.3.el7.x86_64) 7 (Core)'

四、卸载失败的内核:

注意,为保险起见,操作前建议先备份一下grub.cfg

uname -a #查询当前使用的系统
rpm -qa | grep kernel
yum remove 你要删除的内核 #把老版本的内核remove,千万不要把正在使用的内核删掉
grub2-mkconfig -o /boot/grub2/grub.cfg #重新编译引导

PS:yum remove直接卸载内核就行,内核的包从rpm -qa|grep kernel的结果中找,我的主机执行的是下面的命令

yum remove kernel-3.10.0-1062.18.1.el7.x86_64

参考:
https://www.cnblogs.com/su-root/p/9911823.html
https://blog.csdn.net/roshy/article/details/88528823
https://blog.csdn.net/helloxkcd/article/details/79175426

原文地址:https://www.cnblogs.com/bugutian/p/12841190.html