Como ativar todas as funções SYSRQ no Linux

Como ativar todas as funções SYSRQ no Linux

Objetivo

Aprenda a ativar as funções SYSRQ e como usar invocá -las usando as chaves de comando.

Requisitos

  • Permissões de raiz
  • Linux Kernel compilado com a opção "Config_Magic_sysrq" habilitada

Convenções

  • # - requer que os comandos Linux sejam executados com privilégios de raiz também
    diretamente como usuário root ou por uso de sudo comando
  • $ - Requer que os comandos do Linux sejam executados como um usuário não privilegiado regular

Introdução

A combinação de teclas SYSRQ pode ser usada para enviar comandos diretamente para o kernel Linux em algumas circunstâncias específicas: o kernel responderá aos comandos enviados com chaves de comando imediatamente, a menos que esteja completamente bloqueado. Vários chaves de comando alcançar tarefas específicas e elas podem ser combinadas para restaurar o sistema a um estado seguro ou para obter uma reinicialização limpa quando nada mais funciona: é isso que podemos obter com o Reisub seqüência.

Neste tutorial, veremos como ativar todas as funções SYSRQ usando uma instalação padrão de Ubuntu 18.04 - Bionic Beaver como uma base.

A chave mágica sysrq

O Sysrq A combinação de teclas consiste em três chaves a serem pressionadas juntas: Chave de comando alt + sysrq +. Você pode estar se perguntando o que é o Sysrq Chave no seu teclado. Supondo que você esteja usando um teclado Qwerty, o Sysrq a chave corresponde ao imprimir chave.

Finalmente, uma tecla de comando é uma chave no teclado que, quando pressionada neste modo especial, enviará imediatamente um comando para o kernel. Veremos algumas dessas chaves e as funções associadas a elas em um momento, mas antes de prosseguir, devemos ter certeza de que o kernel que estamos usando foi compilado com a opção necessária habilitada.



A opção config_magic_sysrq

Como dito acima, para o Sysrq Combinação de chave para funcionar, o kernel deve ter sido construído com o Config_magic_sysrq opção ativada. Geralmente é o caso em todas as principais distribuições, no entanto, pode ser útil saber como verificar seu estado. Aqui está como podemos fazer isso. A primeira coisa que queremos saber é a versão e o nome do kernel que estamos usando. Obter essas informações é muito fácil, apenas executamos:

$ uname -r 4.13.0-25-Generic 

Como você provavelmente sabe, o uname O comando é usado para recuperar algumas informações do sistema. Nesse caso, o usamos com o -r bandeira, como queríamos apenas saber sobre o liberação do kernel.O resultado do comando foi 4.13.0-25-Generic: esse é o nome do kernel usado pelo nosso sistema. Agora podemos olhar para dentro do /bota Diretório para o arquivo de configuração correspondente: este arquivo contém todas as opções que o kernel foi compilado com. Podemos procurar o valor usado para Config_magic_sysrq iniciar:

$ ls /bota abi-4.13.0-25 Initrd genérico.IMG-4.13.0-25 memtestest86+_multiboot.Bin Config-4.13.0-25 Memtestest86+.sistema de bin.mapa-4.13.0-25 GRUB-GENERÍCULO MEMTEST86+.ELF VMLINUZ-4.13.0-25-Generic 

Como esperado, o arquivo está presente: Config-4.13.0.25-genérico é o que estamos procurando. Agora temos tudo o que precisamos, vamos fazer o cheque:

$ grep -i config_magic_sysrq /boot /config -4.13.0-25-generérico config_magic_sysrq = y config_magic_sysrq_default_enable = 0x01b6 config_magic_sysrq_serial = y 

Como você pode ver na primeira linha, a opção Config_magic_sysrq tem y como seu valor, o que significa que foi incorporado quando o kernel foi configurado. O que as outras linhas representam? O Config_magic_sysrq_default_enable a opção especifica as funções padrão ativadas: o valor é expresso em hexadecimal forma, neste caso 0x01b6 que corresponde a 438 em forma decimal.

Como veremos mais adiante neste tutorial, esse valor significa que a maioria das funcionalidades é ativada por padrão. No entanto, a maioria das distribuições desabilita sua invocação por meio da combinação de chave por razões de segurança. A terceira opção não é muito importante para nós agora: trata -se de permitir o Chave sysrq sobre serial.



Verificando o valor atual do SYSRQ

