本文适用版本:ESXi 7.0 U3 / 8.0 U2 / 9.0 GA(三版统一报错,解决方案略有差异)阅读时长:约 8 分钟难度:⭐⭐⭐(需在 DCUI/物理机前操作,不建议生产机远程盲操作)一、为什么写这篇文章?最近陆续有几位网友私信问同一个问题:装 ESXi 的时候跑到一半,屏幕突然卡住,报bootbank is corrupted,再也进不去系统。搜遍全网,要么是让你重新装一下试试,要么就是一堆英文论坛的复制粘贴。问的人还挺多,我就决定写一篇系统点的攻略,把这个问题彻底讲清楚。好消息:这问题 90% 的情况下能救回来,不用推倒重来。坏消息:前提是你得搞清楚是真损坏还是假损坏。二、先搞懂 bootbank 是什么ESXi 的系统盘有个特殊设计——为了保证升级可回滚,系统镜像会同时存在两个 bootbank 分区:┌─────────────────────────────────────┐ │ /bootbank ← 当前启动的活动镜像 │ ├─────────────────────────────────────┤ │ /altbootbank ← 上次升级保留的备份 │ └─────────────────────────────────────┘ESXi 启动时会做校验:读/bootbank/boot.cfg,验证所有 VIB 的签名如果校验失败,就尝试从/altbootbank启动(回滚机制)两个都坏了才会报 “bootbank is corrupted”关键认知:90% 的corrupted其实是签名校验失败,文件本身没坏。盲目重装会丢失自定义 VIB(网卡驱动、RAID 卡驱动、OEM 定制包)。三、报错现场长什么样?3.1 物理机安装阶段[OK] Loading module ipmi_dev [OK] Loading module nvmexpress [!!] Cannot find boot configuration [!!] bootbank is corrupted [!!] The system cannot continue. Halting now.ESXi 安装器在写入 bootbank 那一刻就坏了,屏幕卡住。3.2 已运行的 ESXi 主机启动时停在这个界面:Loading VMware ESXi... bootbank is corrupted. Unable to find a trusted signer for required updates. Press any key to continue boot from altbootbank.按任意键可能能从 altbootbank 起来,但系统会留下警告日志,/var/log/vmkernel.log里能看到:WARNING: Bootbank: Cannot find a trusted signer WARNING: USB: device descriptor read/64, error -110四、三种根本原因 对应解法我把所有 case 归成 3 类。情况一:安装镜像本身坏了(最常见,占 60%)症状:不同物理机用同一 U 盘装都报同一个错,或者新机器第一次装就报。排查:# 1. 校验 ISO 完整性(MD5/SHA256)certutil-hashfileD:\VMware-ESXi-8.0U2c-23825597-depot.zip SHA256# 官网给的 SHA256: a1b2c3d4e5f6...# 必须完全一致,一个字符都不差# 2. 校验 U 盘写入是否完整# Rufus 写完后勾选校验写入,或用:ddif/dev/sdbof/tmp/usb_dump.imgbs4M sha256sum /tmp/usb_dump.img解决:# 重新下载 ISO(用官方镜像源)# 推荐用 VMware Customer Connect 而不是网上随便搜的网盘版# https://customerconnect.vmware.com/downloads/info/slug/datacenter-cloud-infrastructure/vmware-vsphere/8-0# 重新烧录 U 盘(推荐 Rufus,而不是 UltraISO)# 注意:Rufus 选 DD 模式,不是 ISO 模式为什么 Rufus 必须用 DD 模式?ISO 模式会改写 U 盘的 MBR 分区结构,ESXi 启动器识别不了;DD 模式是字节对字节复制,100% 还原 ISO 里的启动扇区。情况二:硬件兼容性问题(占 30%)症状:同一镜像在旧服务器上能装,在新服务器上就报 corrupted。多见于:14 代以后的新 CPU(ESXi 9.0 优化方向)NVMe 5.0/PCIe 5.0 SSDRAID 卡直通模式 vs 硬件 RAID 模式混用排查(进不去系统的,用另一台能跑的机器制作 live USB):# 用 ESXi 自己的命令验证镜像兼容性(进入 Embedded Mode)# 启动时按 ShiftO 加引导参数:# runweasel cdromBoot allowHibernationTRUE hddBootCimlerDelay10# 装到一半卡住时,切到另一个 TTY(AltF1~F12)看日志tail-f/var/log/vmkernel.log# 常见报错:# Unable to load module xxx: missing dependency# Unsupported CPU family解决:硬件解法14 代 Intel / AMD Genoa升级到 ESXi 8.0 U2b 以上,或用 ESXi 9.0NVMe 5.0 SSD进 BIOS 把 PCIe 5.0 槽降到 PCIe 4.0RAID 卡 JBOD 模式进 RAID 卡 BIOS 改成 HBA / RAID 模式,不要混用老机器装新版 ESXi用 VMware HCL(https://vmware.github.io/cpu-check/)验 CPU 兼容性官方 HCL 验 CPU 命令:# 在能联网的机器上跑curl-sLhttps://vmware.github.io/cpu-check/check.py|python3# 会输出 CPU 是否在 ESXi 8.0/9.0 支持列表情况三:签名校验失败 / altbootbank 也坏(占 10%,最难)症状:镜像没坏、硬件也在 HCL 里,但启动就是过不去签名验证。排查(需要从 altbootbank 或 Live USB 启动):# 从 altbootbank 启动(如果还能起来)# /etc/init.d/hostd restart 不一定有效,直接重签:esxcli software profile update\--profileESXi-8.0U2c-23825597-standard\--depot/vmfs/volumes/your-datastore/iso/VMware-ESXi-8.0U2c-23825597-depot.zip强力解法:用esxcli software profile install --dry-run先干跑一遍:# 先把镜像传到 ESXi 的某个 datastore(用 vCenter 拖文件 / Winscp / scp)# 推荐放 datastore 而不是 /tmp,后者重启会被清esxcli software profileinstall\--dry-run\--depot/vmfs/volumes/datastore1/iso/VMware-ESXi-8.0U2c-23825597-depot.zip\--profileESXi-8.0U2c-23825597-standard# 看输出里有没有 VIBs to be installed 和任何 warning# 如果 dry-run 没问题,再去掉 --dry-run 真装如果还是失败,用核武器级方案——手动重建 bootbank:# ⚠️ 高危操作,需要从 ESXi Live CD 启动(VMware-VMvisor-Installer 镜像本身可当 Live USB)# 1. 挂载损坏的 bootbankmkdir/mnt/brokenmount/dev/sda5 /mnt/broken# sda5 视实际情况而定# 2. 备份里面残留的 VIB 列表ls/mnt/broken/boot.cfgcat/mnt/broken/boot.cfg|grepmodules# 3. 用新镜像里的 boot.cfg 覆盖cp/mnt/usb/boot/boot.cfg /mnt/broken/boot.cfg# 4. 把缺失的 VIB 从镜像里补回来forvibin/mnt/usb/vib20/*/*.vib;docp$vib/mnt/broken/done# 5. 卸载重启umount/mnt/brokenreboot五、装完后,做 3 件事防止再犯永远保留原始 ISO 的 SHA256 校验值,存到内部 Wiki升级用 vLCM(vSphere Lifecycle Manager)而不是手动 esxcli,vLCM 会先 dry-run装系统时拍快照——虚拟化部署工具(MAAS、Cobbler、Foreman)能保留 bootbank 完整备份六、速查命令卡(可收藏转发)# 校验镜像sha256sum VMware-ESXi-*.iso# 验证 dry-run 安装esxcli software profileinstall--dry-run--depot/path/to/depot.zip--profileESXi-X.XUXX-XXXXXXX-standard# 手动重建 bootbank(从 Live CD)mount/dev/sda5 /mnt/brokencp/mnt/usb/boot/boot.cfg /mnt/broken/umount/mnt/brokenreboot# 检查当前 bootbank 健康度esxcli storage filesystem list|grepbootbank