Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Virtualizzazione/Kvm/Accesso"
Differenze tra le versioni 14 e 15
Versione 14 del 02/12/2022 17.12.34
Dimensione: 3384
Autore: gnomefanatic
Commento: Revisione
Versione 15 del 20/10/2025 02.31.06
Dimensione: 5600
Autore: jeremie2
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 1: Linea 1:
## page was renamed from FabioMarconi/Prove50
#format wiki updated 13-06-2011
#format wiki
Linea 5: Linea 4:
<<Indice(depth=1)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617"; rilasci="10.04")>>
<<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 11: Linea 9:
È possibile accedere direttamente a un sistema ospite di '''KVM''' utilizzando come interfaccia una console seriale, evitando così di utilizzare connessioni di rete bridged, SSH e simili. È 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 13: 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 15: Linea 13:
= Configurare una console seriale nel sistema ospite = = Configurare console seriale nel sistema ospite =
Linea 17: Linea 15:
Innanzitutto è necessario configurarla per accettare connessioni. Per abilitare l'accesso seriale è necessario configurare sia il sistema ospite che l'host '''KVM'''.
Linea 19: Linea 17:
Il metodo successivamente spiegato è valido per le versioni di '''Ubuntu 9.10''' e successive, se si sta usando una versione precedente fare riferimento alla [[https://help.ubuntu.com/community/SerialConsoleHowto|relativa pagina]] in lingua inglese. == Lato ospite (interno alla macchina virtuale) ==
Linea 21: Linea 19:
 * Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] e con i [[AmministrazioneSistema/Sudo|privilegi di amministratore]] il file `/etc/init/ttyS0.conf`, e aggiungere la seguente configurazione:
 {{{
# ttyS0 - getty
#
# This service maintains a getty on ttyS0 from the point the system is
# started until it is shut down again.
Da Ubuntu 18.04 in poi [[AmministrazioneSistema/Systemd|systemd]] gestisce i servizi di console seriale.
Linea 28: Linea 21:
start on stopped rc RUNLEVEL=[2345]
stop on runlevel [!2345]
 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'''.
Linea 31: Linea 37:
respawn
exec /sbin/getty -L 115200 ttyS0 xterm
== 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 `<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 34: Linea 63:
 * Per inizializzare la console seriale digitare il seguente comando in una finestra di terminale:{{{
sudo start ttyS0
}}}
 o riavviare la Macchina Virtuale.
 0. Salvare e chiudere il file XML.
Linea 39: Linea 65:
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.
== Configurazione variabile TERM (opzionale) ==
Linea 42: Linea 67:
 * Per fare ciò utilizzare il seguente comando nel terminale '''host/client''' che si utilizzerà per la connessione:{{{ 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:
 È anche possibile impostare la variabile temporaneamente quando si è già connessi alla console, con il comando:{{{
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 51: Linea 91:
= Connessione utilizzando virsh = = Uscire dalla console seriale =
Linea 53: Linea 93:
 0. Connettersi alla sessione qemu (locale) digitando il seguente comando:{{{
virsh -c qemu:///session
}}}
 0. Nel terminale virsh, avviare la macchina virtuale digitando:{{{
start my_vm
}}}
 0. Quando sarà avviata, connetterla alla console digitando:{{{
console my_vm
}}}
 0. Premere Invio per arrivare alla richiesta di autenticazione e autenticarsi come di consueto.
È sufficiente utilizzare la combinazione di tasti '''Ctrl + ]'''.
Linea 64: Linea 95:
{{{#!wiki important
Username input è in esecuzione anche se la richiesta di autenticazione non dovesse essere visualizzata.}}}
= Risoluzione Problemi =
Linea 67: Linea 97:
= Informazioni utili =

Usare '''Ctrl + ]''' per uscire dalla console.

Se la console dovesse comportarsi stranamente, controllare che la variabile '''TERM''' sia impostata correttamente.

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 e avere la finestra a 80x26.
 * '''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 77: Linea 102:
 * [[https://help.ubuntu.com/community/KVM/Access|Documento originale]]  * [[https://help.ubuntu.com/community/KVM/Access|Documento originale sul sito internazionale di Ubuntu]]
 * [[https://libvirt.org/|Sito ufficiale di Libvirt]]
Linea 79: Linea 106:
CategoryVirtualizzazione 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.

  1. 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
  2. Trovare la riga GRUB_CMDLINE_LINUX_DEFAULT e GRUB_CMDLINE_LINUX e aggiungere:

    console=ttyS0,115200
    e quindi salvare e chiudere il file.
  3. Aggiornare GRUB:

    sudo update-grub
  4. 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
  5. 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)

  1. Aprire virt-manager e selezionare la VM.

  2. Fare clic sull'icona Mostra dettagli hardware (icona "i").

  3. Cercare Console Seriale nell'elenco hardware. Se non presente fare clic su Aggiungi hardware e selezionare Seriale.

  4. Assicurarsi che il Tipo di destinazione sia pty e Percorso di origine sia un dispositivo pseudo-terminale.

Tramite virsh edit (CLI)

  1. Digitare nel terminale dell'host:

    virsh edit NOME_DELLA_VM

    sostituendo NOME_DELLA_VM con il nome effettivo della macchina virtuale.

  2. 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>
  3. 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

  1. Per connettersi alla sessione qemu:///system digitare nel terminale dell'host:

    virsh -c qemu:///system

    Si entrerà nella shell interattiva di virsh.

  2. 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.

  3. 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.

  4. 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).

Ulteriori risorse


CategoryVirtualizzazione