Como ativar todas as funções SYSRQ no Linux
- 845
- 237
- Wendell Legros
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 desudo
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…
- « Introdução aos níveis de log do kernel Linux
- Como configurar o Amule e controlá -lo via interface da web em um Raspberry Pi »