From 9e3bc844c3d088b25bd8d449a4d80017d0bb3b93 Mon Sep 17 00:00:00 2001 From: Andreas Baumann Date: Sat, 1 Oct 2016 19:17:54 +0200 Subject: made a version with virt-install (libvirtd) --- createvm.sh | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100755 createvm.sh (limited to 'createvm.sh') diff --git a/createvm.sh b/createvm.sh new file mode 100755 index 0000000..0edf671 --- /dev/null +++ b/createvm.sh @@ -0,0 +1,47 @@ +#!/bin/bash + +vm_is_running() { + if [ "$(virsh domstate $1 2>/dev/null)" == "running" ]; then + return 0 + else + return 1 + fi +} + +wait_for_vm_to_stop() { + while vm_is_running $1; do + sleep 1 + done +} + +NAME=archlinux + +mount -o loop,ro archlive/out/archlinux-2016.09.30-dual.iso archiso + +darkhttpd . --port 8080 & + +virt-install --name ${NAME} -r 1024 --vcpus=1 --os-type=linux --os-variant=virtio26 \ + --disk pool=local,size=2,format=qcow2 --network network=virt0,model=virtio \ + --vnc --vncport=5901 --noreboot --noautoconsole \ + --boot kernel=vmlinuz,initrd=archiso.img,kernel_args="archisobasedir=archiso/arch archiso_http_srv=http://eurobuild3.lan:8080/ script=http://eurobuild3.lan:8080/archauto.sh ip=dhcp" & + +sleep 5 + +virsh start ${NAME} + +sleep 5 + +wait_for_vm_to_stop ${NAME} + +virsh dumpxml ${NAME} > ${NAME}.xml + +xmlstarlet ed -d '/domain/os/kernel' ${NAME}.xml | xmlstarlet ed -d '/domain/os/initrd' | xmlstarlet ed -d '/domain/os/cmdline' > ${NAME}-new.xml + +virsh define ${NAME}-new.xml + +virsh start ${NAME} + +rm -f ${NAME}-new.xml ${NAME}.xml + +pkill darkhttpd +umount archiso -- cgit v1.2.3-54-g00ecf