You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu 18.04服务器重启前如何验证系统状态正常以确保可正常启动?

Ubuntu 18.04服务器重启前如何验证系统状态正常以确保可正常启动?

我完全懂你之前升级失败留下的心理阴影——毕竟服务器跑着繁忙的网站,万一重启崩了,折腾起来真的闹心。针对你现在只是Ubuntu 18.04常规包更新后的重启担忧,咱们可以一步步做这些检查,把风险降到最低:

1. 检查系统包的完整性与依赖

首先确保所有更新的包都安装正常,没有损坏或依赖问题:

  • 运行 dpkg --audit:这个命令会找出未配置、损坏或者半安装的包,如果有输出,先执行 dpkg --configure -a 尝试修复配置,再用 apt install -f 解决依赖缺失的问题。
  • 安装并使用 debsums 验证包文件完整性:先装工具 apt install debsums,然后执行 debsums -c,它会列出所有被篡改或损坏的包文件。如果发现异常,用 apt reinstall <包名> 重新安装对应的包即可。

2. 重点检查引导系统(之前栽过的坑要重点盯)

引导问题是重启失败的重灾区,咱们仔细排查:

  • 先确认你的系统磁盘:运行 lsblk,找到根分区(挂载点为/)所在的磁盘,比如通常是 /dev/sda 或者NVMe盘的 /dev/nvme0n1
  • 检查GRUB安装状态:执行 grub-install --check /dev/sda(把/dev/sda换成你的实际磁盘),如果输出没有报错,说明GRUB安装没问题。
  • 更新GRUB配置:运行 update-grub,确保新安装的内核(如果有的话)被正确识别,命令输出里能看到已检测到的内核列表就没问题。
  • 检查/boot目录空间:执行 df -h /boot,如果剩余空间不足(比如小于100MB),可能会导致引导失败,用 apt autoremove --purge 清理旧的无用内核即可。

3. 磁盘与分区健康检查

磁盘故障也会导致启动失败,提前排查:

  • 只读检查文件系统:执行 e2fsck -n /dev/sda1(把/dev/sda1换成你的/boot分区,根分区同理),-n 参数是只读模式,不会修改正在运行的系统,能检测出文件系统的潜在问题。
  • 检查磁盘SMART健康状态:执行 smartctl -H /dev/sda,如果输出显示 "SMART overall-health self-assessment test result: PASSED",说明磁盘硬件状态良好;如果是FAILED,可能需要联系OVH排查硬件问题。

4. 关键服务的状态验证

确保你的网站相关服务能正常开机启动:

  • 检查当前服务运行状态:比如运行 systemctl status nginx mysql ssh(替换成你实际用的Web服务、数据库服务),确认它们都是active (running)状态。
  • 验证开机自启配置:执行 systemctl is-enabled nginx mysql ssh,如果输出是enabled,说明服务会随系统启动;如果是disabled,用 systemctl enable <服务名> 开启自启。

5. 最后核对更新日志与内核状态

  • 查看最近的更新记录:cat /var/log/apt/history.log,确认没有异常的安装/卸载操作,尤其是内核相关的包是否安装成功。
  • 检查已安装内核:dpkg -l | grep linux-image,确认新内核(如果更新了的话)已经存在,并且update-grub已经识别到它。

做完这些检查,系统状态基本就没问题了。如果还是有点担心,你可以先手动备份一下关键配置目录(比如/etc),或者利用OVH的服务器快照功能(如果有的话)做个快照,这样就算真出问题,恢复起来也更快。

备注:内容来源于stack exchange,提问作者Dan Hastings

火山引擎 最新活动