软媒设计
ESXi下OpenWRT/LEDE启动报错(对象类型需要托管的 I/O)

对ESXi进行日常维护,然后直接关闭了LEDE软路由,再启动时竟然报错无法启动,虚拟机报错(对象类型需要托管的 I/O);感觉问题很诡异,固件是自编译的Lean's大神的LEDE。

启动错误

在查阅了VMWare社区的帖子后,问题可能是非正常关机导致vmdk损坏,需要通过vmkfstools终端命令进行修复。

  1. 开启ssh并登陆找到损坏的vmdk文件的目录,一般是在/vmfs/volumes/目录下。
# vmkfstools 检查命令
vmkfstools -x check <vmdk文件>
# 执行结果
vmkfstools -x check openwrt-lede.vmdk
# 以下结果表示修复完成
Disk needs repair.
  1. 检查vmdx是否损坏,执行下面的命令,如果显示Disk needs repair.则代表需要修复。
# vmkfstools 修复命令
vmkfstools -x repair <vmdk文件>
# 执行结果
vmkfstools -x repair openwrt-lede.vmdk 
# 以下结果表示修复完成
Disk was successfully repaired.
  1. 修复vmdx文件,提示Disk was successfully repaired.即代表修复完成。
  2. 再次开机,问题解决。