最近购买了一台绿联 DXP4800 NAS,并在虚拟机中安装了 Ubuntu 系统,将其作为内网的服务器进行使用。然而,发现系统经常会出现意外关机的情况,而关机事件在系统日志中并没有记录任何相关信息。经过一番排查,终于找到了问题的原因。
问题描述
在使用 Ubuntu 系统时,NAS 偶尔会突然关机,而且在绿联NAS系统的日志文件中,根本没有找到任何关于关机的明确记录。为了找到问题的根源,使用如下命令检查相关日志,并进行过滤:
grep -iv ': starting\|kernel: .*: Power Button\|watching system buttons\|Stopped Cleaning Up\|Started Crash recovery kernel' \ /root/messages /var/log/syslog /var/log/apcupsd* \ | grep -iw 'recover[a-z]*\|power[a-z]*\|shut[a-z ]*down\|rsyslogd\|ups'
在运行上述命令后,发现了在 /var/log/syslog
中的一些异常记录,具体如下:
/var/log/syslog:2024-11-13T13:27:31.737400+00:00 nas-sz systemd[1]: Started unattended-upgrades.service - Unattended Upgrades Shutdown. /var/log/syslog:2024-11-13T13:27:31.735118+00:00 nas-sz rsyslogd: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.2312.0] /var/log/syslog:2024-11-13T13:27:31.735427+00:00 nas-sz rsyslogd: rsyslogd's groupid changed to 104 /var/log/syslog:2024-11-13T13:27:31.735488+00:00 nas-sz rsyslogd: rsyslogd's userid changed to 103 /var/log/syslog:2024-11-13T13:27:31.735532+00:00 nas-sz rsyslogd: [origin software="rsyslogd" swVersion="8.2312.0" x-pid="794" x-info="https://www.rsyslog.com"] start /var/log/syslog:2024-11-13T13:27:31.745481+00:00 nas-sz kernel: raid6: using avx2x2 recovery algorithm /var/log/syslog:2024-11-13T13:27:31.745561+00:00 nas-sz kernel: systemd-journald[315]: File /var/log/journal/3d89e6ed8f11472a93fba957f6e0ca25/system.journal corrupted or uncleanly shut down, renaming and replacing.
其中,最关键的行是:
nas-sz systemd[1]: Started unattended-upgrades.service - Unattended Upgrades Shutdown.
这条记录表明,Ubuntu 系统在某个时刻触发了自动更新(unattended-upgrades
服务),而该服务在完成操作后导致了系统的意外关机。
问题分析
Ubuntu 系统的 unattended-upgrades
服务是用于自动安装安全更新和其他必要的更新。虽然该服务可以自动保持系统更新,但在一些情况下,特别是在 NAS 或其他长时间运行的服务器环境中,自动更新可能会导致系统不稳定或重启。
另外,systemd-journald
还提示 /var/log/journal/
中的日志文件被异常关闭,并且文件遭到了损坏,这表明自动更新过程中可能存在一些问题,导致了系统的不正常关机。
解决方案
经过对问题的分析,决定卸载 unattended-upgrades
服务,以防止它在未来再次自动触发系统更新。通过执行以下命令,可以成功移除该服务:
sudo apt remove unattended-upgrades
总结
如果你也遇到类似的自动关机问题,尤其是系统日志中没有记录关机信息,建议检查是否是 unattended-upgrades
服务导致的。移除该服务是一种有效的解决方法。当然,如果你更倾向于手动管理系统更新,也可以通过禁用该服务或调整其配置来避免类似问题。