系统崩溃 - 系统日志中的奇怪字符

DrK*_*Key 15 logs debian

我有一个用于测试和编程的小型服务器。目前它运行带有4.14.0-0.bpo.3-amd64内核的Debian 9.4 拉伸

今天我尝试通过 SSH 连接,但我无法连接,然后我尝试 ping 它并且无法访问。因此,我不得不通过拔下电源线来硬重启它。然后我去了 /var/log/syslog ,我发现了一个奇怪的行,其中包含6140 个字符,如下所示

^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@

然后没有别的,直到系统重新启动新的日志条目。这实际上是第一次发生。

有人知道这可能是什么吗?

Rui*_*iro 18

您向我们展示的所有零的系统日志文件内容确实是文件系统/系统日志写入的损坏。

您的系统崩溃导致系统正在写入 syslog 文件,这就是最终结果。

多年来,这种情况已经发生过多次,在 Linux VM 中以及在 Raspberries 和 Banana Pis 中发生过几次。

没有什么值得(太多)关注或浪费很多时间来调查为什么你有这个一次性事件。我会更担心找出它崩溃的原因,特别是如果它是一个常规事件。

PS 进入轶事领域,上次我在 Banana Pi R1 上经常发生这种情况时,我设法将原因追溯到(有故障的)realtek wifi 芯片组。

  • 还值得注意的是,`^@` 是 NUL 字节(字节值 0),因此它是意外附加到日志文件的“空”数据。例如,当一个新的空块被分配到文件末尾时,可能会发生这种情况,但该块中有意义的数据实际占用的字节数没有正确更新(因为崩溃/硬重置发生在该计数器之前致力于驱动器)。 (5认同)

小智 7

为了稍微扩展该答案,您的系统日志具有部分提交到磁盘的内存页面的内容,系统日志的元数据不是最新的。那串^@字符实际上是 NUL 字节;刚分配的内存页最初包含的内容。