返回

Ubuntu 内核升级故障排除:一次真实经历**

前端

我们负责维护的项目有一批部署在 AWS 上的 Ubuntu 18.04 服务器。出于安全考虑,我们需要将内核从 5.3.0 升级到 5.4.0。我们首先在测试环境中对两台服务器进行了升级。

测试环境升级

在测试环境中,我们使用以下命令升级了内核:

sudo apt update
sudo apt install linux-image-5.4.0-050400-generic linux-headers-5.4.0-050400-generic
sudo reboot

升级后,我们通过 SSH 成功连接到了服务器,并且一切正常。

生产环境升级

在对生产环境的服务器进行升级时,我们使用了同样的命令。但是,在升级后,我们无法通过 SSH 连接到服务器。使用 ssh -vvv 命令进行故障排除时,我们看到了以下错误消息:

ssh: connect to host xxx.xxx.xxx.xxx port 22: Connection refused

故障排除

我们尝试了以下故障排除步骤:

  • 检查服务器是否正在运行。使用 ping 命令,我们确认服务器正在运行并且可以ping通。
  • 检查防火墙是否阻止了 SSH 连接。我们使用 ufw status 命令检查了防火墙状态,并且它没有阻止 SSH 连接。
  • 检查 SSH 服务是否正在运行。我们使用 systemctl status ssh 命令检查了 SSH 服务的状态,并且它正在运行。
  • 重新启动网络服务。我们使用 systemctl restart networking 命令重新启动了网络服务,但问题仍然存在。
  • 查看系统日志。我们使用 journalctl -xe 命令查看了系统日志,并且发现了以下错误消息:
[  12.937634] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)

解决方案

此错误消息表明内核无法挂载根文件系统。我们研究了可能的解决方案,发现了一个解决此问题的补丁。我们通过以下命令安装了补丁:

sudo apt install linux-image-5.4.0-050400-generic linux-headers-5.4.0-050400-generic linux-modules-5.4.0-050400-generic

安装补丁后,我们重新启动了服务器,并且能够通过 SSH 连接到它。

结论

这次 Ubuntu 内核升级故障排除经历突出了在服务器维护中进行彻底测试和故障排除的重要性。通过仔细检查系统日志并研究可能的解决方案,我们能够解决问题并使服务器恢复正常运行。希望我们的经历能够帮助您在类似情况下解决问题。