#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: debugging, accedere a sistemi senza interfaccia di rete funzionante, alternativa all'accesso via SSH o altre connessioni di rete.
L'accesso avviene tramite [[http://linux.die.net/man/1/virsh|virsh]], interfaccia a [[AmministrazioneSistema/Terminale|riga di comando]] per [[http://libvirt.org/|libvirt]].
= Configurare console seriale nel sistema ospite =
Per abilitare l'accesso seriale è necessario configurare sia il sistema ospite che l'host '''KVM'''.
== Lato ospite (interno alla macchina virtuale) ==
Da Ubuntu 18.04 in poi [[AmministrazioneSistema/Systemd|systemd]] gestisce i servizi di console seriale.
0. Aggiungere una console seriale alla configurazione del kernel GRUB (all'interno della VM) aprendo con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/PrivilegiDiAmministrazione/Sudo|privilegi di amministratore]] il file `/etc/default/grub`, ad esempio:{{{
sudo nano /etc/default/grub
}}}
0. Trovare la riga `GRUB_CMDLINE_LINUX_DEFAULT` e `GRUB_CMDLINE_LINUX` e aggiungere:{{{
console=ttyS0,115200
}}}e quindi salvare e chiudere il file.
0. Aggiornare '''GRUB''':{{{
sudo update-grub
}}}
0. Abilitare il servizio '''getty''' per la console seriale. I sistemi basati su [[AmministrazioneSistema/Systemd|systemd]] gestiscono automaticamente i servizi '''ttyS0.service'''. Per assicurarsi che sia abilitato digitare:{{{
sudo systemctl enable serial-getty@ttyS0.service
}}}{{{
sudo systemctl start serial-getty@ttyS0.service
}}}
0. Riavviare la macchina virtuale 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. Verificarne la presenza o aggiungerne uno nei seguenti modi.
=== Tramite virt-manager (GUI) ===
0. Aprire '''virt-manager''' e selezionare la VM.
0. Fare clic sull'icona '''Mostra dettagli hardware''' (icona "i").
0. Cercare '''Console Seriale''' nell'elenco hardware. Se non presente fare clic su '''Aggiungi hardware''' e selezionare '''Seriale'''.
0. Assicurarsi che il '''Tipo di destinazione''' sia `pty` e '''Percorso di origine''' sia un dispositivo pseudo-terminale.
=== Tramite virsh edit (CLI) ===
0. Digitare nel [[AmministrazioneSistema/Terminale|terminale]] dell'host:{{{
virsh edit NOME_DELLA_VM
}}}sostituendo `NOME_DELLA_VM` con il nome effettivo della macchina virtuale.
0. Assicurarsi che esistano una sezione `` e `` simili a queste:{{{
}}}
0. Salvare e chiudere il file XML.
== Configurazione variabile TERM (opzionale) ==
La variabile d'ambiente `TERM` indica il tipo di terminale in utilizzo. Impostarla correttamente può migliorare l'esperienza della console seriale. Per verificare la variabile `TERM` nel terminale host/client digitare:{{{
echo $TERM
}}}Ad 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 digitando:{{{
export TERM=screen
}}}Si consiglia di utilizzare un tipo di terminale generico e ampiamente supportato come `xterm` o `screen`.
= Connessione alla console seriale =
0. Per connettersi alla sessione ''qemu:///system'' digitare nel [[AmministrazioneSistema/Terminale|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
}}}sostituendo `NOME_DELLA_VM` con il nome effettivo della macchina virtuale.
0. Quando la VM sarà avviata connettersi alla sua console seriale digitando:{{{
console NOME_DELLA_VM
}}}sostituendo `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 sarà attivo anche se la richiesta di autenticazione non dovesse essere immediatamente visualizzata.
}}}
= Uscire dalla console seriale =
È sufficiente utilizzare la combinazione di tasti '''Ctrl + ]'''.
= Risoluzione Problemi =
* '''Caratteri strani e problemi di visualizzazione nella console'''<
>Controllare che la variabile d'ambiente `TERM` sia impostata correttamente.
* '''Il terminale taglia la parte superiore della visualizzazione'''<
>Impostare la finestra del terminale per avere un'area visualizzata standard (es. 80x24 caratteri).
= Ulteriori risorse =
* [[https://help.ubuntu.com/community/KVM/Access|Documento originale sul sito internazionale di Ubuntu]]
* [[https://libvirt.org/|Sito ufficiale di Libvirt]]
----
CategoryVirtualizzazione