virtualbox虚拟机运行中断,启动报错“获取 VirtualBox COM 对象失败”

文章目录

    • 问题现象
    • 排查解决
    • 总结

问题现象

  • 2月7日下午四点多,我已经休假了,某县的客户运维方打来电话,说平台挂了,无法访问
  • 客户是提供的一台Windows server机器部署平台,是使用virtualbox工具安装的CentOS7.9虚拟机
  • 和运维沟通,他是今天刚来接班在春节假期值班的,上午平台还好好的,下午使用时发现不行了,无法访问,当时也有一个报错信息,但是他没有记录
  • 他先是尝试关闭虚拟机重启,发现无法启动,报错;关闭当前电脑再去重启,还是报错:虚拟机控制台-严重错误 “获取 VirtualBox COM 对象失败,应用程序将被中断
    在这里插入图片描述
  • 让他打开报错详细信息,看到报错Document is empty.,报错代码E_FAIL (0x80004005)
    在这里插入图片描述
  • 因为客户的这台作为服务器的电脑,只是用的普通电路线路,而这条线路在前段时间又接了充电桩,导致前段时间老是断电重启,我怀疑这次也是断电重启导致的文件损坏,问了下,发现今天没有断电重启,就突然不行了,所以也不是这个问题

排查解决

  • 其实报错信息很明显,就是文件C:\Users\Administrator\.VirtualBox\VirtualBox.xml为空了,0kb,当时没细究为啥是空白的

  • 按照以往的经验,先是重启电脑,再以管理员权限启动virtualbox,再次启动虚拟机,还是不行,只能去网上搜索解决方案了

  • 一开始搜到的一些结果,是重装虚拟机工具virtualbox,重新注册虚拟机进来。我觉得不靠谱,而且这个是生产环境,不好做这个有风险的操作

  • 然后搜索的一个和我类似的报错的一个解决方案《VirtualBox因为强制关机,第二天启动获取 VirtualBox COM 对象失败。亲测解决方案》,类似的报错,不少人评价解决了,我按照步骤实验了一遍,还是不行
    在这里插入图片描述

  • 接着搜索到一个和我报错完全一致的文章,文章说,找到这个文件位置(默认C盘,就是报错里的文件路径C:\Users\Administrator\.VirtualBox),删除这个空的文件VirtualBox.xml,重新启动virtualbox和虚拟机即可(因为这个文件是启动时,从虚拟机自己的文件夹的.vbox维护到C盘这个文件里),结果还是不行

  • 还有说,把虚拟机删除,重新注册进来的,尝试了还是不行,无法注册进来,报错信息到是变了下C:/新平台/虚拟/Centos7.v1.1.0/Centos7.v1.1.0.vbox为空
    在这里插入图片描述

  • 这个时候,我们到了虚拟机文件夹里,发现这个.vbox文件就是0KB,然后去查看了下机器的磁盘空间,爆红,没空间了,破案了
    在这里插入图片描述

  • 虚拟机目录的.vdi磁盘文件262G,Snapshots里的.vdi磁盘文件218G,而总的机器磁盘空间就500多G(也没想到机器空间这么小),加上机器上的其他文件,随着平台的运行,慢慢的就爆满了

  • 磁盘空间问题之前遇到一次:《在Windows server 2012上使用virtualBox运行CentOS7虚拟机,被强制暂停》,磁盘空间不足时,虚拟机无法运行。于是开始删除电脑磁盘里不要的文件,删了30G左右,继续启动虚拟机,还是不行,还是同样的报错

  • 查看了下这个文件夹,发现有一个同名的.vbox-prev文件,时间刚好是反馈的系统无法访问的时间,把这个文件内容恢复的.vbox文件里,重新注册进去,可以了,解决

