Salvados por la... sysrq

23/08/2006 - 20:35 por Jinx | Informe spam
Aprovecho otra vez para explicaros cómo me he salvado de un reinicio
inevitable, gracias al kernel precompilado de Ubuntu. Funciona para
otras distros, siempre que tengan el sysrq activado.

Sysrq es un genial sistema salvavidas de linux (desconozco si funciona
para otros UNIX) que permite decirle al sistema "haz lo que quieras,
pero no te mueras". Cuando el ordenador está frito, puede ser que siga
reaccionando al teclado, pero no pueda procesar la orden por estar
saturado. Por ello los diseñadores implementaron el SysRq por encima
de toda prioridad, para recuperar todo lo que fuera posible. Ese "lo
que quieras" es, según el orden que sigo siempre yo:

Alt + SysRq + R: Poner el teclado en modo Raw. Le dice al sistema que
descargue todos los controladores de teclado. Si el entorno gráfico
está muerto, a veces un alt+sysrq+r permite hacer ctrl+alt+F1 y abrir
una terminal para matar al proceso que está jodiendo al sistema. Si
esto no funciona, tenemos que pasar al

Alt + SysRq + S: Sincroniza los discos duros. Como a partir de ahora
puede ser que reiniciemos el ordenador, es mejor decirle al sistema
que guarde nuestros datos para que al arrancar no tenga que hacer un
fsck (scandisk). Entonces intentamos hacer un

Alt + SysRq + E: tErminar todos los procesos del sistema, excepto
init. A mi me funcionó esta vez. Cerró todos los programas, y se me
abrió una consola. Si no funciona, tendremos que probar el

Alt + SysRq + I: kIll (matar) todos los procesos, menos init. En lugar
de decirle a los programas que se cierren, los mata con alevosía y
mala leche. El resultado suele ser el mismo que en el paso anterior,
una terminal. Si tampoco hemos conseguido que reaccione, entonces
tendremos que reiniciar. Haremos un

Alt + SysRq + U: Umount (desmontar) los discos. Igual que en el
segundo paso guardamos los datos de las cachés, ahora los
desconectamos del sistema, para que no se casquen al reiniciar. Y
ahora, un

Alt + SysRq + B: reBoot (reiniciar). Como apretar el botón de reset,
pero sin agacharse. Obviamente, perderemos todos los datos. Si hemos
podido sincronizar y desmontar el disco, el sistema no se corromperá

Un mnemotécnico que leí en un libro hace años y permite recordar la
combinación de teclas es: Raising Skinny Elephants Is Utterly Boring.
Como su significado es realmente estúpido, es fácil acordarse de las
palabras.

La salida de dmesg me dice lo siguiente:

1. SysRq : HELP : loglevel0-8 reBoot tErm kIll saK showMem powerOff
showPc unRaw Sync showTasks Unmount
2. SysRq : Keyboard mode set to XLATE
3. SysRq : Emergency Sync
4. Emergency Sync complete
5. SysRq : Terminate All Tasks

La primera línea activa el modo SysRq, porque pulsé la R. Esto lo dice
en la segunda línea. La tercera fue cuando intenté hacer el S, y la
cuarta nos muestra que no hubo errores. En la quinta el sistema cerró
todos los procesos.

Claro, si E o I funcionan, nos quedamos en una puta terminal con
solamente el init abierto. ¿Cómo volvemos al estado anterior? Yo entré
en el directorio /etc/rc2.d (porque normalmente o en init 2, si no lo
sabéis mirad qué número aparece en la línea arrancid:2:initdefault:
del archivo /etc/inittab) y empecé a ejecutar ./SXXnombre start, para
cada uno de los archivos que hay allí (cambiad XXnombre por lo que
corresponda). Una vez abierto el gestor de ventanas gdm o kdm ya
volvéis a tener el sistema perfecto, aunque posiblemente hayáis
perdido los archivos abiertos, esto es inevitable

Cuando se os cuelgue el sistema, no desesperéis. Si tenéis una red
local, y el servidor SSH activado (cosa que recomiendo, ni que esté
sólo escuchando conexiones del otro PC), podéis entrar remotamente al
PC "muerto" para matar los programas que estén cascados. Si no, se
puede intentar hacer un SysRq. Aun con todo, podremos reiniciar el
sistema de forma ordenada y sin corrupción de datos. Y si todo
estuviera totalmente muerto, y no funcionara el teclado, apretando el
botón de apagado de la torre -y con acpid o apmd instalado- el sistema
entenderá lo mismo que un SysRq + S,I,B. Como veis, el ctrl-alt-supr
de Windows es basura comparado con los métodos de recuperación
existentes en linux.

Fuente: http://weblog.topopardo.com/archives/000115.html
 

Leer las respuestas

#1 JM Tella Llop [MVP Windows]
24/08/2006 - 21:00 | Informe spam
cambia la fecha! que eres tan "pardal" que hasta se te olvida despues de
retrasar mensajes :-PPP

desde luegoinutiles"haylos"...

