Como ativar todas as funções SYSRQ no Linux
- 879
- 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 desudocomando - $ - 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 »