I’m connecting remotely with ssh to a debian machine and like to install a virtual debian on it using the command line. I chose to give libvirt and it’s toolchain a chance.
Install tools
sudo apt install virtinst
check, if libvirtd is active:
systemctl status libvirtd
list all virtual systems on host:
sudo virsh list --all
The names are the domain names.
Connect to running domain
sudo virsh console domainname --force
Stop a domain
sudo virsh shutdown domainname
If the domain hangs or doesn’t understand the shutdown signal (Windows), you may want to destroy it:
sudo virsh destroy domainname
Delete a domain and all it’s resources:
sudo virsh undefine domainname --managed-save --snapshots-metadata --checkpoints-metadata --nvram --remove-all-storage --delete-storage-volume-snapshots --tpm
sudo virsh pool-refresh default
Start screen before starting the installation:
screen
Create a debian virtual machine on command line, output will be sent over ssh:
virt-install --connect qemu:///system\
--virt-type kvm\
--name debiankvm\
--ram 4096\
--disk /var/lib/libvirt/images/debiankvm.qcow,format=qcow2,size=100\
--location https://deb.debian.org/debian/dists/bookworm/main/installer-amd64/\
--network bridge=br0\
--os-variant debian12\
--console pty,target_type=serial \
--extra-args "console=ttyS0"
Because we have started the installation in a screen session, we can detach anytime, even log out from our server and the installation will continue anyway.
To leave the virtual machine, you can simply leave the screen session. Screen slang, detach from screen session, hit Ctrl + a then d.
To get to the virtual server again. Screen slang, attach to the session, write:
screen -r
If you have multiple sessions, you will have to choose which one. If there is just one you will be attached immediatly.
If you want to destroy a running session, but you are no longer attached to it, you may use these commands:
screen -ls s
screen -XS <pid> quit
the <pid> is the numer before the dot given by the first command.