VirtualBox 中暂停和保存状态有什么区别

VirtualBox 中暂停和保存状态有什么区别

手册中的目录没有提及此处的“暂停”或“保存”机器状态: https://www.virtualbox.org/manual/UserManual.html

我不知道在这些文档中哪里可以找到它,而且我的 google-foo 似乎太弱了,无法在线找到这些内容的详细信息。

有人可以向我解释一下以下之间的区别吗:

  • 暂停虚拟机
  • 保存虚拟机状态

如果我保存状态,则似乎其运行状态(其内存)被写入磁盘,以便以后可以恢复。我在关闭笔记本电脑主机时执行此操作,并且能够在保存后可靠地重新启动客户机。我可以改为暂停客户机吗?这似乎比保存状态更快完成?

答案1

查看第8.13节您链接的手册的详细信息:

VBoxManage controlvm <vm> pause暂时暂停虚拟机,而不会永久改变其状态。VM 窗口将以灰色显示,表示 VM 当前已暂停。(这相当于在 GUI 的“Machine”菜单中选择“Pause”项)。

...

VBoxManage controlvm <vm> savestate将把虚拟机的当前状态保存到磁盘,然后停止虚拟机。(这相当于在 GUI 的“机器”菜单中选择“关闭”项或按窗口的关闭按钮,然后在对话框中选择“保存机器状态”。)

此外,你也许会发现PDF 版本用户手册(例如v5.2.18) 比分页 HTML 版本更易于搜索。


暂停虚拟机就像最小化未保存的文件的窗口以供以后使用,而保存虚拟机的状态就像将文件的副本写入磁盘并关闭程序。

虽然最小化的窗口仅占用少量屏幕空间,并且在恢复之前无法与其交互,但负责该窗口的程序仍在后台占用系统资源。当然,您仍然可以与其他未最小化的窗口进行交互。

同样,暂停的虚拟机理想情况下仅使用微不足道的处理能力,在恢复之前保持无响应状态,并且仍然消耗内存。其他未暂停的虚拟机仍将保持交互状态。您也可以将虚拟机暂停视为SIGSTOPUnix 进程。

最小化窗口以释放屏幕空间或暂停客户操作系统的执行以释放处理能力的优点是,两者都是临时回收资源的快速方法,但缺点是,如果系统或主机操作系统出现故障,未保存的工作或客户状态将丢失。如果是后者,客户操作系统可能会受损。


另一方面,在程序将其文件保存到持久存储并退出后,该文件在重新启动后将保持不变,并且该程序现在不使用任何 CPU 和内存资源。

类似地,当虚拟机保存其状态并退出时,基本上也会发生同样的事情,因为状态被写入存储并释放虚拟机使用的实时资源。在这种情况下,虚拟机中正在保存的客户机状态可以被认为是一个经过修改的文档,该文档曾经存在于内存中,现在写入磁盘。

将文件保存到磁盘并关闭程序或保存虚拟机状态的优点是,这两种方式都可以使数据在系统或主机崩溃后继续存在,但这两种情况的缺点是,重新打开程序比恢复正在运行的程序的最小化窗口要慢,从磁盘重新加载虚拟机状态比在虚拟机已经加载到内存中时恢复执行要慢。

答案2

保存虚拟机会将虚拟机的整个状态写入磁盘。正如您所提到的,这允许您在重新启动后恢复。

暂停时无法执行此操作。暂停虚拟机只会停止其执行。CPU 停止运行命令,内存和磁盘的读写操作也停止。但是,虚拟机内存的所有内容都在主机内存中。使用暂停的虚拟机重新启动主机计算机与在正在运行的机器上按下重置按钮没有什么不同。您可能会丢失数据,甚至更多。

除非您尝试暂时释放 CPU 以执行其他任务,否则没有太多理由暂停虚拟机。您可以在进行某种测试之前暂停虚拟机,这样您就可以准备好观察结果。我想还有其他理由暂停虚拟机,但我想不出好的理由。

最后,如果您需要重新启动,您应该保存虚拟机状态,或者正确关闭它。

相关内容