背景:今天由于电脑磁盘满了,导致正在运行的virtualBox强制退出,之后便打不开了,错误提示:无法获取virtualBox COM对象。
原因:virtualBox意外退出后,安装目录下的相关文件VirtualBox.xml被清空了,至于VirtualBox.xml的具体位置,可以通过查看错误详情看到。
解决方法:
1.通过命令行进入virtualBox安装目录,我的在/Users/znl/Library/VirtualBox ,输入命令:
cd /Users/znl/Library/VirtualBox
2.查看目录下的文件:
ls
3.看到了没有,有两个文件VirtualBox.xml和VirtualBox.xml-prev文件,此时查看VirtualBox.xml文件:
cat VirtualBox.xml
文件是空的,这就是罪魁祸首了。
那么VirtualBox.xml-prev文件呢?用同样的方式查看,里面是有内容的。其实这个文件是意外退出后,系统自动为你备份的一个缓存文件,里面存放的就是原来VirtualBox.xml中的内容。
4.修复丢失的内容
既然知道这个,那就很容易解决了,直接将VirtualBox.xml-prev中的内容拷贝到VirtualBox.xml文件就好了。或者也可以删除VirtualBox.xml文件,并将VirtualBox.xml-pre命名为VirtualBox.xml。
如何进行拷贝?
cat VirtualBox.xml-prev
查看VirtualBox.xml-prev内容,可以通过鼠标直接复制。
1.通过vim打开VirtualBox.xml文件
vim VirtualBox.xml
2.进入编辑模式
i
3.粘贴
crt+v
4.退出vim编辑模式
esc
5.退出保存文件
shift + zz
这样就可以了,再打开你的virtualBox,是不是可以打开了,打不开就去找其他办法吧,我也没着了。
但是,这还没有完,你可能会发现,virtualBox下的系统无法打开了,这个原因跟virtualBox无法打开的原因如出一辙,按照相同的思路去解决就可以了。
重要的是:在mac系统下,意外退出会将丢失的文件保存在一个对应的-prev文件中,想办法用它来恢复原文件吧!