Jose Manuel Tella Llop
MVP - Windows
(quitar XXX)
http://www.multingles.net/jmt.htm
news://jmtella.com

Este mensaje se proporciona "como está" sin garantías de ninguna clase,y no
otorga ningún derecho.

This posting is provided "AS IS" with no warranties, and confers no
rights.
You assume all risk for your use.




"Jinx" wrote in message
news:%
Aprovecho otra vez para explicaros cómo me he salvado de un reinicio
inevitable, gracias al kernel precompilado de Ubuntu. Funciona para
otras distros, siempre que tengan el sysrq activado.

Sysrq es un genial sistema salvavidas de linux (desconozco si funciona
para otros UNIX) que permite decirle al sistema "haz lo que quieras,
pero no te mueras". Cuando el ordenador está frito, puede ser que siga
reaccionando al teclado, pero no pueda procesar la orden por estar
saturado. Por ello los diseñadores implementaron el SysRq por encima
de toda prioridad, para recuperar todo lo que fuera posible. Ese "lo
que quieras" es, según el orden que sigo siempre yo:

Alt + SysRq + R: Poner el teclado en modo Raw. Le dice al sistema que
descargue todos los controladores de teclado. Si el entorno gráfico
está muerto, a veces un alt+sysrq+r permite hacer ctrl+alt+F1 y abrir
una terminal para matar al proceso que está jodiendo al sistema. Si
esto no funciona, tenemos que pasar al

Alt + SysRq + S: Sincroniza los discos duros. Como a partir de ahora
puede ser que reiniciemos el ordenador, es mejor decirle al sistema
que guarde nuestros datos para que al arrancar no tenga que hacer un
fsck (scandisk). Entonces intentamos hacer un

Alt + SysRq + E: tErminar todos los procesos del sistema, excepto
init. A mi me funcionó esta vez. Cerró todos los programas, y se me
abrió una consola. Si no funciona, tendremos que probar el

Alt + SysRq + I: kIll (matar) todos los procesos, menos init. En lugar
de decirle a los programas que se cierren, los mata con alevosía y
mala leche. El resultado suele ser el mismo que en el paso anterior,
una terminal. Si tampoco hemos conseguido que reaccione, entonces
tendremos que reiniciar. Haremos un

Alt + SysRq + U: Umount (desmontar) los discos. Igual que en el
segundo paso guardamos los datos de las cachés, ahora los
desconectamos del sistema, para que no se casquen al reiniciar. Y
ahora, un

Alt + SysRq + B: reBoot (reiniciar). Como apretar el botón de reset,
pero sin agacharse. Obviamente, perderemos todos los datos. Si hemos
podido sincronizar y desmontar el disco, el sistema no se corromperá

Un mnemotécnico que leí en un libro hace años y permite recordar la
combinación de teclas es: Raising Skinny Elephants Is Utterly Boring.
Como su significado es realmente estúpido, es fácil acordarse de las
palabras.

La salida de dmesg me dice lo siguiente:

1. SysRq : HELP : loglevel0-8 reBoot tErm kIll saK showMem powerOff
showPc unRaw Sync showTasks Unmount
2. SysRq : Keyboard mode set to XLATE
3. SysRq : Emergency Sync
4. Emergency Sync complete
5. SysRq : Terminate All Tasks

La primera línea activa el modo SysRq, porque pulsé la R. Esto lo dice
en la segunda línea. La tercera fue cuando intenté hacer el S, y la
cuarta nos muestra que no hubo errores. En la quinta el sistema cerró
todos los procesos.

Claro, si E o I funcionan, nos quedamos en una puta terminal con
solamente el init abierto. ¿Cómo volvemos al estado anterior? Yo entré
en el directorio /etc/rc2.d (porque normalmente o en init 2, si no lo
sabéis mirad qué número aparece en la línea arrancid:2:initdefault:
del archivo /etc/inittab) y empecé a ejecutar ./SXXnombre start, para
cada uno de los archivos que hay allí (cambiad XXnombre por lo que
corresponda). Una vez abierto el gestor de ventanas gdm o kdm ya
volvéis a tener el sistema perfecto, aunque posiblemente hayáis
perdido los archivos abiertos, esto es inevitable

Cuando se os cuelgue el sistema, no desesperéis. Si tenéis una red
local, y el servidor SSH activado (cosa que recomiendo, ni que esté
sólo escuchando conexiones del otro PC), podéis entrar remotamente al
PC "muerto" para matar los programas que estén cascados. Si no, se
puede intentar hacer un SysRq. Aun con todo, podremos reiniciar el
sistema de forma ordenada y sin corrupción de datos. Y si todo
estuviera totalmente muerto, y no funcionara el teclado, apretando el
botón de apagado de la torre -y con acpid o apmd instalado- el sistema
entenderá lo mismo que un SysRq + S,I,B. Como veis, el ctrl-alt-supr
de Windows es basura comparado con los métodos de recuperación
existentes en linux.

Fuente: http://weblog.topopardo.com/archives/000115.html



Preguntas similares