I've verified this for zesty, using my patched zesty kernel. Demonstration of that follows. However, the kernel patches have not yet been approved for zesty, and may never be. I'll hold-off on updating the tags here until a) we have a final answer on the kernel patches or b) we decide there is value in updating QEMU w/o the kernel side.
= Verification log =
ubuntu@dawes:~$ uname -a
Linux dawes 4.10.0-40-generic #44+gicv3sr.1-Ubuntu SMP Thu Nov 9 22:53:54 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux
ubuntu@dawes:~$ cd vm-save-restore/
ubuntu@dawes:~/vm-save-restore$ ./setup.sh
+ set -e
+ cloudrel=zesty
+ cloudimg=zesty-server-cloudimg-arm64.img
+ sudo apt-get install -y cloud-image-utils qemu-kvm qemu-utils qemu-efi libvirt-bin screen uuid-runtime
Reading package lists... Done
Building dependency tree
Reading state information... Done
cloud-image-utils is already the newest version (0.30-0ubuntu2).
screen is already the newest version (4.5.0-5ubuntu1).
qemu-efi is already the newest version (0~20161202.7bbe0b3e-1).
uuid-runtime is already the newest version (2.29-1ubuntu2.1).
libvirt-bin is already the newest version (2.5.0-3ubuntu5.6).
qemu-kvm is already the newest version (1:2.8+dfsg-3ubuntu2.8).
qemu-utils is already the newest version (1:2.8+dfsg-3ubuntu2.8).
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+ test -f zesty-server-cloudimg-arm64.img
+ echo #!/bin/sh
+ sudo tee /etc/qemu-ifup
+ echo
+ sudo tee -a /etc/qemu-ifup
+ echo set -e
+ sudo tee -a /etc/qemu-ifup
+ echo
+ sudo tee -a /etc/qemu-ifup
+ echo ip link set "$1" up
+ sudo tee -a /etc/qemu-ifup
+ echo ip link set "$1" master virbr0
+ sudo tee -a /etc/qemu-ifup
ubuntu@dawes:~/vm-save-restore$ ./test.sh
+ i=0
+ [ -f /var/log/libvirt/qemu/4273-0.log ]
+ name=4273-0
+ ./randmac.py
+ mac=00:16:3e:1c:57:55
+ uuidgen
+ uuid=1578301c-e2fe-4981-87b5-bee2c56fa14c
+ mktemp
+ xml=/tmp/tmp.D9DXzEvOHn
+ cp template.xml /tmp/tmp.D9DXzEvOHn
+ trap cleanup EXIT
+ mkdir -p vms
+ dd if=/dev/zero of=./vms/4273-0_CODE.fd bs=1M count=64
64+0 records in
64+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 0.166913 s, 402 MB/s
+ dd if=/usr/share/qemu-efi/QEMU_EFI.fd of=./vms/4273-0_CODE.fd conv=notrunc
4096+0 records in
4096+0 records out
2097152 bytes (2.1 MB, 2.0 MiB) copied, 0.0602123 s, 34.8 MB/s
+ dd if=/dev/zero of=./vms/4273-0_VARS.fd bs=1M count=64
64+0 records in
64+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 0.16786 s, 400 MB/s
+ cat
+ cloud-localds vms/4273-0_seed.img vms/4273-0_user-data
+ pwd
+ qemu-img create -f qcow2 -o backing_file=/home/ubuntu/vm-save-restore/zesty-server-cloudimg-arm64.img ./vms/4273-0.img
Formatting './vms/4273-0.img', fmt=qcow2 size=2361393152 backing_file=/home/ubuntu/vm-save-restore/zesty-server-cloudimg-arm64.img encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16
+ sed -i s/\#VM\#/4273-0/ /tmp/tmp.D9DXzEvOHn
+ pwd
+ sed -i s,\#DIR\#,/home/ubuntu/vm-save-restore, /tmp/tmp.D9DXzEvOHn
+ sed -i s/\#UUID\#/1578301c-e2fe-4981-87b5-bee2c56fa14c/ /tmp/tmp.D9DXzEvOHn
+ sed -i s/\#MAC\#/00:16:3e:1c:57:55/ /tmp/tmp.D9DXzEvOHn
+ sudo virsh define /tmp/tmp.D9DXzEvOHn
Domain 4273-0 defined from /tmp/tmp.D9DXzEvOHn
+ sudo virsh start 4273-0
Domain 4273-0 started
+ sleep 60
+ sudo virsh save 4273-0 ./vms/4273-0.sav
Domain 4273-0 saved to ./vms/4273-0.sav
+ sudo virsh restore ./vms/4273-0.sav
Domain restored from ./vms/4273-0.sav
+ sleep 5
+ sudo virsh save 4273-0 ./vms/4273-0.sav
Domain 4273-0 saved to ./vms/4273-0.sav
+ sudo virsh restore ./vms/4273-0.sav
Domain restored from ./vms/4273-0.sav
+ sudo virsh save 4273-0 ./vms/4273-0.sav
Domain 4273-0 saved to ./vms/4273-0.sav
+ sudo virsh restore ./vms/4273-0.sav
Domain restored from ./vms/4273-0.sav
I've verified this for zesty, using my patched zesty kernel. Demonstration of that follows. However, the kernel patches have not yet been approved for zesty, and may never be. I'll hold-off on updating the tags here until a) we have a final answer on the kernel patches or b) we decide there is value in updating QEMU w/o the kernel side.
= Verification log =
ubuntu@dawes:~$ uname -a 1-Ubuntu SMP Thu Nov 9 22:53:54 UTC 2017 aarch64 aarch64 aarch64 GNU/Linux dawes:~ /vm-save- restore$ ./setup.sh zesty-server- cloudimg- arm64.img 7bbe0b3e- 1). dfsg-3ubuntu2. 8). dfsg-3ubuntu2. 8). cloudimg- arm64.img dawes:~ /vm-save- restore$ ./test.sh libvirt/ qemu/4273- 0.log ] 16:3e:1c: 57:55 e2fe-4981- 87b5-bee2c56fa1 4c tmp.D9DXzEvOHn 4273-0_ CODE.fd bs=1M count=64 share/qemu- efi/QEMU_ EFI.fd of=./vms/ 4273-0_ CODE.fd conv=notrunc 4273-0_ VARS.fd bs=1M count=64 0_user- data file=/home/ ubuntu/ vm-save- restore/ zesty-server- cloudimg- arm64.img ./vms/4273-0.img file=/home/ ubuntu/ vm-save- restore/ zesty-server- cloudimg- arm64.img encryption=off cluster_size=65536 lazy_refcounts=off refcount_bits=16 #,/home/ ubuntu/ vm-save- restore, /tmp/tmp.D9DXzEvOHn #/1578301c- e2fe-4981- 87b5-bee2c56fa1 4c/ /tmp/tmp.D9DXzEvOHn #/00:16: 3e:1c:57: 55/ /tmp/tmp.D9DXzEvOHn
Linux dawes 4.10.0-40-generic #44+gicv3sr.
ubuntu@dawes:~$ cd vm-save-restore/
ubuntu@
+ set -e
+ cloudrel=zesty
+ cloudimg=
+ sudo apt-get install -y cloud-image-utils qemu-kvm qemu-utils qemu-efi libvirt-bin screen uuid-runtime
Reading package lists... Done
Building dependency tree
Reading state information... Done
cloud-image-utils is already the newest version (0.30-0ubuntu2).
screen is already the newest version (4.5.0-5ubuntu1).
qemu-efi is already the newest version (0~20161202.
uuid-runtime is already the newest version (2.29-1ubuntu2.1).
libvirt-bin is already the newest version (2.5.0-3ubuntu5.6).
qemu-kvm is already the newest version (1:2.8+
qemu-utils is already the newest version (1:2.8+
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
+ test -f zesty-server-
+ echo #!/bin/sh
+ sudo tee /etc/qemu-ifup
+ echo
+ sudo tee -a /etc/qemu-ifup
+ echo set -e
+ sudo tee -a /etc/qemu-ifup
+ echo
+ sudo tee -a /etc/qemu-ifup
+ echo ip link set "$1" up
+ sudo tee -a /etc/qemu-ifup
+ echo ip link set "$1" master virbr0
+ sudo tee -a /etc/qemu-ifup
ubuntu@
+ i=0
+ [ -f /var/log/
+ name=4273-0
+ ./randmac.py
+ mac=00:
+ uuidgen
+ uuid=1578301c-
+ mktemp
+ xml=/tmp/
+ cp template.xml /tmp/tmp.D9DXzEvOHn
+ trap cleanup EXIT
+ mkdir -p vms
+ dd if=/dev/zero of=./vms/
64+0 records in
64+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 0.166913 s, 402 MB/s
+ dd if=/usr/
4096+0 records in
4096+0 records out
2097152 bytes (2.1 MB, 2.0 MiB) copied, 0.0602123 s, 34.8 MB/s
+ dd if=/dev/zero of=./vms/
64+0 records in
64+0 records out
67108864 bytes (67 MB, 64 MiB) copied, 0.16786 s, 400 MB/s
+ cat
+ cloud-localds vms/4273-0_seed.img vms/4273-
+ pwd
+ qemu-img create -f qcow2 -o backing_
Formatting './vms/4273-0.img', fmt=qcow2 size=2361393152 backing_
+ sed -i s/\#VM\#/4273-0/ /tmp/tmp.D9DXzEvOHn
+ pwd
+ sed -i s,\#DIR\
+ sed -i s/\#UUID\
+ sed -i s/\#MAC\
+ sudo virsh define /tmp/tmp.D9DXzEvOHn
Domain 4273-0 defined from /tmp/tmp.D9DXzEvOHn
+ sudo virsh start 4273-0
Domain 4273-0 started
+ sleep 60
+ sudo virsh save 4273-0 ./vms/4273-0.sav
Domain 4273-0 saved to ./vms/4273-0.sav
+ sudo virsh restore ./vms/4273-0.sav
Domain restored from ./vms/4273-0.sav
+ sleep 5
+ sudo virsh save 4273-0 ./vms/4273-0.sav
Domain 4273-0 saved to ./vms/4273-0.sav
+ sudo virsh restore ./vms/4273-0.sav
Domain restored from ./vms/4273-0.sav
+ sudo virsh save 4273-0 ./vms/4273-0.sav
Domain 4273-0 saved to ./vms/4273-0.sav
+ sudo virsh restore ./vms/4273-0.sav
Domain restored from ./vms/4273-0.sav
+ cleanup
+ sudo virsh destroy 4273-0
Domain 4273-0 destroyed
+ sudo virsh undefine 4273-0 --nvram
Domain 4273-0 has been undefined
+ rm -f ./vms/4273-0.img ./vms/4273- 0_CODE. fd ./vms/4273- 0_VARS. fd /tmp/tmp.D9DXzEvOHn ./vms/4273-0.sav vms/4273- 0_user- data vms/4273-0_seed.img