virsh console配置

If you're trying to get to the console, you can either use virt-viewer for the graphical console or attach to a serial TTY (as Carlos mentioned) with the "virsh console" command.

Assuming your vm is named "myvm", you'd use virt-viewer like this:

# virt-viewer -c qemu:///system myvm

For a serial console, you'll need to modify the kernel command line in grub (in the VM). In Fedora/RHEL/CentOS you'd do it this way:

1. Edit /etc/default/grub and add the following to the "GRUB_CMDLINE_LINUX=" line:

console=tty0 console=ttyS0,115200

2. # grub2-mkconfig -o /boot/grub2/grub.cfg

3. Reboot the VM

4. # virsh console myvm

The procedure should be similar on Debian and Ubuntu but you'll need to search for the proper way to update grub2 for that platform.

<domain type='kvm' id='33'>
  <name>vm2</name>
  <uuid>70affd5d-af95-72c5-2d96-c131f46409b6</uuid>
  <description>--autostart</description>
  <memory>1048576</memory>
  <currentMemory>1048576</currentMemory>
  <vcpu>2</vcpu>
  <os>
    <type arch='i686' machine='pc-0.14'>hvm</type>
    <boot dev='hd'/>
  </os>
  <features>
    <acpi/>
    <apic/>
    <pae/>
  </features>
  <clock offset='utc'/>
  <on_poweroff>destroy</on_poweroff>
  <on_reboot>restart</on_reboot>
  <on_crash>restart</on_crash>
  <devices>
    <emulator>/usr/bin/kvm</emulator>
    <disk type='file' device='disk'>
      <driver name='qemu' type='qcow2'/>
      <source file='/vms/vm2.qcow2'/>
      <target dev='vda' bus='virtio'/>
      <alias name='virtio-disk0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
    </disk>
    <interface type='bridge'>
      <mac address='52:54:00:5e:98:e4'/>
      <source bridge='br0'/>
      <target dev='vnet0'/>
      <alias name='net0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>
    <serial type='pty'>
      <source path='/dev/pts/0'/>
      <target port='0'/>
      <alias name='serial0'/>
    </serial>
    <console type='pty' tty='/dev/pts/0'>
      <source path='/dev/pts/0'/>
      <target type='serial' port='0'/>
      <alias name='serial0'/>
    </console>
    <input type='mouse' bus='ps2'/>
    <graphics type='vnc' port='6900' autoport='no' listen='0.0.0.0'/>
    <video>
      <model type='cirrus' vram='9216' heads='1'/>
      <alias name='video0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x02' function='0x0'/>
    </video>
    <memballoon model='virtio'>
      <alias name='balloon0'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/>
    </memballoon>
  </devices>
  <seclabel type='dynamic' model='apparmor'>
    <label>libvirt-70affd5d-af95-72c5-2d96-c131f46409b6</label>
    <imagelabel>libvirt-70affd5d-af95-72c5-2d96-c131f46409b6</imagelabel>
  </seclabel>
</domain>
ssh -t <user>@<libvirthost> virsh console <vm_name>
where: user - user that exist on libvirthost libvirthost - where libvirt VM is running

  

During installation you can access system console of a guest VM on the terminal:

virt-install ... --extra-args="console=tty0 console=ttyS0,115200n8 .. "

 

Then,

virsh console <DOMAIN>

  

VM console's serial option is like below.

<devices>
  <console type='pty'>
    <target type='serial' port='0'/>
  </console>
  <console type='pty'>
    <target type='virtio' port='1'/>
  </console>
</devices>

The /dev/pts/XXX path will be recorded in the XML document when the guest is running.

The virsh ttyconsole command merely reads it from the XML

# virt-install \
> --name vm0 \
> --ram 12028 \
> --disk path=/home/veeru/ubuntu14-HD.img,size=30 \
> --vcpus 2 \
> --os-type linux \
> --os-variant ubuntu16.04 \
> --network bridge=bridge:br0 \
> --graphics none \
> --console pty,target_type=serial \
> --location /home/veeru/Downloads/ubuntu-16.04.5.iso --force \
> --extra-args 'console=ttyS0,115200n8 serial' \
> --host-device 01:00.0 \
> --features kvm_hidden=on \
> --machine q35

  

virt-install \
--name=$buildname \
--nographics \
--hvm \
--virt-type=kvm \
--file=$diskpath$buildname$vmextension \
--file-size=20 \
--nonsparse \
--vcpu=2 \
--ram=2048 \
--network bridge=br0 \
--os-type=linux \
--os-variant=generic \
--location=http://0.0.0.0/iso/ \
--initrd-inject /var/lib/libvirt/images/autobuild-ks.cfg \
--extra-args="ks=http://0.0.0.0/ks/autobuild-ks.cfg console=ttyS0"

  

 

猜你喜欢

转载自www.cnblogs.com/saryli/p/11828466.html