Usa la console seriale per accedere a GRUB e alla modalità utente singolo
Si applica a: ✔️ macchine virtuali di Linux
Nota
CentOS a cui si fa riferimento in questo articolo è una distribuzione Linux e raggiungerà End Of Life (EOL). Valutare le proprie esigenze e pianificare di conseguenza. Per altre informazioni, vedere Indicazioni sulla fine della vita di CentOS.
GRand Unified Bootloader (GRUB) è probabilmente la prima cosa che vedi quando avvii una macchina virtuale (VM). Poiché viene visualizzato prima dell'avvio del sistema operativo, GRUB non è accessibile tramite SSH. In GRUB, puoi modificare la configurazione di avvio per l'avvio in modalità utente singolo, tra le altre cose.
La modalità utente singolo è un ambiente minimo con funzionalità minime. Può essere utile per indagare su problemi di avvio, di file system o di rete. I servizi in background sono meno numerosi e, a seconda del livello di esecuzione, un file system potrebbe non essere montato automaticamente.
La modalità utente singolo è utile anche in situazioni in cui la macchina virtuale potrebbe essere configurata per accettare solo chiavi SSH per l'accesso. In questo caso, potresti essere in grado di utilizzare la modalità utente singolo per creare un account con autenticazione tramite password.
Nota
Il servizio Console seriale consente solo agli utenti con autorizzazioni di livello collaboratore o superiore di accedere alla console seriale di una macchina virtuale.
Per accedere alla modalità utente singolo, inserisci GRUB durante l'avvio della VM e modifica la configurazione di avvio in GRUB. Vedere le istruzioni dettagliate per l'accesso a GRUB nella sezione successiva. In generale, se la tua VM è stata configurata per visualizzare GRUB, puoi utilizzare il pulsante di riavvio all'interno della console seriale della tua VM per riavviare la VM e visualizzare GRUB.
Accesso GRUB generale
Per accedere a GRUB, riavvia la VM mentre il pannello della console seriale è aperto. Alcune distribuzioni richiedono l'input da tastiera per mostrare GRUB e altre mostrano automaticamente GRUB per alcuni secondi per consentire all'input da tastiera dell'utente di annullare il timeout.
Per poter accedere alla modalità utente singolo, devi assicurarti che GRUB sia abilitato sulla tua VM. A seconda della distribuzione, potrebbero essere necessarie alcune operazioni di configurazione per garantire che GRUB sia abilitato. Per informazioni specifiche sulla distribuzione, vedere la sezione successiva.
Riavvia la tua VM per accedere a GRUB nella console seriale
Puoi riavviare la VM all'interno della console seriale passando con il mouse sopra il pulsante Riavvia e quindi selezionando Riavvia VM. Una notifica relativa al riavvio viene visualizzata nella parte inferiore del riquadro.
Puoi anche riavviare la VM eseguendo un comando SysRq "b" se SysRq è abilitato. Per sapere cosa aspettarsi da GRUB al riavvio, vedere le istruzioni specifiche della distribuzione nelle sezioni successive.
Accesso generale in modalità utente singolo
Potrebbe essere necessario l'accesso manuale alla modalità utente singolo quando non è stato configurato un account con l'autenticazione tramite password. Modificare la configurazione di GRUB per accedere manualmente alla modalità utente singolo. Dopo aver eseguito questa operazione, vedere la sezione "Utilizzare la modalità utente singolo per reimpostare o aggiungere una password" per ulteriori istruzioni.
Se la VM non è in grado di avviarsi, le distribuzioni spesso ti portano automaticamente in modalità utente singolo o in modalità di emergenza. Altre distribuzioni, invece, richiedono una configurazione aggiuntiva, come l'impostazione di una password di root, prima di poter passare automaticamente in modalità utente singolo o di emergenza.
Utilizzare la modalità utente singolo per reimpostare o aggiungere una password
Dopo essere in modalità utente singolo, aggiungi un nuovo utente con privilegi sudo procedendo come segue:
- Eseguire
useradd <username>
per aggiungere un utente. - Eseguire
sudo usermod -a -G sudo <username>
per concedere al nuovo utente i privilegi di root. - Utilizzare
passwd <username>
per impostare la password del nuovo utente. È quindi possibile accedere come nuovo utente.
Accesso per Red Hat Enterprise Linux (RHEL)
Se RHEL non può avviarsi normalmente, ti porta automaticamente in modalità utente singolo. Tuttavia, se non si è impostato l'accesso root per la modalità utente singolo, non si avrà una password di root e non si potrà accedere. Esiste una soluzione alternativa (consultare la sezione "Entrare manualmente in modalità utente singolo in RHEL"), ma si consiglia di impostare inizialmente l'accesso di root.
Accesso GRUB in RHEL
RHEL viene fornito con GRUB abilitato per impostazione predefinita. Per accedere a GRUB, riavviare la macchina virtuale eseguendo sudo reboot
, quindi premere un tasto qualsiasi. Dovrebbe essere visualizzato il riquadro GRUB. In caso contrario, assicurati che le seguenti righe siano presenti nel tuo file GRUB (/etc/default/grub
):
Per RHEL 8
Nota
Red Hat consiglia di utilizzare Grubby per configurare i parametri della riga di comando del kernel in RHEL 8. Al momento non è possibile aggiornare il timeout di grub e i parametri del terminale utilizzando grubby. Per modificare aggiornare l'argomento GRUB_CMDLINE_LINUX per tutte le voci di avvio, eseguire grubby --update-kernel=ALL --args="console=ttyS0,115200 console=tty1 console=ttyS0 earlyprintk=ttyS0"
. Maggiori dettagli sono disponibili qui.
GRUB_TIMEOUT=5
GRUB_TERMINAL="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0 earlyprintk=ttyS0"
Per RHEL 7
GRUB_TIMEOUT=5
GRUB_TERMINAL_OUTPUT="serial console"
GRUB_CMDLINE_LINUX="console=tty1 console=ttyS0,115200n8 earlyprintk=ttyS0,115200 net.ifnames=0"
Nota
Red Hat fornisce anche la documentazione per l'avvio in modalità Rescue, Emergency Mode o Debug Mode e per reimpostare la password di root. Per istruzioni, vedere Modifica del menu del terminale durante l'avvio.
Configurare l'accesso root per la modalità utente singolo in RHEL
L'utente root è disabilitato per impostazione predefinita. La modalità utente singolo in RHEL richiede che l'utente root sia abilitato. Se è necessario abilitare la modalità utente singolo, utilizzare le seguenti istruzioni:
- Accedi al sistema Red Hat tramite SSH.
- Passa alla root.
- Abilitare la password per l'utente radice eseguendo le operazioni seguenti:
- Esegui
passwd root
(imposta una password di root sicura).
- Esegui
- Assicurati che l'utente root possa accedere solo tramite ttyS0 procedendo come segue: a. Esegui
vi /etc/ssh/sshd_config
e assicurati che PermitRootLogIn sia impostato suno
. b. Eseguivi /etc/securetty file
per consentire l'accesso solo tramite ttyS0.
Ora, se il sistema si avvia in modalità utente singolo, puoi accedere con la password di root.
In alternativa, per RHEL 7.4 o 6.9, per abilitare la modalità utente singolo nei prompt di GRUB, vedere Avvio in modalità utente singolo.
Immettere manualmente la modalità utente singolo in RHEL
Se hai configurato GRUB e l'accesso root utilizzando le istruzioni precedenti, puoi accedere alla modalità utente singolo procedendo come segue:
Per accedere a GRUB, premi Esc mentre riavvii la VM.
In GRUB, premi E per modificare il sistema operativo in cui desideri eseguire l'avvio. Il sistema operativo è solitamente elencato nella prima riga.
Trova la riga del kernel. In Azure inizia con linux o linux16.
Premi Ctrl+E per andare alla fine della riga.
Alla fine della riga, aggiungi systemd.unit=rescue.target.
Questa azione ti avvia in modalità utente singolo. Se desideri utilizzare la modalità di emergenza, aggiungi systemd.unit=emergency.target alla fine della riga (invece di systemd.unit=rescue.target).
Premi Ctrl+X per uscire e riavviare con le impostazioni applicate.
Ti verrà richiesta la password dell'amministratore prima di poter accedere alla modalità utente singolo. Questa password è quella che hai creato nelle istruzioni precedenti.
Entra in modalità utente singolo senza account root abilitato in RHEL
Se non hai abilitato l'utente root seguendo le istruzioni precedenti, puoi comunque reimpostare la tua password root procedendo come segue:
Nota
Se utilizzi SELinux, quando reimposti la password di root, assicurati di seguire i passaggi aggiuntivi descritti nella documentazione di Red Hat.
Per accedere a GRUB, premi Esc mentre riavvii la VM.
In GRUB, premi E per modificare il sistema operativo in cui desideri eseguire l'avvio. Il sistema operativo è solitamente elencato nella prima riga.
Trova la riga del kernel. In Azure inizia con linux16.
Alla fine della riga, aggiungi rd.break alla fine della riga. Lascia uno spazio tra la riga del kernel e rd.break.
Questa azione interrompe il processo di avvio prima che il controllo passi da
initramfs
asystemd
, come descritto nella documentazione di Red Hat.Premi Ctrl+X per uscire e riavviare con le impostazioni applicate.
Dopo il riavvio, si passa alla modalità di emergenza con un file system di sola lettura.
Nella shell, immettere
mount -o remount,rw /sysroot
per rimontare il file system radice con i permessi di lettura/scrittura.Dopo l'avvio in modalità utente singolo, immettere
chroot /sysroot
per passare alla jailsysroot
.Adesso si è nella radice ed è possibile iniziare a risolvere i problemi di sistema.
In RHEL, la modalità di applicazione di SELinux protegge il sistema operativo da eventuali modifiche. È possibile eseguire
touch /.autorelabel
per etichettare nuovamente il file system dopo la modifica della password.Al termine, immettere
reboot -f
per riavviare.
Nota
L'esecuzione delle istruzioni precedenti farà raggiungere la shell di emergenza in modo che si possano anche eseguire attività come la modifica di fstab
. Tuttavia, in genere suggeriamo di reimpostare la password radice e utilizzarla per accedere alla modalità utente singolo.
Accesso per CentOS
Proprio come Red Hat Enterprise Linux, la modalità utente singolo in CentOS richiede che GRUB e l'utente radice siano abilitati.
Accesso GRUB in CentOS
CentOS viene fornito con GRUB abilitato per impostazione predefinita. Per accedere a GRUB, riavviare la macchina virtuale VM immettendo sudo reboot
e quindi premere un tasto qualsiasi. Questa azione visualizza il riquadro di GRUB.
Modalità utente singolo in CentOS
Per abilitare la modalità utente singolo in CentOS, seguire le istruzioni precedenti per RHEL.
Accesso per Ubuntu
Le immagini di Ubuntu non richiedono una password radice. Se il sistema si avvia in modalità utente singolo, puoi utilizzarlo senza credenziali aggiuntive.
Accesso GRUB in Ubuntu
Per accedere a GRUB, tieni premuto Esc durante l'avvio della VM.
Per impostazione predefinita, le immagini di Ubuntu potrebbero non visualizzare automaticamente il riquadro GRUB. È possibile modificare l'impostazione procedendo come segue:
In un editor di testo, apri il file /etc/default/grub.d/50-cloudimg-settings.cfg.
Modificare il valore
GRUB_TIMEOUT
in un valore diverso da zero.In un editor di testo, apri /etc/default/grub.
Impostare la riga
GRUB_HIDDEN_TIMEOUT=1
come commento.Assicurarsi che sia presente una riga
GRUB_TIMEOUT_STYLE=menu
.Eseguire
sudo update-grub
.
Modalità utente singolo in Ubuntu
Se Ubuntu non può avviarsi normalmente, ti porta automaticamente in modalità utente singolo. Per accedere manualmente alla modalità utente singolo, procedere come segue:
- In GRUB, premi E per modificare la tua voce di avvio (la voce Ubuntu).
- Cerca la riga che inizia con linux, quindi cerca ro.
- Aggiungi single dopo ro, assicurandoti che ci sia uno spazio prima e dopo single.
- Premi Ctrl+X per riavviare con queste impostazioni e accedere alla modalità utente singolo.
Utilizzare GRUB per richiamare Bash in Ubuntu
Dopo aver provato le istruzioni precedenti, potrebbe verificarsi una situazione (come una password radice dimenticata) in cui non si è ancora in grado di accedere alla modalità utente singolo nella macchina virtuale Ubuntu. È possibile anche suggerire al kernel di eseguire /bin/bash
come inizializzazione, invece che come inizializzazione di sistema. Questa azione fornirà una shell Bsh e consente la manutenzione del sistema. Utilizzare le seguenti istruzioni:
In GRUB, premi E per modificare la tua voce di avvio (la voce Ubuntu).
Cerca la riga che inizia con linux, quindi cerca ro.
Sostituisci ro con rw init=/bin/bash.
Questa azione monta il file system in lettura-scrittura e utilizza
/bin/bash
come processo di inizializzazione.Premere Ctrl+X per eseguire il riavvio con queste impostazioni.
Accesso per CoreOS
La modalità utente singolo in CoreOS richiede che GRUB sia abilitato.
Accesso GRUB in CoreOS
Per accedere a GRUB, premi un tasto qualsiasi durante l'avvio della tua VM.
Modalità utente singolo in CoreOS
Se CoreOS non può avviarsi normalmente, ti porta automaticamente in modalità utente singolo. Per accedere manualmente alla modalità utente singolo, procedere come segue:
In GRUB, premi E per modificare la voce di avvio.
Cerca la riga che inizia con linux$. Dovrebbero esserci due istanze della riga, ciascuna incapsulata in una diversa clausola if...else.
Aggiungi coreos.autologin=ttyS0 alla fine di ogni riga linux$.
Premi Ctrl+X per riavviare con queste impostazioni e accedere alla modalità utente singolo.
Accesso per SUSE SLES
Le immagini più recenti di SLES 12 SP3 consentono l'accesso tramite la console seriale se il sistema si avvia in modalità di emergenza.
Accesso GRUB in SUSE SLES
L'accesso a GRUB in SLES richiede una configurazione del bootloader tramite YaST. Per creare la configurazione, procedere come segue:
Usa SSH per accedere alla tua macchina virtuale SLES, quindi esegui
sudo yast bootloader
. Premere Tab, premere Invio, quindi utilizzare i tasti freccia per spostarsi nel menu.Vai a Parametri kernel, quindi seleziona la casella di controllo Usa console seriale.
Aggiungi
serial --unit=0 --speed=9600 --parity=no
agli argomenti Console.Premere F10 per salvare le impostazioni e uscire.
Per accedere a GRUB, riavviare la macchina virtuale e premere un tasto qualsiasi durante la sequenza di avvio per mantenere visualizzato il riquadro GRUB.
Il timeout predefinito per GRUB è 1s. È possibile cambiare questa impostazione modificando la variabile
GRUB_TIMEOUT
nel file /etc/default/grub.
Modalità utente singolo in SUSE SLES
Se SLES non può avviarsi normalmente, verrai automaticamente inserito nella shell di emergenza. Per accedere manualmente alla shell di emergenza, procedi come segue:
In GRUB, premi E per modificare la voce di avvio (la voce SLES).
Cerca la riga del kernel che inizia con linux.
Aggiungi systemd.unit=emergency.target alla fine della riga del kernel.
Premi Ctrl+X per riavviare con queste impostazioni ed entrare nella shell di emergenza.
Nota
Questa azione ti porta nella shell di emergenza con un file system di sola lettura. Per modificare qualsiasi file, rimonta il file system con autorizzazioni di lettura-scrittura. Per farlo, inserisci
mount -o remount,rw /
nella shell.
Accesso per Oracle Linux
Analogamente a Red Hat Enterprise Linux, la modalità utente singolo in Oracle Linux richiede che GRUB e l'utente root siano abilitati.
Accesso GRUB in Oracle Linux
Oracle Linux viene fornito con GRUB abilitato per impostazione predefinita. Per accedere a GRUB, riavvia la VM eseguendo sudo reboot
, quindi premi Esc. Questa azione visualizza il riquadro GRUB. Se il riquadro GRUB non viene visualizzato, assicurati che il valore della riga GRUB_TERMINAL
contenga console seriale (ovvero, GRUB_TERMINAL="serial console"
). Ricompila GRUB con grub2-mkconfig -o /boot/grub/grub.cfg
.
Modalità utente singolo in Oracle Linux
Per abilitare la modalità utente singolo in Oracle Linux, seguire le istruzioni precedenti per RHEL.
Passaggi successivi
Per ulteriori informazioni sulla console seriale, vedere:
- Documentazione della console seriale Linux
- Utilizzare la console seriale per abilitare GRUB in varie distribuzioni
- Utilizza la console seriale per le chiamate NMI e SysRq
- Console seriale per macchine virtuali Windows
- Diagnostica di avvio
Contattaci per ricevere assistenza
In caso di domande o bisogno di assistenza, creare una richiesta di supporto tecnico oppure formula una domanda nel Supporto della community di Azure. È possibile anche inviare un feedback sul prodotto al feedback della community di Azure.