在 VirtualBox 中,有没有办法在退出/关闭客户操作系统时擦除该操作系统的虚拟驱动器?
如果没有的话,有没有其他方法可以达到该目标而无需手动操作?
答案1
如果您想在每次启动时将 VirtualBox 虚拟机重置为“全新”操作系统,最简单的方法是安装操作系统并根据需要进行配置,然后将磁盘设置为“不可变”:
- 从 VirtualBox 管理器中,选择“文件”->“虚拟媒体管理器”。
- 选择您的虚拟机的虚拟磁盘映像。
- 点击“修改”。
- 选择“不可变”并单击“确定”。
现在,每次启动虚拟机时,磁盘都会重置为当前状态。您可以通过拍摄虚拟机快照暂时暂停启动时重置;删除快照将恢复重置行为。
请注意,此操作在启动时进行,而不是在关机时进行。如果您出于反取证原因进行清除,则需要寻找其他选项。
答案2
我的朋友,两个词,“Live CD”。
如果您在使用之间不打算保留任何东西,那为什么还要费心使用驱动器呢?许多版本的 Linux 都附带完整操作系统的 LiveCD 版本,您可以随心所欲地使用它们。关闭/终止虚拟机,所有这些都会消失,正如您想要的那样。
根本不需要创建虚拟磁盘。只有当您的主机操作系统将部分内存交换到您的页面文件时,它才会写入硬盘驱动器(但那是另一个问题)。
如果您认为实时 CD 会因为 CD 读取速度而变慢?请不要将其刻录到 CD 上。从硬盘驱动器运行 ISO,其读取速度与硬盘驱动器相同。
答案3
虽然你不是 100% 清楚你使用的是什么操作系统,甚至不清楚设置的主要目的是什么,但如果你使用虚拟盒已经使用它,并且你需要一个干净的客户操作系统,为什么不使用流浪汉编写构建、控制甚至销毁系统的脚本。
例如,在最基本的层面上,您可以执行以下操作来创建初始客户操作系统。在此示例中,它创建了 Ubuntu 14.04:
vagrant init ubuntu/trusty64
这将下载用于创建 Vagrant box 的初始系统映像,该映像基本上只是一个 VirtualBox。下载完成后,只需运行此命令即可启动系统:
vagrant up
像这样连接到客户操作系统:
vagrant ssh
像这样停止 Vagrant 实例:
vagrant halt
然后——满足您需求的关键——就是运行这个命令来销毁 Vagrant 盒子:
vagrant destroy
由于您的系统已经下载了 Vagrant 镜像ubuntu/trusty64
,因此您可以vagrant up
再次运行。
这是最基本的设置。但 Vagrant 的优点在于,您可以轻松创建配置脚本,每次构建机器时都可以自定义它。这样,您无需创建“原始”客户操作系统,每次通过 启动系统时都可以自定义它以满足您的需求vagrant up
。完成后,vagrant destroy
系统的所有痕迹都会消失。
你要知道,vagrant destroy
它不会“擦除”虚拟硬盘,而是删除文件。但说实话,如果虚拟磁盘映像可以删除并根据需要重新创建,那么“擦除”虚拟磁盘映像有什么好处呢?