|
Dimensione: 3017
Commento: Ciao Matteo, hanno aggiunto una nuova pagina alla guida KVM.
|
Dimensione: 5600
Commento: importata pagina e revisionata da ivantu/Virtualizzazione/Kvm/Accesso
|
| Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
| Linea 3: | Linea 3: |
| [[BR]] [[Indice(depth=2 align=right)]] titolo: accesso KVM titolo: Accesso alla console del sistema ospite |
<<BR>> <<Indice(depth=2)>> <<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="25.10 25.04 24.04 22.04")>> |
| Linea 8: | Linea 7: |
| = Direct terminal access via Serial Console = | = Introduzione = |
| Linea 10: | Linea 9: |
| È possibile accedere direttamente ad un sistema ospite di KVM utilizzando come interfaccia una console seriale, evitando così di utiliszzare connessioni di rete bridged, SHH e similari. | È 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. |
| Linea 12: | Linea 11: |
| Ciò è possibile utilizzando [http://linux.die.net/man/1/virsh virsh] che è l'interfaccia shell per [http://libvirt.org/|libvirt]. | L'accesso avviene tramite [[http://linux.die.net/man/1/virsh|virsh]], interfaccia a [[AmministrazioneSistema/Terminale|riga di comando]] per [[http://libvirt.org/|libvirt]]. |
| Linea 14: | Linea 13: |
| == Configurare una console seriale nel sistema ospite == | = Configurare console seriale nel sistema ospite = |
| Linea 16: | Linea 15: |
| Innanzitutto eè necessario configurarla per accettare connessioni. | Per abilitare l'accesso seriale è necessario configurare sia il sistema ospite che l'host '''KVM'''. |
| Linea 18: | Linea 17: |
| Il metodo successivamente spiegato è valido per le versioni Ubuntu 9.10 (Karmic) e successive, se si sta usando una versione precedente fare riferimento alla guida [https://help.ubuntu.com/community/SerialConsoleHowto Serial Console how to] in inglese. | == Lato ospite (interno alla macchina virtuale) == |
| Linea 20: | Linea 19: |
| {{{ sudo editor /etc/init/ttyS0.conf |
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 |
| Linea 23: | Linea 30: |
| Aggiungere la configurazione: {{{ # ttyS0 - getty # # This service maintains a getty on ttyS0 from the point the system is # started until it is shut down again. |
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'''. |
| Linea 30: | Linea 37: |
| start on stopped rc RUNLEVEL=[2345] stop on runlevel [!2345] |
== Lato host (macchina fisica che esegue KVM) == |
| Linea 33: | Linea 39: |
| respawn exec /sbin/getty -L 115200 ttyS0 xterm |
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 `<console>` e `<serial>` simili a queste:{{{ <devices> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <!-- Altri dispositivi... --> </devices> |
| Linea 36: | Linea 63: |
| Eseguire il seguente comando per inizializzare la console seriale (oppure riavviare la MV): {{{ sudo start ttyS0 }}} In questo caso si sta usando il tipo di terminale ''xterm'', visto il suo buon funzionamento durante la connessione utilizzando un'istanza Gnome-terminal (o xterm). È preferibile usare questa modalità di terminale da usarsi per la connessione. Per fare ciò utilizzare il seguente comando nel terminale '''host/client''' che si utilizzerà per la connessione: {{{ |
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:{{{ |
| Linea 44: | Linea 69: |
| }}} Per esempio, se si sta eseguendo screen sarà ''screen'', per byobu sarà ''screen-bce'', ecc. |
}}}Ad esempio se si sta eseguendo '''screen''' sarà `screen`, per '''byobu''' sarà `screen-bce`, ecc.<<BR>> È 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`. |
| Linea 47: | Linea 74: |
| È altresì possibile impostare la variabile temporaneamente quando si è '''già connessi''' alla console: {{{ export TERM=screen |
= Connessione alla console seriale = 0. Per connettersi alla sessione ''qemu:///system'' digitare nel [[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 }}}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. |
| Linea 52: | Linea 91: |
| == Connessione utilizzando virsh == | = Uscire dalla console seriale = |
| Linea 54: | Linea 93: |
| Innanzitutto connettersi alla sessione qemu (locale): {{{ virsh -c qemu:///session }}} Ora nella shell virsh, avviare la macchina virtuale: {{{ start my_vm }}} Quando sarà avviata, connetterla alla console: {{{ console my_vm }}} Premere Invio per arrivare alla richiesta di autenticazione ed autenticarsi come di consueto. /.\ username input è in esecuzione anche se la richiesta di autenticazione non dovesse essere visualizzata. |
È sufficiente utilizzare la combinazione di tasti '''Ctrl + ]'''. |
| Linea 68: | Linea 95: |
| = Risoluzione Problemi = | |
| Linea 69: | Linea 97: |
| == Informazioni utili == | * '''Caratteri strani e problemi di visualizzazione nella console'''<<BR>>Controllare che la variabile d'ambiente `TERM` sia impostata correttamente. * '''Il terminale taglia la parte superiore della visualizzazione'''<<BR>>Impostare la finestra del terminale per avere un'area visualizzata standard (es. 80x24 caratteri). |
| Linea 71: | Linea 100: |
| Usare Ctrl + ] per uscire dalla console. | = Ulteriori risorse = |
| Linea 73: | Linea 102: |
| Se la console dovesse comportarsi stranamente, controllare che la variabile TERM sia impostata correttamente (vedi sopra). Se sembra che il terminale ''tagli'' la parte superiore della visualizzazione, impostarlo per avere 80x24 di '''area visualizzata''', es. in byobu ciò significa che è necessario avere accesso alla statusbar ed avere la finestra a 80x26 |
* [[https://help.ubuntu.com/community/KVM/Access|Documento originale sul sito internazionale di Ubuntu]] * [[https://libvirt.org/|Sito ufficiale di Libvirt]] |
| Linea 78: | Linea 106: |
| [https://help.ubuntu.com/community/KVM/Access Documento originale] ---- CategoryDaRevisionare |
CategoryVirtualizzazione |
Guida verificata con Ubuntu: 22.04 24.04 25.04 25.10
Problemi in questa pagina? Segnalali in questa discussione
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 virsh, interfaccia a riga di comando per 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 systemd gestisce i servizi di console seriale.
Aggiungere una console seriale alla configurazione del kernel GRUB (all'interno della VM) aprendo con un editor di testo e con i privilegi di amministratore il file /etc/default/grub, ad esempio:
sudo nano /etc/default/grub
Trovare la riga GRUB_CMDLINE_LINUX_DEFAULT e GRUB_CMDLINE_LINUX e aggiungere:
console=ttyS0,115200
e quindi salvare e chiudere il file.Aggiornare GRUB:
sudo update-grub
Abilitare il servizio getty per la console seriale. I sistemi basati su 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
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)
Aprire virt-manager e selezionare la VM.
Fare clic sull'icona Mostra dettagli hardware (icona "i").
Cercare Console Seriale nell'elenco hardware. Se non presente fare clic su Aggiungi hardware e selezionare Seriale.
Assicurarsi che il Tipo di destinazione sia pty e Percorso di origine sia un dispositivo pseudo-terminale.
Tramite virsh edit (CLI)
Digitare nel terminale dell'host:
virsh edit NOME_DELLA_VM
sostituendo NOME_DELLA_VM con il nome effettivo della macchina virtuale.
Assicurarsi che esistano una sezione <console> e <serial> simili a queste:
<devices> <serial type='pty'> <target type='isa-serial' port='0'> <model name='isa-serial'/> </target> </serial> <console type='pty'> <target type='serial' port='0'/> </console> <!-- Altri dispositivi... --> </devices>- 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
Per connettersi alla sessione qemu:///system digitare nel terminale dell'host:
virsh -c qemu:///system
Si entrerà nella shell interattiva di virsh.
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.
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.
Premere Invio per arrivare alla richiesta di autenticazione e autenticarsi come di consueto.
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).