A maioria das distribuições desative o acesso a alguns dos Sysrq funções por meio de combinações -chave por razões de segurança (todas as funcionalidades estão sempre disponíveis se invocadas via /proc/sysrq-grigger com privilégios de raiz). Para verificar quais são as funções disponíveis em nosso sistema, podemos simplesmente executar:

$ cat/proc/sys/kernel/sysrq 176 

O comando retornou um valor de 176. Como esse valor é obtido e o que faz? Todo valor corresponde a uma determinada função, como você pode ver na lista abaixo:

0 - Desativar SYSRQ completamente 1 - Ativar todas as funções do SYSRQ 2 - Ativar o controle do nível de registro do console Nível 4 - Habilite o controle do teclado (Sak, Intrew) 8 - Ativar depuração de depuração de processos etc. 16 - Ativar comando de sincronização 32 - Ativar remount somente leitura 64 - Ativar sinalização de processos (termo, matar, oom -kill) 128 - permitir a reinicialização/poweroff 256 - Permitir uma aparência de todas as tarefas de RT 

Enquanto um valor de 0 desativa tudo Sysrq funções e um valor de 1 Ativa todos eles, fornecendo valores maiores que 1, podemos ativar os específicos. Como verificado acima, temos um Sysrq valor de 176. Isso é obtido da soma de 128 (que permite a reinicialização e o PowerOff) + 32 (Capacidade de remontar os sistemas de arquivos no modo somente leitura) + 16, que permite o comando de sincronização. Da mesma maneira, o valor de 438 é obtido da soma de 2 + 4 + 16 + 32 + 128 + 256, portanto todas as funções correspondentes estão ativadas.

Como alterar o valor SYSRQ

Agora sabemos o que o Sysrq valor é, mas como podemos mudar? Para alterar imediatamente esse valor, apenas temos que escrever o desejado para o /proc/sys/kernel/sysrq Arquivo, executando:

# echo "1">/proc/sys/kernel/sysrq

Dessa forma, a mudança será imediatamente eficaz, mas não sobreviverá a uma reinicialização. Como torná -lo persistente? Isso é muito simples. Uma solução genérica, que funciona em todas as distribuições Linux, é colocar o valor de núcleo.Sysrq no /etc/sysctl.D/99-SYSCTL.conf arquivo:

# eco "kernel.sysrq = 1 ">> /etc /sysctl.D/99-SYSCTL.conf

Observe como usamos o >> Operador de redirecionamento: isso anexará o texto ao arquivo e não substituirá outras configurações.



A sequência de Reisub

De todas as seqüências de chave de comando, Reisub é provavelmente o mais famoso. Para se lembrar melhor dessa sequência, é frequentemente usada como sigla para "criar elefantes é tão chata". O que essa sequência realiza? Contenção Chave Alt+Sysrq, Continuamos pressionando as teclas de comando em sequência, e é isso que acontece:

Em primeiro lugar r alterna o teclado de cru para Xlate modo, então, e envia a Sigterm sinalize para todos os processos, para que eles possam ser fechados de uma maneira graciosa se puder. Depois disso, enviamos um Sigkill sinal pressionando eu, para encerrar o processo restante que não respondeu ao sinal anterior. Com s Tentamos sincronizar todos os sistemas de arquivos montados e liberar todas as alterações do cache para o disco imediatamente. Usando você Remosntamos todos os sistemas de arquivos em somente leitura modo, e finalmente pressionando b, Nós realizamos uma reinicialização do sistema.

O Reisub A sequência pode ser usada em determinadas situações em que o sistema se torna muito que não responde, e outras soluções não são suficientes para consertar as coisas. As chaves de comando que compõem essa sequência são, no entanto, apenas um subconjunto dos disponíveis: para uma lista completa, você pode dar uma olhada no Sysrq Documentação do kernel.

Tutoriais do Linux relacionados:

  • Coisas para instalar no Ubuntu 20.04
  • Comandos Linux: os 20 comandos mais importantes que você precisa para…
  • Coisas para fazer depois de instalar o Ubuntu 20.04 fossa focal linux
  • Comandos básicos do Linux
  • Como imprimir a árvore do diretório usando o Linux
  • Download do Linux
  • Arquivos de configuração do Linux: os 30 primeiros mais importantes
  • Instale Arch Linux na estação de trabalho VMware
  • Melhor distro Linux para desenvolvedores
  • Coisas para fazer depois de instalar o Ubuntu 22.04 Jellyfish…