# Linux Kernel Module Cheat

### 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.

- gem5 disk persistency