RHEL7:Accesso alla console di una macchina virtuale

By | Agosto 11, 2018

Nota: questo è un obiettivo d’esame RHCSA 7.

 

Procedura standard

Con KVM, per accedere alla console della macchina virtuale sotto X Window, digitare:

# virt-manager

Se non sei sotto X Window, c’è un altro modo per accedere alla console di una macchina virtuale: puoi passare attraverso una console seriale.

Sulla macchina virtuale, aggiungi “console = ttyS0” alla fine delle linee del kernel nel file /boot/grub2/grub.cfg:

# grubby –update-kernel=ALL –args=”console=ttyS0″

Nota: In alternativa, puoi modificare il file /etc/default/grub, aggiungere ‘console = ttyS0‘ alla variabile GRUB_CMDLINE_LINUX ed eseguire ‘# grub2-mkconfig -o /boot/grub2/grub.cfg‘.

Ora, riavvia la macchina virtuale:

# reboot

Con KVM, connettiti alla console della macchina virtuale (qui vm.example.com):

# virsh console vm.example.com
Connected to domain vm.example.com
Escape character is ^]

Red Hat Enterprise Linux Server 7.0 (Maipo)
Kernel 3.10.0-121.el7.x86_64 on an x86_64

vm login:

Procedura di emergenza

A volte hai perso tutti i link alla tua macchina virtuale (errore nel file /etc/fstab, configurazione ssh, ecc.) E, dato che non hai configurato alcuna console virtuale, sei nei guai. C’è ancora una soluzione!
Collegati all’host fisico e spegni la tua macchina virtuale (qui chiamata vm.example.com):

# virsh destroy vm.example.com

Definire dove si trova il file immagine della macchina virtuale (per impostazione predefinita nella directory /var/lib/libvirt/images con un nome come vm.example.com.img):

# virsh dumpxml | grep "source file="
      <source file='/var/lib/libvirt/images/vm.example.com.img'/>

Mappare il file immagine della macchina virtuale nell’ambiente host (-a per add e -v per verbose):

# kpartx -av /var/lib/libvirt/images/vm.example.com.img
add map loop0p1 (253:2): 0 1024000 linear /dev/loop0 2048
add map loop0p2 (253:3): 0 10240000 linear /dev/loop0 1026048

Dal display precedente, sai che hai due partizioni (in realtà /boot e /, distinguibili dalle rispettive dimensioni).
È necessario montare la partizione /boot per poter modificare la configurazione di grub:

# mount /dev/mapper/loop0p1 /mnt

Quindi, modifica il file /mnt/grub2/grub.cfg e aggiungi “console = ttyS0” alla fine di ogni riga contenente /vmlinuz (il kernel linux).
Smonta la partizione:

# umount /mnt

Unmap del file immagine della macchina virtuale (-d per delete e -v per verbose):

# kpartx -dv /var/lib/libvirt/images/vm.example.com.img
del devmap : loop0p2
del devmap : loop0p1
loop deleted : /dev/loop0

Riavvia la tua macchina virtuale:

# virsh start vm.example.com
Domain vm.example.com started

Collegati alla tua console della macchina virtuale:

# virsh console vm.example.com
Connected to domain vm.example.com
Escape character is ^]

CentOS Linux 7 (Core)
Kernel 3.10.0-123.el7.x86_64 on an x86_64

vm login:

Questa procedura funziona per RHEL 6 / CentOS 6 e RHEL 7 / CentOS 7.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.