Arresto anomalo del sistema - strani caratteri in syslog


11

Ho un piccolo server che utilizzo per test e programmazione. Attualmente esegue Debian 9.4 stretch con kernel 4.14.0-0.bpo.3-amd64 .

Oggi ho provato a connettermi tramite SSH ma non ci sono riuscito, ho provato a eseguirne il ping ed era irraggiungibile. Pertanto ho dovuto riavviarlo duramente scollegando il cavo di alimentazione. Poi sono andato a /var/log/syslog e ho trovato una strana riga contenente esattamente 6140 caratteri come il seguente

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

quindi nient'altro fino al riavvio delle nuove voci di registro del sistema. Questa è in realtà la prima volta che succede.

Qualcuno sa cosa potrebbe essere?



1
@JdeBP Preferisco la tua prima risposta / link, è proprio così. Odd ha una domanda con oltre 1500 visite non hai ottenuto un solo voto, +1.
Rui F Ribeiro,

Risposte:


14

Quel contenuto di file syslog che ci stai mostrando di tutti gli zeri è davvero corruzione della scrittura del filesystem / syslog.

Il tuo crash di sistema ha catturato il sistema durante la scrittura nel file syslog, e questo è il risultato finale.

L'ho già visto accadere più volte nel corso degli anni, nelle macchine virtuali Linux e un paio di volte in più in Raspberries e Banana Pis.

Niente di cui ossessionare (troppo) o perdere molto tempo per indagare sul motivo per cui hai questo per un evento unico. Sarei più preoccupato di scoprire perché si è schiantato, soprattutto se si tratta di un evento regolare.

PS entrando in un territorio aneddotico, l'ultima volta che ho avuto questo accadere regolarmente in un Banana Pi R1, sono riuscito a rintracciare la causa in un chipset wifi (difettoso) realtek.


4
Vale anche la pena notare che ^@è il byte NUL (valore byte 0), quindi sono i dati "vuoti" che vengono aggiunti accidentalmente al file di registro. Ciò può accadere, ad esempio, quando un nuovo blocco vuoto viene assegnato alla fine del file, ma la quantità di byte effettivamente occupata da dati significativi in ​​quel blocco non viene aggiornata correttamente (perché l'arresto anomalo / hard reset si è verificato prima che quel contatore fosse impegnata nell'azionamento).
marcelm

come scoprire perché si è schiantato?
CEO presso Apartico,

@CEOatApartico Consiglierei di aprire una nuova domanda.
Rui F Ribeiro,


6

Per espandere leggermente questa risposta , il tuo syslog ha il contenuto di una pagina di memoria parzialmente impegnata sul disco, con i metadati di syslog non aggiornati. Quella stringa di ^@caratteri è in realtà byte NUL; esattamente cosa contiene inizialmente una pagina di memoria appena allocata.


Un promemoria amichevole: se lo stai basando nella risposta JdeBP, prova a farlo bene. I settori del disco vengono azzerati se allocati dal kernel per motivi di sicurezza, non è memoria con 0s scritti di per sé. Consiglio di correggerlo.
Rui F Ribeiro,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.