1. A method for generating a checkpoint for a virtual machine (VM) using a virtual disk and VM memory, the method comprising: initiating generating a checkpoint for the VM; and upon initiating the generating of the checkpoint and prior to a completion of generating the checkpoint for the VM: saving a device state of the VM; saving contents of the VM memory of the VM; and separate from the generating of the checkpoint, enabling the VM to continue reading from, writing to, and executing code from the VM memory.