1. Centos7 更新内核失败的原因

安装内核后, 设置默认启动的内核错误, 就是设置为rescue模式

2. 事情经过

  1. 我操作的内容:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm

yum --enablerepo=elrepo-kernel -y install kernel-ml

awk -F\' '$1=="menuentry " {print i++ " : " $2}' /etc/grub2.cfg

这时候会显示默认启动内核列表:

0 : CentOS Linux (0-rescue-00a62363617944e08db8db894ba6145e) 7 (Core)

1 : CentOS Linux (5.1.1-1.el7.elrepo.x86_64) 7 (Core)

2 : CentOS Linux (3.10.0-693.11.6.el7.x86_64) 7 (Core)

3 : CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)

接下来就是选择错误的地方

# 错误选择默认的0
grub2-set-default 0

接着就会重启不了, 因为是VPS原因, 无法操作, 手动选择启动的内核, 所以就翻车了.

丢失所有数据, 重装系统

正确做法是选择, 是列表上5.1内核

grub2-set-default "CentOS Linux (5.1.1-1.el7.elrepo.x86_64) 7 (Core)"

重启即可.

3. 总结下.

虽然是使用脚本创建的错误, 也暴露一了问题. 有时候没有理解命令的意思就盲目去执行, 造成无法预料的后果.

如何避免这种类似事故:

  • 高危操作时, 必须在相同主机测试, 确认理解每一步的操作内容.

  • 高危操作时, 必须进行数据备份, 禁止使用网络上一键脚本.

最后附上正确的脚本