Qualche tempo fa dopo alcuni tempi di travaglio uno degl HDD principali del mio server Debian (un server di test) ha iniziato ad avere dei problemi di I/O riguardanti la fallita lettura di alcuni blocchi/settori sul device hardware, dopo aver nel passato effettuato la manutenzione la situazione è poi peggiorata.
Gli errori di I/O sono diventati critici rendendo il sistema inutilizzabile, non riuscivo neanche a effettuare il reboot o lo shutdon della macchina per passare poi a un ultimo check dei dischi per poi prepare la sostituzione hardware del drive danneggiato, nel tentativo di eseguire azioni di reboot ricevevo questi errori:
deb-test1:~# reboot bash: /sbin/reboot: Input/output error deb-test1:~# shutdown -r now bash: /sbin/shutdown: Input/output error
palesemente il problema era del’ HDD, sembrava evidente che a questopunto il kernel non riusdiva a caricare i file eseguibili che mi servivano, documentandomi un poco sulla situazione sono arrivato alla “Magic SysRq Key“.
Essa è una combinazione di chiave compresa dal kernel che permette di lanciare comandi di basso livello indipendentemente dallo stato del sistema, ed è una funzionalità se così la possiamo definire che è abilitata (solitamente di default) all’interno del kernel.
jinko@deb-test1:/usr/src/linux-2.6.34$ cat .config | grep -i sysrq CONFIG_MAGIC_SYSRQ=y
ed è controllata dai prametri del kernel sysctl e da kernl-sysrq, codesta funzionalità è nata come combinazioni di chiavi come alt+numero/lettera, ma è anche presente attraverso il filesystem proc.
La prima cosa che ho eseguito è stata l’attivazione dell’opzione Magis SysRq:
echo 1 > /proc/sys/kernel/sysrq
e sono andato ad effettuare il reboot della macchina (sperenzoso di fare un ultuima analisi):
echo b > /proc/sysrq-trigger
in questo modo verrà effettuato il riavvio del sistema senza effettuare l’umount o la sincronizzazione del filesystem.
Per saperne di più potete visioanre la documentazione ufficiale cliccando qui.