Fare il boot in modalità utente singolo

Un runlevel importante è la modalità a singolo utente (runlevel 1), in cui solo l'amministratore di sistema usa la macchina e girano il minor numero possibile di servizi di sistema, compresi i login. La modalità a utente singolo è necessaria per portare avanti dei compiti di amministrazione[1], come usare fsck sulla partizione /usr, il che richiede che la partizione non sia montata, cosa che non può accadere a meno che quasi tutti i servizi di sistema non vengano uccisi.

Si può portare un sistema funzionante in modalità utente singolo usando il comando telinit per richiedere il runlevel 1. All'avvio ci si può entrare dando single o emergency sulla linea di comando del kernel: il kernel passa la linea di comando anche ad init, ed init riconosce così che non deve usare il runlevel di default (la linea di comando del kernel viene attivata in modi diversi a seconda di come avviate il sistema).

Fare il boot in modalità utente singolo talvolta è necessario per poter usare fsck a mano, prima che vengano montate delle partizioni o che venga toccata una partizione /usr corrotta (qualsiasi attività su un filesystem corrotto probabilmente lo rovinerà ancora di più, quindi bisogna usarci fsck il prima possibile).

Gli script di avvio che init usa fanno entrare automaticamente in modalità utente singolo se l'fsck automatico al boot fallisce, in modo da evitare che il sistema usi un filesystem talmente rovinato da non poter essere riparato da fsck. Una cosa del genere è relativamente rara, e di solito comporta che l'hard disk sia rotto o che si stia usando una versione del kernel sperimentale, ma è bene essere preparati.

Come misura di sicurezza, un sistema configurato correttamente chiederà la password di root prima di avviare una shell in modalità utente singolo, altrimenti sarebbe facile dare una linea a LILO per entrare come root (non funzionerà se il file /etc/passwd è stato rovinato da problemi al filesystem, naturalmente, ed il quel caso sarà meglio avere un floppy di boot a portata di mano).

Note

[1]

Non dovrebbe essere usata per giocare a nethack.