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

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

启动错误

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

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