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




