![Vagrant 虚拟机(Virtualbox)是否可以避免意外关闭/重启?](https://linux22.com/image/1573906/Vagrant%20%E8%99%9A%E6%8B%9F%E6%9C%BA%EF%BC%88Virtualbox%EF%BC%89%E6%98%AF%E5%90%A6%E5%8F%AF%E4%BB%A5%E9%81%BF%E5%85%8D%E6%84%8F%E5%A4%96%E5%85%B3%E9%97%AD%2F%E9%87%8D%E5%90%AF%EF%BC%9F.png)
假设您的主机突然关闭或有人按下了重启按钮,并且您的 Vagrant VM 处于运行状态(例如,未开启halt
或处于非suspend
开启状态)。当主机再次启动时,它们还能存活吗?
注意:这是以 Virtualbox 作为提供程序的 Vagrant。
编辑:所谓幸存,是指不会被损坏,并且在主机因断电而关闭的情况下仍然能够手动或自动正常启动。
答案1
当主机关闭时,所有客户虚拟机都将突然非正常停止,除非您已采取措施让它们也正常关闭。
这也取决于关机的类型:操作系统的正常关机包括正常关闭所有应用程序(或尝试在分配的时间内关闭),这在手动关机或短按电源按钮时发生。另一方面,强制关机(通过断电或长按电源按钮)将对主机和客户机产生未知后果,它们可能会恢复,但运气不好也有可能损坏。
请参阅以下 VirtualBox 帖子以了解解决方案: 如何在主机关闭时自动关闭客户机?,建议使用以下命令:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" setextradata "VM NAME" GUI/DefaultCloseAction Shutdown
此外,除非您添加了启动脚本,该脚本将在启动时(仅作为无头模式)或登录时(GUI 或无头模式)启动虚拟机,否则虚拟机不会自动启动。如果您希望这样做,请参阅示例 这个答案,其中包含以下示例命令:
"C:\Program Files\Oracle\VirtualBox\VBoxManage.exe" startvm kubuntu --type headless
答案2
如果主机突然终止(例如按下重置按钮),又称“非正常终止”,则“同样的事情”将发生在该主机上当前运行的虚拟机上。这就像您按下了所有虚拟机上的重置按钮一样。结果,例如,所有仅存储在内存 (RAM) 中而不是 (虚拟) HD 上的数据都将丢失等。
换句话说,虚拟机将不是例如,当按下主机上的重置按钮时,虚拟机将从“停止”的位置继续运行。重新启动主机后,您也可以重新启动虚拟机(如果进行了适当的设置,则可以手动或自动重新启动)。
是否发生任何数据损坏取决于重启时数据所处的状态。您可以将其与使用普通 PC 的体验进行比较,有时在冷重启、“不正常”重启后会出现错误,有时则不会出现错误(或已自动修复)。这完全取决于安装了什么软件以及软件当时正在做什么。