今天进行服务器例行重启的时候发现HomeAssistantOS虚拟机无法开启电源,错误显示对象类型需要托管的I/O。这个问题按照以下操作进行即可解决。
解决方法
一、启用Esxi SecureShell服务
二、确定出现问题vmdk文件位置
从Esxi Web管理界面主机菜单=>监控=>任务tab栏中查找虚拟机启动失败任务日志
三、通过SSH登入Esxi服务器
通过ssh登入Esxi服务器,推荐一个SSH工具XShell。下面将以XShell为例进行操作。
首先新建一个ssh会话连接,主机填写esxi服务器ip或者FQDN,SecureShell默认端口为22,点击连接。
这里推荐使用PublicKey秘钥登录作为身份验证方法具体操作方法参考VmwareDoc。如果暂时性登录也可以使用Keyboard Interactive方式键入密码
登录成功:
使用 vmkfstools工具对出现问题的vmdk文件进行修复:
>vmkfstools -x check 出现错误的vmdk文件绝对路径 Disk needs repaire >vmkfstools -x repair 出现错误的vmdk文件绝对路径 Disk was successfully repaired
而后重新开启虚拟机即可解决问题
问题原因
由于我只找到了解决方法没有找到问题原因,因此在此理顺一下问题。
首先使用在VmwareDocs直接查询问题原因:
没有从中文问题描述找到具体的说明。尝试翻译成英文搜索:object type requires hosted I/O
没有找到关联的问题。在谷歌上搜索:
Vmware Technology Network中相关问题解答:
因为这个虚拟机是HomeAssistantOS官方提供的一个vmdk文件,而在本次重启之前该虚拟机正常运行,因此我认为这个是解释是站不住脚的。
从HomeAssistant官网下载的文件为ova文件:
由于vSphere Client将会在导入前校验OVA文件,保证OVA文件与目标服务器相兼容,因此出问题的vmdk文件不是ESXi格式这种解释应该不正确。
从vmkfstools工具这边来查:
还是不明白vmdk文件出问题的原因。等以后能力提升了再回来看看。
v1.0wep 创建文章并完成解决方案编写