解决ESXI异常关机重启后虚拟机磁盘损坏的问题
ESXI异常关机重启后,虚拟机起不来,报错:“对象类型需要托管的 i/o”,一般解决办法就是根据错误信息中的vmdk路径,执行下面的命令修复即可:
vmkfstools -x repair /vmfs/volumes/5d582a2a-40abb997-8ffd-e43a6e0448e3/LEDE/openwrt-x86-64-combined-squashfs.vmdk
(里面的vmdk路径修改为你错误信息里面的路径)
但是这个无法从根本上解决问题,后面异常关机重启还是会有这个错误。
这种情况很可能是你创建的虚拟机的时候,是直接添加现有硬盘,用别人提供的vmdk文件创建的硬盘。解决办法有两种:
一种是提供固件的人,如果提供了img和vmdk两个格式的文件,不要用vmdk格式添加现用硬盘,自己用starwind把img格式转换成esxi格式的,这样转换出来的会有两个vmdk文件,一个带-flat的,一个不带,把两个文件上传到虚拟机,然后添加现有硬盘,用自己转换的这个就没问题了。
另一个方法是,如果你已经用了vmdk格式的文件,并且不想重新安装,可以用下面的命令转换现有硬盘:
vmkfstools -i source\_file destination\_file -d thin
(source\_file 就是出错信息里面提示的那个vmdk文件的路径,destination\_file 名字自己定义一个就行)
转换完毕之后就会生成两个vmdk文件,比如20201205_LEDE_1907.vmdk和20201205_LEDE_1907-flat.vmdk。
然后从虚拟机中删除之前的硬盘,添加现有硬盘,选中刚刚转换出来的新硬盘即可。