Debian 9 Stretch
Sponsored Link

Create Virtual Machine#1
Install GuestOS and create Virtual Machine. This example shows to install Debian.
[1] Create a Virtual Machine on text mode via network, it's OK on Console or remote connection with Putty and so on.
apt -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 debian9 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location '' \
--extra-args 'console=ttyS0,115200n8 serial'
Starting install...    
# installation starts

# after finishing 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/

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 ^]

Debian GNU/Linux 9 debian ttyS0

debian 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 + ] key

# 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.
# Hosts's console

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

Allocating 'debian9.img'                 |  30 GB  00:15

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

-rw------- 1 root root 1743912960 Jun 23 09:24 /var/kvm/images/debian9.img
ll /etc/libvirt/qemu/debian9.xml

-rw------- 1 root root 3170 Jun 23 09:24 /etc/libvirt/qemu/debian9.xml
Matched Content