#format wiki #LANGUAGE it <
> <> <> <> = Introduzione = È possibile accedere direttamente a un sistema ospite di '''KVM''' utilizzando come interfaccia una console seriale. Questo metodo fornisce un accesso a basso livello alla macchina virtuale, utile per il debugging, per accedere a sistemi senza interfaccia di rete funzionante, o per un'alternativa all'accesso tramite SSH o altre connessioni di rete. L'accesso avviene tramite [[http://linux.die.net/man/1/virsh|virsh]], l'interfaccia a [[AmministrazioneSistema/Terminale|riga di comando]] per [[http://libvirt.org/|libvirt]]. = Configurare una console seriale nel sistema ospite = Per abilitare l'accesso seriale, è necessario configurare sia il sistema ospite che l'host '''KVM'''. == Lato Ospite (all'interno della Macchina Virtuale) == Per Ubuntu 18.04 e versioni successive (inclusa la 22.04), [[AmministrazioneSistema/Systemd|systemd]] gestisce i servizi di console seriale. 0. Aggiungere una console seriale alla configurazione del kernel GRUB (all'interno della VM). Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministratore]] il file `/etc/default/grub`:{{{ sudo nano /etc/default/grub }}} Trovare la riga `GRUB_CMDLINE_LINUX_DEFAULT` e `GRUB_CMDLINE_LINUX` e aggiungere:{{{ console=ttyS0,115200 }}} Salvare e chiudere il file. Aggiornare GRUB (all'interno della VM):{{{ sudo update-grub }}} 0. Abilitare il servizio `getty` per la console seriale (all'interno della VM). I sistemi basati su [[AmministrazioneSistema/Systemd|systemd]] su Ubuntu 18.04+ gestiscono automaticamente i servizi `ttyS0.service`. Per assicurarsi che sia abilitato, digitando:{{{ sudo systemctl enable serial-getty@ttyS0.service sudo systemctl start serial-getty@ttyS0.service }}} {{{#!wiki note Se si usano le istruzioni del ttyS0.conf per `upstart`, come nell'esempio originale, quel metodo è obsoleto per Ubuntu 18.04+ e non dovrebbe essere utilizzato. }}} 0. Riavviare la Macchina Virtuale, necessario per applicare le modifiche a GRUB e avviare il servizio getty. == Lato Host (Macchina fisica che esegue KVM) == Assicurarsi che la macchina virtuale abbia un dispositivo seriale configurato nel suo hardware virtuale. Le VM create con `virt-manager` o `virt-install` di solito includono un dispositivo seriale per impostazione predefinita. Per verificare o aggiungere un dispositivo seriale: * Tramite '''virt-manager (GUI)''': 0. Aprire `virt-manager` e selezionare la VM. 0. Cliccare sull'icona "Mostra dettagli hardware" (icona "i"). 0. Cercare "Console Seriale" nell'elenco Hardware. Se non presente, cliccare "Aggiungi hardware" e selezionare "Seriale". Assicurarsi che "Tipo di destinazione" sia `pty` e "Percorso di origine" sia un dispositivo pseudo-terminale. * Tramite '''virsh edit (CLI)''': 0. Eseguire su un [[AmministrazioneSistema/Terminale|terminale]] dell'host `virsh edit [nome_della_vm]`. {{{#!wiki note Sostituire [nome_della_vm] con il nome effettivo della macchina virtuale. }}} 0. Assicurarsi che esista una sezione e simile a questa:{{{ }}} Salvare e chiudere il file XML. == Configurazione della variabile TERM (opzionale) == La variabile d'ambiente TERM indica il tipo di terminale in uso. Impostarla correttamente può migliorare l'esperienza della console seriale. Per verificare la variabile TERM nel terminale host/client:{{{ echo $TERM }}} Per esempio, se si sta eseguendo screen sarà «screen», per byobu sarà «screen-bce», ecc. È anche possibile impostare la variabile temporaneamente quando si è già connessi alla console, con il comando:{{{ export TERM=screen }}} Si consiglia di utilizzare un tipo di terminale generico e ampiamente supportato come `xterm` o `screen`. = Connessione alla console seriale = 0. Connettersi alla sessione qemu:///system. Eseguire il seguente comando in un [[AmministrazioneSisteam|terminale]] dell'host:{{{ virsh -c qemu:///system }}} Si entrerà nella shell interattiva di virsh. 0. Avviare la macchina virtuale (se non già avviata). Nella shell virsh, digitare:{{{ start [nome_della_vm] }}} {{{#!wiki note Sostituire [nome_della_vm] con il nome effettivo della macchina virtuale. }}} 0. Connettersi alla console. Quando la VM sarà avviata, connettersi alla sua console seriale digitando:{{{ console [nome_della_vm] }}} {{{#!wiki note Sostituire [nome_della_vm] con il nome effettivo della macchina virtuale. }}} 0. Premere "Invio" per arrivare alla richiesta di autenticazione e autenticarsi come di consueto. {{{#!wiki important L'input per il nome utente è attivo anche se la richiesta di autenticazione non dovesse essere immediatamente visualizzata. }}} = Uscire dalla console seriale di virsh = Utilizzare la combinazione di tasti `Ctrl` + `]`. = Risoluzione Problemi = == La console si comportarta in modo inatteso (caratteri strani, problemi di visualizzazione) == Controllare che la variabile d'ambiente TERM sia impostata correttamente. == Il terminale taglia la parte superiore della visualizzazione == Impostare la finestra del [[AmministrazioneSistema/Terminale|terminale]] per avere un'area visualizzata standard (es. 80x24 caratteri). = Ulteriori risorse = * [[https://help.ubuntu.com/community/KVM/Access|Documento originale]] (Community Ubuntu) * [[https://libvirt.org/|Sito ufficiale di Libvirt]] * [[https://wiki.ubuntu.com/Kernel/SerialConsole|Guida alla console seriale su Ubuntu (pagina generica)]] ---- ##CategoryVirtualizzazione CategoryHomepage CategoryNuoviDocumenti