Ubuntu 16.04
Sponsored Link

Create Virtual Machine#1
Install GuestOS and create Virtual Machine. This example shows to install Ubuntu.
[1] Create a Virtual Machine on text mode via network, it's OK on Console or remote connection with Putty and so on.
apt-get -y install libosinfo-bin libguestfs-tools virt-top
# create a storage pool

mkdir -p /var/kvm/images

virt-install \
--name template \
--ram 4096 \
--disk path=/var/kvm/images/template.img,size=30 \
--vcpus 2 \
--os-type linux \
--os-variant ubuntu16.04 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://jp.archive.ubuntu.com/ubuntu/dists/xenial/main/installer-amd64/' \
--extra-args 'console=ttyS0,115200n8 serial'
Starting install...    
# installation starts

# after installation, back to KVM host and shutdown the guest like follows

virsh shutdown template

Domain template is being shutdown
# mount guest's disk and enable a service like follows

guestmount -d template -i /mnt

ln -s /mnt/lib/systemd/system/getty@.service /mnt/etc/systemd/system/getty.target.wants/getty@ttyS0.service

umount /mnt
# start guest again, if it's possible to connect to the guest's console, it's OK all

virsh start template --console

Domain template started
Connected to domain template
Escape character is ^]

Ubuntu 16.04 LTS ubuntu ttyS0

ubuntu login:
For options, make sure 'man virt-install', there are many options.
specify the name of Virtual Machine
specify the amount of memories of Virtual Machine
--disk path=xxx ,size=xxx
'path=' ⇒ specify the location of disks of Virtual Machine
'size=' ⇒ specify the amount of disks of Virtual Machine
specify the virtual CPUs
specify the type of GuestOS
specify the kind of GuestOS - list all valid variant with the following command
# osinfo-query os
specify network types of Virtual Machine
specify the kind of graphics. if set 'none', it means nographics.
specify the console type
specify the location of installation where from
specify parameters that is set in kernel

[2] Move to GuestOS to HostOS with Ctrl + ] key.
Move to HostOS to GuestOS with a command 'virsh console (name of virtual machine)'.
# Ctrl + ]

# Host's console
virsh console template
# move to Guest

Connected to domain template
Escape character is ^]    
# Enter key
# Guest's console
[3] It's easy to clone a virtual machine from existing one to new like follows.
# Host's console

virt-clone --original template --name ubuntu1604 --file /var/kvm/images/ubuntu1604.img

Allocating 'ubuntu1604.img'                     |  30 GB     01:02

Clone 'ubuntu1604' created successfully.
ll /var/kvm/images/ubuntu1604.img

-rw------- 1 root root 1899888640 May 16 21:05 /var/kvm/images/ubuntu1604.img
ll /etc/libvirt/qemu/ubuntu1604.xml

-rw------- 1 root root 2694 May 16 21:05 /etc/libvirt/qemu/ubuntu1604.xml
Matched Content