Tengo un pequeño servidor que uso para probar y programar. Actualmente ejecuta Debian 9.4 stretch con 4.14.0-0.bpo.3-amd64 kernel.
Hoy traté de conectarme a través de SSH, pero no pude, intenté hacer ping y no fue accesible. Por lo tanto, tuve que reiniciarlo desconectando el cable de alimentación. Luego fui /var/log/syslog
y encontré una línea extraña que contiene exactamente 6140 caracteres como el siguiente
^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@
entonces nada más hasta que se reinicien nuevas entradas de registro del sistema. Esta es la primera vez que sucede.
¿Alguien sabe qué podría ser?
Respuestas:
El contenido del archivo syslog que nos está mostrando de todos los ceros es de hecho corrupción de la escritura del sistema de archivos / syslog.
El bloqueo del sistema capturó el sistema a mitad de la escritura en el archivo syslog y ese es el resultado final.
Ya lo he visto suceder varias veces a lo largo de los años, en máquinas virtuales Linux y un par de veces más en Raspberries y Banana Pis.
Nada de lo que obsesionarse (demasiado) o perder mucho tiempo para investigar por qué tiene esto para un evento único. Me preocuparía más saber por qué se bloqueó, especialmente si es un evento regular.
PD: al entrar en territorio anecdótico, la última vez que sucedió esto regularmente en un Banana Pi R1, logré rastrear la causa hasta un chipset wifi realtek (defectuoso).
fuente
^@
es el byte NUL (valor de byte 0), por lo que son datos "vacíos" que se agregan al archivo de registro por accidente. Esto podría suceder, por ejemplo, cuando se asigna un nuevo bloque vacío al final del archivo, pero la cantidad de bytes realmente ocupados por datos significativos en ese bloque no se actualiza correctamente (porque el bloqueo / restablecimiento completo ocurrió antes de que ese contador fuera comprometido con la unidad).Para ampliar ligeramente esa respuesta , su syslog tiene el contenido de una página de memoria parcialmente comprometida en el disco, con los metadatos de syslog no actualizados. Esa cadena de
^@
caracteres son en realidad bytes NUL; exactamente lo que contiene inicialmente una página de memoria recién asignada.fuente