ESXi下OpenWRT/LEDE启动报错(对象类型需要托管的 I/O)
对ESXi进行日常维护,然后直接关闭了LEDE软路由,再启动时竟然报错无法启动,虚拟机报错(对象类型需要托管的 I/O);感觉问题很诡异,固件是自编译的
Lean's
大神的LEDE。
在查阅了VMWare社区的帖子后,问题可能是非正常关机导致vmdk损坏,需要通过vmkfstools
终端命令进行修复。
- 开启ssh并登陆找到损坏的vmdk文件的目录,一般是在
/vmfs/volumes/
目录下。
# vmkfstools 检查命令
vmkfstools -x check <vmdk文件>
# 执行结果
vmkfstools -x check openwrt-lede.vmdk
# 以下结果表示修复完成
Disk needs repair.
- 检查vmdx是否损坏,执行下面的命令,如果显示
Disk needs repair.
则代表需要修复。
# vmkfstools 修复命令
vmkfstools -x repair <vmdk文件>
# 执行结果
vmkfstools -x repair openwrt-lede.vmdk
# 以下结果表示修复完成
Disk was successfully repaired.
- 修复vmdx文件,提示
Disk was successfully repaired.
即代表修复完成。 - 再次开机,问题解决。