Ubuntu 20.04
Sponsored Link

KVM : Create Virtual Machine
Install GuestOS and create Virtual Machine. This example shows to install Ubuntu 20.04.
[1] Install GuestOS on text mode via network, it's OK on Console or remote connection with Putty and so on. Furthermore, Virtual Machine's images are placed at [/var/lib/libvirt/images] by default as a Storage Pool, but this example shows to create and use a new Storage Pool.
# create a storage pool

mkdir -p /var/kvm/images

virt-install \
--name ubuntu2004 \
--ram 4096 \
--disk path=/var/kvm/images/ubuntu2004.img,size=20 \
--vcpus 2 \
--os-type linux \
--os-variant ubuntu20.04 \
--network bridge=br0 \
--graphics none \
--console pty,target_type=serial \
--location 'http://archive.ubuntu.com/ubuntu/dists/focal/main/installer-amd64/' \
--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 ubuntu2004

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

guestmount -d ubuntu2004 -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 ubuntu2004 --console

Ubuntu 20.04 LTS ubuntu ttyS0

ubuntu login:
The example of options above means like follows. There are many options for others, make sure with [man virt-install].
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 (default is [/var/lib/libvirt/images])
[size=] specify the amount of disks of Virtual Machine
specify the virtual CPUs
specify the type of GuestOS
specify the kind of GuestOS
possible to show the list of OS with follows
# 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 source 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)'.
focal@ubuntu:~$     # Ctrl + ] key
root@dlp:~#         # Host's console

# move to Guest
root@dlp:~# virsh console ubuntu2004 
Connected to domain template
Escape character is ^]   # Enter

focal@ubuntu:~$          # Guest's console
[3] It's easy to create another VM to copy from current VM with a command below.
# on Host's console

virt-clone --original ubuntu2004 --name ubuntu2004_org --file /var/kvm/images/ubuntu2004_org.img

Allocating 'ubuntu2004_org.img'                             |  20 GB  00:09

Clone 'ubuntu2004_org' created successfully.

# disk image

ll /var/kvm/images/ubuntu2004_org.img

-rw------- 1 root root 3040804864 Jun 2 19:38 /var/kvm/images/ubuntu2004_org.img
# configuration file

ll /etc/libvirt/qemu/ubuntu2004_org.xml

-rw------- 1 root root 5061 Jun 2 19:38 /etc/libvirt/qemu/ubuntu2004_org.xml
Matched Content