最近有一台物理服务器,centos7操作系统,无故重启,每天都会发生这种情况:
解决:
升级内核
CentOS 允许使用 ELRepo,这是一个第三方仓库,可以将内核升级到最新版本,使用ELRepo升级内核,比较简单;
1、
没升级之前先查看一下内核:uname -sr
ELRepo 仓库每过一段时间可能会升级,具体情况可参考此网站:http://elrepo.org/tiki/tiki-index.php
要在 CentOS 7 上启用 ELRepo 仓库,请运行:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org #导入key,如果失败, 执行下面一步yum
yum update nss
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm #升级安装 ELRepo
2、
yum --disablerepo="*" --enablerepo="elrepo-kernel" list available #查看
3、
安装最新的主线稳定内核:
yum --enablerepo=elrepo-kernel install kernel-ml #中间会有提示都输入y即可
4、
编辑/etc/default/grub 并设置 GRUB_DEFAULT=0 意思是 GRUB 初始化页面的第一个内核将作为默认内核。
查看系统当前可使用的内核;
cat /boot/grub2/grub.cfg |grep menuentry
图中4.18版本的就是刚才安装的内核,
5、
#修改开机时默认使用的内核,(此处应看清自己的内核版本,不要一味的复制)
grub2-set-default 'CentOS Linux (4.18.3-1.el7.elrepo.x86_64) 7 (Core)'
然后重启系统;
6、
重启完后查看当前使用的内核,发现已经升级完成了;
我的系统升级完内核,观察了一个多星期,没有出现过自动重启的现象;
还有一些其他的解决办法,我没有测试,如下: (具体问题还要仔细去分析日志)
如:
解决方法:
# vi /boot/grub/grub.conf
在kernel一行最后加上添加 intremap=off 或者 intremap=no_x2apic_optout
然后重启服务器即可。
参数解释:
intremap={on,off,nosid,no_x2apic_optout}
on:(默认值)开启中断重映射,BIOS中默认开启
off:关闭中断重映射
nosid:重映射时不对SID(Source ID)做检查
no_x2apic_optout:无视BIOS的设置,强制禁用x2APIC特性,主要用于解决某些对x2APIC支持有缺陷的BIOS导致的故障