User Tools

Site Tools


tech:virt:start

Virtualization

See this section on Virtualization Server setup for more detailed pre-requisites

qemu-img create -f qcow2 -b baseimg vmname-vda 18G

Sample start-up script:

#!/bin/bash
VMN=yourvmname
VNC="00"
MAC0="DE:AD:BE:EF:00:00"
 
VMH=/var/lib/kvm
VMC=qemu-system-x86_64
CPUT=EPYC
CPUS=8
VMM=16G
VGA="-vga virtio -display gtk"
# Headless ...
#VGA="-vnc localhost:${VNC} -daemonize"
 
VGN="yourlvmvolumegroupname"
SIM=
HD0=
HD1=
HD2=
NIC0=
NIC1=
TPM=
SND=
 
# Boot device - d=cdrom, c=disk
BOOT="-boot c"
 
function initTPM {
	local TPC="swtpm"
	local TPD=$(ps -ef | grep swtpm | grep -v grep)
	if [ "${TPM}" != "" -a "${TPD}" == "" ]; then
	#	echo "NFO=>>> starting TPM ..."
		if [ "${USER}" != "root" ]; then TPC="sudo -H ${TPC}" ; fi
	#	echo "DBG=>>> ${TPC} socket -d --tpmstate dir=/var/lib/kvm/${VMN}/tpm --ctrl type=unixio,path=/var/lib/kvm/${VMN}/tpm/sock --log file=tpm/tpm.log,level=20 --tpm2"
		${TPC} socket -d --tpmstate dir=/var/lib/kvm/${VMN}/tpm --ctrl type=unixio,path=/var/lib/kvm/${VMN}/tpm/sock --log file=tpm/tpm.log,level=20 --tpm2
	else echo "NFO=>>> software TPM daemon detected, skipping its startup" ; fi
}
 
function vmOptionsWin11 {
	CPUT=EPYC,kvm_pv_eoi=on
#	SIM="-cdrom ${VMH}/iso/Win11_English_x64v1.iso"
#	SIM="-cdrom ${VMH}/iso/virtio-win-0.1.208.iso"
	HD0="-hda vda"
	HD1="-drive file=/dev/${VGN}/dwin,index=1,media=disk,format=raw"
#	NIC0="-netdev bridge,id=${VMN}eth0,br=br0 -device e1000,netdev=${VMN}eth0,mac=${MAC0}"
	NIC0="-netdev bridge,id=${VMN}eth0,br=br0 -device virtio-net-pci,netdev=${VMN}eth0,mac=${MAC0}"
	TPM="-bios /usr/share/ovmf/OVMF.fd -chardev socket,id=chrtpm,path=/var/lib/kvm/${VMN}/tpm/sock -tpmdev emulator,id=tpm0,chardev=chrtpm -device tpm-tis,tpmdev=tpm0"
	initTPM
}
 
function vmOptionsLinux {
	HD0="-drive file=vda,if=virtio"
#	HD1="-drive file=/dev/${VGN}/${VMN}home,if=virtio,index=1,media=disk,format=raw"
#	HD2="-drive file=/dev/${VGN}/${VMN}docker,if=virtio,index=2,media=disk,format=raw"
	NIC0="-netdev bridge,id=${VMN}eth0,br=br0 -device virtio-net-pci,netdev=${VMN}eth0,mac=${MAC0}"
#	NIC0="-netdev bridge,id=${VMN}eth0,br=br0,helper=/usr/libexec/qemu-bridge-helper -device virtio-net-pci,netdev=${VMN}eth0,mac=${MAC0}"
#	NIC1="-netdev bridge,id=${VMN}eth1,br=br1,helper=/usr/libexec/qemu-bridge-helper -device virtio-net-pci,netdev=${VMN}eth1,mac=${MAC1}"
}
 
function vmOptions {
	if [ "${USER}" != "root" ]; then VMC="sudo -H ${VMC}" ; fi
#	vmOptionsLinux
	vmOptionsWin11
}
 
cd ${VMH}/${VMN}
vmOptions
${VMC} -machine pc,accel=kvm -name "${VMN}" -cpu ${CPUT} -smp ${CPUS} -m ${VMM} ${BOOT} ${VGA} ${NIC0} ${NIC1} ${HD0} ${HD1} ${HD2} ${SIM} ${TPM} ${SND}

Links: techmain

tech/virt/start.txt · Last modified: 2022/11/13 23:24 by rk4n3