blob: 0edf671a9f367a713c23a1ba7cd553db58567398 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
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
|