所以我似乎无法在网上找到很多关于如何做到这一点的信息,但本质上我希望能够有一个虚拟机盒(可以是 VirtualBox、VM Ware 或其他东西),它最初会用程序等进行设置,然后保存状态。然后这个虚拟机将被启动,您可以共享一个文件夹并对系统进行更改,但是一旦机器关闭或断电,机器的新状态就会立即丢失,然后机器将恢复到原始定义状态。当然,在共享目录上编辑的任何文件仍会保留在主机上。
值得一提的是,我希望这是一个 Windows 机器,但我不确定客户操作系统是否重要?您可以想象这与 Tails 作为实时发行版的工作方式相同,并且没有持久性。另一个考虑/奖励问题是;理想情况下,出于安全原因,任何临时 VM 磁盘/映像也会以某种方式自动在内存中创建。
答案1
VMware Workstation 专业版
- 按照您需要的方式设置虚拟机。
- 关闭虚拟机。
- 打开虚拟机 > 设置 > 硬件 > 硬盘 > 高级。
- 选择独立的和非持久。
- 根据需要对其他虚拟磁盘重复步骤 3-4。
- 如果您希望虚拟机磁盘的非持久写入不会写入主机磁盘,请设置虚拟机 > 设置 > 选项 > 常规 > 工作目录并将其设置为 RAM 磁盘上的目录。
(我手边没有最新版本的 VMware Workstation Pro,因此其他版本中的某些设置可能已被移动。)
VMware 播放器
上述操作也可以用于 VMware Player,但这样做需要手动编辑虚拟机的.vmx
配置文件:
- 关闭虚拟机并关闭 VMware Player。
.vmx
在文本编辑器中打开虚拟机的文件。- 找到要设为非持久性的虚拟磁盘文件的条目。它看起来应该类似于
TYPE_NODE.fileName = "YourDiskFile.vmdk"
、、、等。TYPE_NODE
ide0:0
ide1:0
scsi0:0
sata0:0
- 添加(或替换已存在)
TYPE_NODE.mode = "independent-nonpersistent"
具有相同内容的相应条目TYPE_NODE
。例如:sata0:0.mode = "independent-non-persistent"
- 根据需要对其他虚拟磁盘重复步骤 4。
- 如果您希望对虚拟机磁盘的非持久性写入不会写入主机磁盘,请添加/替换一个条目:
其中workingDir = "R:\SomeDirectory"
R:\SomeDirectory
对应于主机上的 RAM 磁盘目录。(如果您在 Linux 主机上运行,显然请使用 POSIX 路径。)
对于 VMware Workstation Pro 来说,一种更简单的方法(但不能满足您的所有要求)是将虚拟机配置为在虚拟机关闭时自动恢复快照(在虚拟机 > 设置 > 选项 > 快照)。但是,如果虚拟机进程突然终止(例如由于主机断电),则虚拟机在再次启动时将不会恢复。这似乎是一个合理的功能请求(或错误报告,取决于您的观点)。