Guida verificata con Ubuntu: 20.04

Problemi in questa pagina? Segnalali in questa discussione

Introduzione

Il kernel Linux offre una modalità di comunicazione a basso livello che permette l'esecuzione di comandi importanti, come l'arresto del sistema, con una semplice combinazione di tasti, chiamata MagicSysReq, composta da Alt+R Sist+Tasto (equivalente a Alt+Stamp+Tasto nella maggior parte delle tastiere).

L'evento generato dalla pressione di questi tasti, ha priorità assoluta su tutti gli altri processi attivi sul sistema, a prescindere anche dallo stato attuale del sistema stesso.

Proprio per questa proprietà, la combinazione MagicSysReq viene spesso usata per recuperare o riavviare un sistema bloccato in modalità sicura, senza corrompere i filesystem.

Normalmente tale combinazione funziona sempre, anche quando sembra che la tastiera non risponda, lo schermo sia bloccato, Ctrl+Alt+Canc non genera nessun cambiamento e sia impossibile accedere alle varie console virtuali.

Se si utilizza un kernel non precompilato, è opportuno verificare che sia stata abilitata l'opzione !CONFIG_MAGIC_SYSRQ, senza la quale la combinazione di tasti non può funzionare.

Abilitazione delle combinazioni di tasti

Per motivi di sicurezza potrebbe essere opportuno abilitare o disabilitare le MagicSysReq in base alle proprie necessità.

Per attivare digitare nel terminale il seguente comando:

sudo su -c 'echo 1 > /proc/sys/kernel/sysrq'

Per disattivare digitare nel terminale il seguente comando:

sudo su -c 'echo 0 > /proc/sys/kernel/sysrq'

Per verificare lo stato d'attivazione digitare nel terminale il seguente comando:

cat /proc/sys/kernel/sysrq

Nel caso appaia un valore numerico differente da 1 o 0, per significato e impostazione consultare il paragrafo Attivazione parziale.

Impostazioni permanenti

Per rendere permanenti le impostazioni seguire questi passaggi.

  1. Aprire coi privilegi di amministrazione e con un editor di testo il file /etc/sysctl.conf.

  2. Rimuovere il # all'inizio della riga #kernel.sysrq=n e sostituirne il numero n col numero 1.

  3. Salvare e chiudere il file.

Il file /etc/sysctl.conf è presente anche come collegamento simbolico nella directory /etc/sysctl.d/ col nome di 99-sysctl.conf.

Lista delle combinazioni

la seguente tabella mostra la lista di tasti usati colla combinazione Alt+Stamp colle tastiere di tipo QWERTY), colle azioni eseguite sul sistema:

Tasto

Significato parametro

0-9

Imposta il livello di log

B

Riavvia il sistema senza smontare le partizioni o sincronizzare i dischi

C

Riavvia il servizio kexec e produce un listato del sistema contenente tutte le informazioni sul blocco occorso

D

Mostra i Lock attivi

E

Invia il segnale SIGTERM a tutti i processi eccetto init

F

Termina il processo più esoso per memoria occupata

G

Usando il Kernel Mode Setting commuta alla console framebuffer del kernel, in presenza del Kernel Debugger (kdb) l'attiva

H

Mostra la guida in un terminale

I

Invia il segnale SIGKILL a tutti i processi eccetto init

J

Forza lo sblocco dei filesystem bloccati dal ioctl FIFREEZE

K

Termina tutti i processi listati nel terminale allo scopo di forzare la chiusura delle applicazioni grafiche

L

Invia il segnale SIGKILL a tutti i processi, incluso init

M

Mostra nel terminale le informazioni correnti sulla memoria

N

Azzera il livello del Nice di tutti i processi prioritari

O

Arresta il sistema

P

Invia al terminale le informazioni sui registri e le opzioni selezionate

Q

Mostra i timer e la fonte clock

R

Commuta la tastiera dalla modalità raw alla modalità XLATE

S

Sincronizza tutti i filesystem montati

T

Mostra nel terminale la lista dei processi attivi e le relative informazioni

U

Rimonta tutti i filesystem in sola lettura

V

Mostra le informazioni sul processore SMP Voyager

W

Mostra la lista dei processi bloccati (in stato D)

X

Mostra i registri dei processori con architettura SPARC-64

Y

Produce un listato del buffer ftrace

Z

Stampa la lista dei tasti MagicSysReq attivi

Durante l'uso di un ambiente grafico tali combinazioni di tasti potrebbero non funzionare correttamente, a causa delle interferenze con le scorciatoie da tastiera gestite dallo stesso ambiente, come ad esempio il tasto Stamp, solitamente associato alla cattura dell'area di lavoro corrente; per tale motivo si consiglia di provare le MagicSysReq solo su console virtuali tty o a sistema bloccato.

Attivazione parziale

Normalmente la MagicSysReq è preimpostata a usare dei parametri limitati, impostati tramite un valore numerico sommabili, in Ubuntu tipicamente a 176.

La seguente tabella mostra il significato d'ogni valore numerico:

Tasto

Significato parametro

0

Disabilita completamente MagicSysReq

1

Abilita completamente MagicSysReq

2

Abilita controllo del livello dei log console

4

Abilita controllo della tastiera

8

Abilita il debug dei listati dei processori

16

Abilita comando Sync

32

Abilita il rimontaggio in solo lettura

64

Abilita segnalamento dei processi Term e Kill

128

Permette riavvio/spegnimento

256

Permette il controlla il livello del Nice di tutti i task Real Time

Sistemi in remoto

È possibile eseguire una MagicSysReq anche su macchine remote.

Per eseguire le combinazioni sopra elencate è sufficiente reindirizzare con i privilegi di amministrazione le varie variabili, tramite il comando echo, sul file /proc/sysrq-trigger. Per esempio, se si desidera riavviare il sistema con la combinazione Alt+Stamp+B, una volta autenticati, digitare nel terminale il seguente comando:

sudo su -c 'echo B > /proc/sysrq-trigger'

Utilizzi comuni

Per effettuare un riavvio sicuro su un sistema bloccato è sufficiente utilizzare la serie di combinazioni Alt+Stamp+R E I S U B, prestando attenzione a premere i tasti nell'ordine sopra indicato e ad un paio di secondi di distanza l'uno dall'altro.

In alcuni casi, dopo l'uso delle combinazioni Alt+Stamp+E e Alt+Stamp+I, si ottiene nuovamente il controllo del sistema, evitando dunque il riavvio del sistema.

Ulteriori risorse


CategoryAmministrazione

AmministrazioneSistema/MagicSysReq (l'ultima modifica è del 23/11/2023 02.15.04, fatta da jeremie2)