总结

  • 客户只提供了Windows server服务器,而且配置比较低(500+G存储空间),而且该机器电路不稳定,偶发断电
  • 为了防止断电文件损坏导致平台无法恢复,就让运维加了备份,然后磁盘就撑满了
  • C:\Users\Administrator\.VirtualBox\VirtualBox.xml文件,和各个虚拟机的.vbox文件。都是定时备份新建的(原文件与加了后缀-prev的备份文件),在新建时没有空间,创建了0KB的文件,导致了 严重错误:获取 VirtualBox COM 对象失败
  • 此时可以先删除机器上一些文件,然后恢复 C:\Users\Administrator\.VirtualBox\VirtualBox.xml文件和各个虚拟机的.vbox文件
  • 再重启VirtualBox与虚拟机就可以了,然后可以删除快照备份
    在这里插入图片描述
  • 删除快照备份时,会将快照与当前最新时间的系统文件对比合并,不会更改当前虚拟机的实际状态,只是损失一个时间点的备份
    在这里插入图片描述
  • 删除备份后,系统空间基本上足够了。此时快照与当前系统文件已合并,相当于删除了绝大部分重复的文件,释放了很多空间
  • 此时可以创建一个新的快照备份,后续再定期去删除旧的备份,创建新的备份。每次删除快照,都会合并一次,这样保持快照文件不会特别大
  • 如果觉得虚拟机磁盘文件过大,也可以使用VirtualBox自带的工具VBoxManage进行压缩瘦身,详情参考:VirtualBox虚拟机磁盘VDI文件压缩瘦身,效果还是比较好的
  • 当然,最好是有一个好磁盘,又大又快

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/691525.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Mysql事务原理与优化

概述 我们的数据库一般都会并发执行多个事务,多个事务可能会并发的对相同的一批数据进行增删改查操作,可能就会导致我们说的脏写、脏读、不可重复读、幻读这些问题。 这些问题的本质都是数据库的多事务并发问题,为了解决多事务并发问题&…

华为配置旁挂二层组网隧道转发示例

配置旁挂二层组网隧道转发示例 组网图形 业务需求组网需求数据规划配置思路配置注意事项操作步骤配置文件扩展阅读 业务需求 企业用户通过WLAN接入网络,以满足移动办公的最基本需求。且在覆盖区域内移动发生漫游时,不影响用户的业务使用。 组网需求 AC组…

基于python的租车管理平台/汽车租赁网站

功能介绍 平台采用B/S结构,后端采用主流的Python语言进行开发,前端采用主流的Vue.js进行开发。 整个平台包括前台和后台两个部分。 前台功能包括:首页、详情页、用户中心、家政入驻模块。后台功能包括:总览、车辆管理、分类管理…

第7集《佛遗教经》

和尚尼慈悲,诸位法师、诸位居士,阿弥陀佛! 请大家打开讲义第十三面,丙三、对治灭烦恼法要 基本上,从事宗教的修学,目的是为了改造我们的生命,希望透过宗教的修学,使生命离开痛苦&a…

【python学习篇1】python基本语法

目录 一、第一个python程序 二、基本语法,数据类型,字面量,循环语句等内容 2.1字面量 2.2注释 2.2.1单行注释 2.2.2多行注释 2.3变量 2.3.1认识变量 2.3.2查看数据类型 2.3.3数据类型转换 2.3.4字符串的三种定义方式 2.3.5字符串…

Flutter开发环境和打包流程

Flutter开发环境和打包流程 1.本地开发环境 1.1.安装flutter 官网安装flutter有2种方式,一种是下载flutter的sdk包,一种是VS Code直接安装,照着官网的安装flutter的流程走没有什么问题 1.2.安装Android Studio 去Android Studio的官网直…

Node响应Vue axios请求方法说明

1、安装 npm install axios import axios from "axios"; 2、Vue前端 get请求使用 axios.get(url, { params: { key:value } }) 来请求 post请求使用 axios.post(url, { key: value }) 来请求 3、Node后端 get请求使用 req.query[params_name] 来获取 post请求使…

若依不分离版本部署流程

一、分离与不分离的区别 参考博客:前后端分离与不分离的本质区别!_前后端分离本质-CSDN博客 概念适用场景前后端不分离前端页面看到的效果都是由后端控制,由后端渲染页面或重定向适合纯网页应用前后端分离后端仅返回前端所需的数据&#xf…

Android widget基础指南

widget的概念最早是由一名叫Rose的苹果工程师提出,后来经过多方面机缘巧合的发展下,便有了今天Android平台上的小组件widget,一般APP开发可能应用场景较少,最常见的莫过于天气APP的widget。但对于从事IOT或车载方向的同学&#xf…

