Cómo habilitar todas las funciones SYSRQ en Linux
- 2560
- 333
- Sta. Enrique Santiago
Objetivo
Aprenda cómo habilitar las funciones SYSRQ y cómo usar Invocarlas usando las teclas de comando.
Requisitos
- Permisos de raíz
- Linux Kernel compilado con la opción "config_magic_sysrq" habilitada
Convenciones
- # - requiere que los comandos de Linux dados se ejecuten con privilegios raíz
directamente como usuario raíz o mediante el uso desudo
dominio - ps - Requiere que los comandos de Linux dados se ejecuten como un usuario regular no privilegiado
Introducción
La combinación de clave SYSRQ se puede usar para enviar comandos directamente al núcleo de Linux en algunas circunstancias específicas: el núcleo responderá a los comandos enviados con claves de comando
inmediatamente, a menos que esté completamente bloqueado. Varios claves de comando
lograr tareas específicas, y se pueden combinar para restaurar el sistema a un estado seguro, o para obtener un reinicio limpio cuando nada más funciona: esto es lo que podemos obtener con el reisub
secuencia.
En este tutorial veremos cómo habilitar todas las funciones SYSRQ utilizando una instalación estándar de Ubuntu 18.04 - Beaver biónico
como base.
La llave mágica sysrq
El Sysrq
La combinación de teclas consta de tres teclas para presionar juntas: Alt + sysrq + clave de comando
. Puede que te preguntes qué es el Sysrq
Key en tu teclado. Suponiendo que esté utilizando un teclado Qwerty, el Sysrq
La clave corresponde al imprimir
llave.
Finalmente, una tecla de comando es una tecla en el teclado que cuando se presiona en este modo especial, enviará inmediatamente un comando al núcleo. Veremos algunas de estas claves y las funciones asociadas con ellas en un momento, pero antes de continuar debemos estar seguros de que el núcleo que estamos usando ha sido compilado con la opción necesaria habilitada.
La opción config_magic_sysrq kernel
Como se dijo anteriormente, para el Sysrq
Combinación clave para trabajar, el núcleo debe haberse construido con el Config_magic_sysrq
Opción habilitada. Este suele ser el caso en todas las distribuciones principales, sin embargo, puede ser útil saber cómo verificar su estado. Así es como podemos hacerlo. Lo primero que queremos saber es la versión y el nombre del kernel que estamos usando. Obtener esta información es muy fácil, solo ejecutamos:
$ uname -r 4.13.0-25-genérico
Como probablemente sepa, el tu nombre
El comando se utiliza para recuperar alguna información del sistema. En este caso lo usamos con el -riñonal
bandera, como solo queríamos saber sobre el liberación de núcleo
.El resultado del comando ha sido 4.13.0-25-genérico
: Ese es el nombre del núcleo utilizado por nuestro sistema. Ahora podemos mirar dentro del /bota
Directorio para el archivo de configuración correspondiente: este archivo contiene todas las opciones con las que se ha compilado el kernel. Podemos buscar el valor utilizado para Config_magic_sysrq
en eso:
$ LS /BOOT ABI-4.13.0-25 Genérico initrd.IMG-4.13.0-25 Genérico Memtest86+_Multiboot.bin config-4.13.0-25 Genérico Memtest86+.sistema bin.mapa 4.13.0-25 GRUB GRUB MEMTEST86+.elfo vmlinuz-4.13.0-25-genérico
Como se esperaba, el archivo está presente: config-4.13.0.25-Genérico
es lo que estamos buscando. Ahora tenemos todo lo que necesitamos, hagamos el cheque:
$ Grep -i config_magic_sysrq /boot /config -4.13.0-25-Generic config_magic_sysrq = y config_magic_sysrq_default_enable = 0x01b6 config_magic_sysrq_serial = y
Como puede ver en la primera línea, la opción Config_magic_sysrq
tiene Y
como su valor, lo que significa que se estableció como incorporado cuando se configuró el núcleo. ¿Qué representan las otras líneas?? El Config_magic_sysrq_default_enable
La opción especifica las funciones predeterminadas habilitadas: el valor se expresa en hexadecimal
forma, en este caso 0x01b6
que corresponde a 438
en forma decimal.
Como veremos más adelante en este tutorial, este valor significa que la mayoría de las funcionalidades están habilitadas de forma predeterminada. Sin embargo, la mayoría de las distribuciones deshabilitan su invocación a través de la combinación de clave por razones de seguridad. La tercera opción no es muy importante para nosotros ahora: se trata de habilitar el Clave SYSRQ
sobre serie.
Verificar el valor actual de SYSRQ
La mayoría de las distribuciones deshabilitan el acceso a algunos de Sysrq
Funciones a través de combinaciones clave por razones de seguridad (sin embargo, todas las funcionalidades siempre están disponibles si se invoca a través de /proc/sysrq-tgger
con privilegios raíz). Para verificar cuáles son las funciones disponibles en nuestro sistema, podemos ejecutar:
$ cat/proc/sys/kernel/sysrq 176
El comando devolvió un valor de 176
. Cómo se obtiene este valor y qué significa? Cada valor corresponde a una determinada función, como puede ver en la lista a continuación:
0 - Desactive SYSRQ completamente 1 - Habilite todas las funciones de SYSRQ 2 - Habilite el control del nivel de registro de la consola 4 - Habilite el control del teclado (SAK, UNRAW) 8 - Habilite los vertederos de depuración de procesos, etc. 16 - Habilitar el comando de sincronización 32 - Habilitar solo lectura de lectura 64 - Habilitar señalización de procesos (término, kill, oom -kill) 128 - Permitir reinicio/poweroff 256 - Permitir el nombre de todas las tareas RT
Mientras que un valor de 0
deshabilita todo Sysrq
funciones y un valor de 1
habilita todos ellos, proporcionando valores más grandes que 1, podemos habilitar los específicos. Como se verificó anteriormente, tenemos un Sysrq
valor de 176
. Esto se obtiene de la suma de 128
(que permite reiniciar y poweroff) + 32
(Capacidad para montar los sistemas de archivos en modo de solo lectura) + dieciséis
, que habilita el comando de sincronización. De la misma manera, el valor de 438
se obtiene de la suma de 2 + 4 + 16 + 32 + 128 + 256, por lo que todas las funciones correspondientes están habilitadas.
Cómo cambiar el valor SYSRQ
Ahora sabemos qué Sysrq
El valor es, pero ¿cómo podemos cambiarlo?? Para cambiar inmediatamente este valor, solo tenemos que escribir el buscado al /proc/sys/kernel/sysrq
archivo, ejecutando:
# echo "1">/proc/sys/kernel/sysrq
De esta manera, el cambio será inmediatamente efectivo, pero no sobrevivirá a un reinicio. Cómo hacerlo persistente? Eso es muy simple. Una solución genérica, que funciona en todas las distribuciones de Linux, es poner el valor de núcleo.sysrq
en el /etc/sysctl.d/99-Sysctl.confusión
archivo:
# echo "núcleo.sysrq = 1 ">> /etc /sysctl.d/99-Sysctl.confusión
Observe cómo usamos el >>
Operador de redirección: esto agregará el texto al archivo y no anulará otras configuraciones que ya podría contener.
La secuencia de reisub
De todas las secuencias de clave de comando, reisub
es probablemente el mas famoso. Para recordar mejor esta secuencia, a menudo se usa como acrónimo para "criar elefantes es tan aburrido". ¿Qué logra esta secuencia?? Tenencia Clave Alt+SYSRQ
, Procedemos presionando las teclas de comando en secuencia, y esto es lo que sucede:
En primer lugar riñonal
cambia el teclado desde crudo
a Xlate
modo, entonces, mi
envía un Siglo
señal a todos los procesos, para que puedan cerrarse de manera elegante si es posible. Después de eso enviamos un Sigkill
señal presionando i
, Para terminar el proceso restante que no respondió a la señal anterior. Con s
Intentamos sincronizar todos los sistemas de archivos montados y enjuague todos los cambios desde el caché al disco inmediatamente. Mediante el uso u
Retrocedemos todos los sistemas de archivos en solo lectura
modo, y finalmente presionando b
, Realizamos un reinicio del sistema.
El reisub
La secuencia se puede usar en ciertas situaciones cuando el sistema se vuelve muy insensible, y otras soluciones no son suficientes para arreglar las cosas. Sin embargo, las claves de comando que componen esta secuencia son solo un subconjunto de las disponibles: para una lista completa, puede echar un vistazo a Sysrq
documentación del núcleo.
Tutoriales de Linux relacionados:
- Cosas para instalar en Ubuntu 20.04
- Comandos de Linux: los 20 comandos más importantes que necesitas ..
- Cosas que hacer después de instalar Ubuntu 20.04 fossa focal Linux
- Comandos básicos de Linux
- Cómo imprimir el árbol de directorio usando Linux
- Descarga de Linux
- Archivos de configuración de Linux: los 30 principales más importantes
- Instale Arch Linux en VMware Workstation
- La mejor distribución de Linux para desarrolladores
- Cosas que hacer después de instalar Ubuntu 22.04 Jellyfish de Jammy ..
- « Introducción a los niveles de registro del kernel de Linux
- Cómo configurar Amule y controlarlo a través de la interfaz web en una Raspberry Pi »