23.3. Disk persistency
We disable disk persistency for both QEMU and gem5 by default, to prevent the emulator from putting the image in an unknown state.
For QEMU, this is done by passing the snapshot
option to -drive
, and for gem5 it is the default behaviour.
If you hack up our run script to remove that option, then:
./run --eval-after 'date >f;poweroff'
followed by:
./run --eval-after 'cat f'
gives the date, because poweroff
without -n
syncs before shutdown.
The sync
command also saves the disk:
sync
When you do:
./build-buildroot
the disk image gets overwritten by a fresh filesystem and you lose all changes.
Remember that if you forcibly turn QEMU off without sync
or poweroff
from inside the VM, e.g. by closing the QEMU window, disk changes may not be saved.
Persistency is also turned off when booting from initrd with a CPIO instead of with a disk.
Disk persistency is useful to re-run shell commands from the history of a previous session with Ctrl-R
, but we felt that the loss of determinism was not worth it.