C 练习实例71-结构体

题目&#xff1a;编写input()和output()函数输入&#xff0c;输出5个学生的数据记录。 代码&#xff1a; #include <stdio.h> typedef struct{char name[20];char sex[2];int age; }student; //定义了一种新的数据类型&#xff0c;叫做&#xff1a;student void input(…

WebRTC最新版报错解决:FileNotFoundError: LASTCHANGE.committime (二十五)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒体系统工程师系列【原创干货持续更新中……】🚀 人生格言: 人生从来没有捷径,只…

图形渲染基础学习

原文链接&#xff1a;游戏开发入门&#xff08;三&#xff09;图形渲染_如果一个面只有三个像素进行渲染可以理解为是定点渲染吗?-CSDN博客 游戏开发入门&#xff08;三&#xff09;图形渲染笔记&#xff1a; 渲染一般分为离线渲染与实时渲染&#xff0c;游戏中我们用的都是…

【Linux取经路】文件系统之重定向的实现原理

文章目录 一、再来理解重定向1.1 输出重定向效果演示1.2 重定向的原理1.3 dup21.4 输入重定向效果演示1.5 输入重定向代码实现 二、再来理解标准输出和标准错误2.1 同时对标准输出和标准错误进行重定向2.2 将标准输出和标准错误重定向到同一个文件 三、再看一切皆文件四、结语 …

书生开源大模型训练营-第3讲笔记

5.Langchain和InternLM搭建知识库 5.1环境 还是一样&#xff0c;开发机中创建镜像&#xff0c;以及所需依赖 pip install modelscope1.9.5 pip install transformers4.35.2 pip install streamlit1.24.0 pip install sentencepiece0.1.99 pip install accelerate0.24.15.2模…

python之GIL

GIL&#xff08;global interpreter lock&#xff09;&#xff0c;即全局解释器锁 在单核时代&#xff0c;崇尚优美、清晰、简单的 Python 之父选择在解释器层面实现了一把全局互斥锁&#xff0c;来保护 Python 对象从而实现对单核 CPU 的使用率&#xff0c;这种做法在单核时代…

git操作(二)

之前我们对于git已经有了一定的了解&#xff0c;现在我们学习一些关于git的新内容。 一.修改⽂件 首先&#xff0c;我们先来认识一个命令&#xff1a; git status //⽤于查看在你上次提交之后是否有对⽂件进⾏再次修改,注意指的是仓库和工作区对比 关于三区的内容&#xff…

如何有效利用API接口进行数据采集

在当今数字化的世界中&#xff0c;API&#xff08;应用程序编程接口&#xff09;作为数据交换的桥梁&#xff0c;对于电商企业来说尤为重要。它们允许企业从丰富的数据源中提取必要的信息&#xff0c;为商业决策提供数据支持。本文将围绕如何高效地利用API进行数据采集展开讨论…

实际生产中的一次非典型的基于jmeter的接口自动化实践

实际工作中遇到过一次自动化巡检的需求&#xff0c;作为测试人员没法从源代码入手&#xff0c;加之数据库也不熟悉&#xff0c;故采取接口自动化的方式来实现巡检&#xff0c;算是一种歪门邪道吧&#xff0c;应该不是接口自动化的常规使用方式。jmeter在这里的作用实际上也只是…

docker安装一系列镜像

启动docker systemctl start docker docker 启动已经停止的容器 docker start idOrName PS&#xff1a;idOrName为容器的id或者名称 1、安装mysql镜像 拉取mysql5.7的镜像 docker pull mysql:5.7 查看镜像 docker images 启动mysql #启动mysql docker run --name mysql…

云呐电网智能运维包含哪些?智能运维都有哪些框架

电网智能运维是一个复杂的系统&#xff0c;包括多种技术和方法&#xff0c;为提升电力系统的效率和稳定性。以下是你提出的问题的实际答案: 网络智能运维的核心技术与应用&#xff1a; 故障检测&#xff1a;根据实时监测和数据分析&#xff0c;对电网中的故障进行快速、准确的…