- f=/var/lib/libvirt/images/${name}$i
- disk_arg+=("--disk path=$f")
- if $new_disk || [[ ! -e $f ]]; then
- rm -f $f
- s qemu-img create -o preallocation=metadata -f qcow2 $f 20G
- fi
+ f=/var/lib/libvirt/images/${name}$i
+ disk_arg+=("--disk path=$f")
+ if $new_disk || [[ ! -e $f ]]; then
+ rm -f $f
+ # https://btrfs.wiki.kernel.org/index.php/FAQ
+ touch $f
+ chattr +C $f
+ e qemu-img create -o preallocation=metadata -f qcow2 $f 50G
+ fi
+done
+## end virtual disk creation ##
+
+if [[ $SSH_CLIENT ]]; then
+ console_arg=--noautoconsole
+fi
+
+# docker makes forward default to drop, which blocks the vm pxe on flidas. easiest solution:
+e iptables -P FORWARD ACCEPT
+
+# --cpu host: this causes mkfs.btrfs to fail with a stack trace which began
+# something like:
+# init_module+0x108/0x1000 [raid6_pq]
+#
+# uniq is to stop gtk-warning spam
+# e virt-install --os-variant $variant -n $name --pxe -r 2048 --vcpus 1 \
+ # ${disk_arg[*]} -w bridge=br0,mac=52:54:00:9c:ef:ad $reboot_arg \
+ # --graphics spice,listen=0.0.0.0 $console_arg |& grep -v '^ *$' | uniq &
+
+cpus=1
+if (( $(nproc) > 2 )); then
+ cpus=2
+fi
+
+e systemctl start libvirtd
+e virt-install --rng /dev/urandom --os-variant $variant -n $name $boot_arg -r 2048 --vcpus $cpus \
+ ${disk_arg[*]} $net_arg $reboot_arg \
+ --graphics spice,listen=0.0.0.0 $console_arg |& grep -v '^ *$' | uniq &
+
+
+if [[ $SSH_CLIENT ]]; then
+ fg
+fi
+
+sleep 90
+while ! timeout -s 9 10 ssh -oBatchMode=yes root@$name true; do
+ e sleep 5