Naja, das kommt darauf an. Eine VM kann sehr wohl persistent sein bzw. ich setze ausschließlich persistente VMs ein. Ich arbeite mit VMs, um zB verschiedene Software-Versionen, die sich auf demselben System beißen würden oder gar verschiedene Betriebssysteme erfordern, zu betreiben. Diese VMs haben virtuelle Festplatten und dort werden auch sämtliche Daten gespeichert wie das Host-System es tun würde, inkl. Cookies, installierter Software, etc. Allerdings haben meine VMs weder Internet- noch Netzwerkzugriff, die einzige Verbindung nach "außen" - aka das Host-System - ist der Shared-Folder von VMWare, über den ich zB Projekt-Dateien (zB WinCC) transferiere. Dennoch werden sämtliche Daten und Änderungen an der VM - zB neu installierte Tools - auch bei einem Neustart übernommen. Cookies wären ebenfalls drauf sofern sie nicht explizit gelöscht würden.
Auf Host-Ebene kenne und arbeite ich zB mit dem EnhancedWriteFilter von MS, der etwaige gespeicherte Daten nur temporär in einem Overlay speichert und beim Neustart verwirft. Persistente Änderungen muss man explizit über einen "Commit" übernehmen (Overlay --> HDD). Keine Ahnung ob es sowas auch bei VMs gibt oder ob man VMs sogar von vornherein so einstellen kann, dass sie vom ursprünglichen Snapshot aus starten? Keine Ahnung, so sehr habe ich mich damit auch noch nicht beschäftigt.
Ich vermute mal du meinst eher Live-Systeme wie zB ein Live-Linux von CD oder auch vom USB-Stick. Diese arbeiten in der Tat nur im RAM bzw. nutzen teilweise auch unpartitionierte Bereiche von HDDs, wenn ich mich nicht irre. Die Daten vom installierten Betriebssystem fassen sie jedoch nicht an. Ein Live-Linux (mit Windows geht das meines Wissens nach auch) ist tatsächlich ziemlich sicher, sofern man auch dort nicht explizit die Festplatte(n) als Laufwerke mountet und so wieder eine Datenverbindung und damit ein potentielles Einfallstor herstellt. Wobei das bei Linux --> Windows eher unkritisch ist, weil ein potentieller Virus ja sowohl Linux als auch Windows befallen müsste
*edit
Hab gerade mal etwas gegoggelt. Ich nutze VMWare
Player, der kann sowas nicht, aber die VMWare
Workstation kann wohl so eingestellt werden, dass eine VM immer auf den ursprünglichen Snapshot zurückgesetzt wird. In diesem Falle würden tatsächlich alle Änderungen in der VM beim Neustart verworfen werden.