家里有台HP Z4G4 Workstation工作站,底层安装运行了VMware的ESXi Hypervisor,作为Homelab的All in one环境。

之前安装ESXi 8的时候有个问题,在启动ESXi安装阶段,一直停留在“Shutting down firmware services...”这个地方。

我知道可能大多数人遇到的问题都是如下报错,解决方法也是在安装向导前按Shift+O,添加ignoreHeadless=TRUE参数。

Shutting down firmware services…
Using 'simple offset' UEFI RTS mapping policy
Relocating modules and starting up the kernel…

实际上,这个方法也许有用但并不适合我,而且你看上面的图片,我的报错信息里只有Shutting down firmware services...。

我的工作站肯定不在官方的VCG支持列表里,但我当时配的时候,CPU、硬盘、网卡是满足兼容性的,并支持最新的ESXi 8。

当然后来,我通过将工作站BIOS启动方式调整为Legacy传统启动并关闭Secure Boot安全启动后,是可以顺利进行安装和使用。

但是,我想要使用UEFI+Secure Boot方式,我觉得这个问题应该是不难解决,我后面也尝试过升级固件调整配置参数等,未果。

经过一段时间网上资料的查询,也看到有好几位国外的朋友遇到这个相同问题,但都没有解决,不过却给我提供许多参考方向。

最后,结合VMware官方的KB和VMware工程师William的文章,现在我的Z4 G4可以在UEFI+Secure Boot上安装运行ESXi了。

参考VMware KB 76159,出现此问题的原因可能是,在某些主机上,ESXi的引导加载程序Bootloader与UEFI固件版本不兼容导致的。

为什么下面要用到ESXi 6.7 U2 (13006603)镜像呢?因为你在UEFI+Secure Boot模式下使用ESXi 6.7 U2镜像可以正常完成安装的!如果你安装了ESXi 6.7 U2 (13006603),想要升级或者新安装ESXi 6.7 U3(14320388),那么就会向上面那样停留在哪里。文章中说了这个问题在ESXi 6.7 EP13(15018017)中得到了修复,不过你可以看到,我使用了最新的ESXi 8 U2b镜像安装,这个问题依然存在,我也试过ESXi 7.x和6.7 U3,问题同样存在,不知道为什么VMware这么久了都没有修复?!

参考William的文章,他说用新的ESXi镜像引导加载程序来替代旧镜像的引导加载程序,我的做法与他刚好相反,我想,将旧的镜像引导加载程序来替换新镜像的引导加载程序是否可行,因为上面说了ESXi 6.7 U2 (13006603)镜像可以被正常安装和使用,目前来看,这个方法确实有效而且运行似乎也很正常。

下面把解决过程分享给需要的朋友:

  • Step 1:使用ESXi 6.7 U2 (13006603)镜像中的EFI/BOOT/BOOTX64.EFI文件替换ESXi 8镜像中的EFI/BOOT/BOOTX64.EFI文件,制作引导盘并完成ESXi安装。
  • Step 2:重启主机,使用Ubuntu镜像进救援模式,再次使用ESXi 6.7 U2 (13006603)镜像中的BOOTX64.EFI文件替换ESXi 8 EFI分区系统中的mboot64.efi文件。

使用ESXi 6.7 U2 (13006603)镜像中的EFI/BOOT/BOOTX64.EFI文件替换你所安装的ESXi镜像EFI/BOOT/BOOTX64.EFI文件。

使用Rufus或者Ventoy工具创建刚刚替换好的ISO系统安装启动盘,然后你应该能顺利完成ESXi的安装。

安装完以后,如果你正常重启主机,它应该还会停留在文章开头图片中的位置。参考William文章Option B中所说的,ESXi安装完以后使用的是原始引导加载程序文件,并不是我们所替换后的引导加载程序文件,所以我们还需要执行第二步。

如果你是将ESXi系统安装在U盘上面的,那你可以直接把U盘拔出来插在自己电脑上,然后将USB连接到WSL中去,再使用ESXi 6.7 U2 (13006603)镜像中EFI/BOOT/BOOTX64.EFI文件替换ESXi系统EFI分区中的/EFI/VMware/mboot64.efi文件(注:BOOTX64.EFI文件复制过来后名字需要改成mboot64.efi以替换原来的mboot64.efi)。或通过VMware Workstation将U盘连接到一个Linux系统中去,按上面同样的方式完成替换。如果你是将ESXi系统安装在SSD硬盘上面的,那么可以参考我下面的方式,制作一个Ubuntu的系统安装启动盘(其他Linux发行版也行),插在主机上重启主机后从Ubuntu引导启动进入系统救援模式,再将ESXi系统的EFI分区挂载过来完成文件替换。

注:由于我这边主机已经做过替换,下面我在虚拟化环境来演示这一过程。

下载Ubuntu镜像,使用上面所述的工具创建一个系统引导盘,并将ESXi 6.7 U2 (13006603)镜像中EFI/BOOT/BOOTX64.EFI文件复制到引导盘的根目录中去。

将Ubuntu系统启动盘插在主机上,重启主机后从U盘引导启动进到Ubuntu的GRUB菜单,选择第一项然后按 e 进行编辑。

在Linux这一行的最后添加 systemd.unit=rescue.target 代码,然后按Ctrl+x或者F10保存并启动。

等一会儿后,进入rescue mode救援模式。

先查看一下BOOTX64.EFI文件在哪里。

使用fdisk -l命令查看ESXi系统EFI分区位于哪里,环境不同设备名称会不一样,这里是/dev/sda1。

使用下面命令,对ESXi系统EFI分区中的mboot64.efi文件完成替换。

cp /cdrom/BOOTX64.EFI /                            //拷贝文件到根目录
mkdir /mnt/esxi && mount /dev/sda1 /mnt/esxi //创建临时目录并挂载ESXi系统EFI分区
ls /mnt/esxi/EFI/VMware/ //查看EFI分区中的文件
mv BOOTX64.EFI /mnt/esxi/EFI/VMware/mboot64.efi //使用mv命令完成替换

最后,使用umount卸载目录,然后reboot重启主机即可。

现在,你应该能正常进入ESXi系统了,检测所有硬件是否都识别并运行正常。

我不太确定如果对ESXi进行补丁修复或升级会不会再次将这个引导加载程序文件进行还原,但如果要重新替换应该也非常简单。

上述方法同样适用于HP Z6/Z8 G4等工作站或者遇到与我相同问题的人,除了ESXi8版本,在ESXi7或ESXi 6.7 U3上同样有效。

【VMware ESXi】HP Z4G4 Workstation安装ESXi停留在Shutting down firmware services...的解决办法。的更多相关文章

  1. Linux进阶之VMware Linux虚拟机运行提示“锁定文件失败 虚拟机开启模块snapshot失败”的解决办法

    问题1:VMware Linux虚拟机运行提示"锁定文件失败 虚拟机开启模块snapshot失败"的解决办法 非正常关闭虚拟机(例如开关机过程中关掉VMware等操作),再次启动虚 ...

  2. dell r710 安装ubuntu 12.04 server 启动后进入initramfs解决办法

    dell r710 安装ubuntu 12.04 server 启动后进入initramfs解决办法 grub 启动菜单后加入 rootdelay=90, 如下:/boot/vmlinuz-2.6.3 ...

  3. zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法

    一.zabbix3.x安装出现“configure: error: Not found mysqlclient library”的解决办法 1.编译安装zabbix-server出现 编译时加参数:- ...

  4. MAC安装MacPorts 卡在“正在运行软件包脚本”的解决办法

    MAC安装MacPorts 卡在"正在运行软件包脚本"的解决办法 点击右上角强制结束掉"安装器" 打开terminal, 输入命令"ps -ef | ...

  5. CentOS7安装vncserver(启动失败及连接黑屏解决办法)

    CentOS7安装vncserver(启动失败及连接黑屏解决办法) 转载weixin_34167043 最后发布于2017-11-09 15:11:00 阅读数 42  收藏 展开 AutoSAR入门 ...

  6. Mac本地环境配置以及安装织梦CMS,增加新的坑解决办法

    Mac上其实已经自带了Apache和PHP,只是默认关闭的.开启一下就行了. Apache配置 apache已经自带了,只需在“终端”输入命令开启下就行了. ​​​开启apache服务 sudo ap ...

  7. 【处理手记】VS2010SP1安装不上Visual Studio 2010 SP1 SDK的解决办法

    想写个VS插件,需要安装VS的SDK,VS2010SP1对应的SDK自然是Visual Studio 2010 SP1 SDK,下载页面: https://www.microsoft.com/en-u ...

  8. 安装Bind过程中提示丢失MSVCR110.dll的解决办法

    前几天在线安装Visual Studio 2012 Update 3,由于在线安装需要不断下载安装文件,时间很长,后来等不下去,就取消了,不幸的是VS启动不了了,弹出“devenv.exe – 系统错 ...

  9. SQL Server 2008 Express 安装或卸载时提示“重启计算机失败"的解决办法

    安装或卸载SQL Server 遇到错误提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机.如下图: 解决办法: 1.在开始->运行中输入regedi ...

  10. SQL Server 2008 安装或卸载时提示“重启计算机失败"的解决办法(转)

    安装或卸载SQL Server 遇到错误提示:以前的某个程序安装已在安装计算机上创建挂起的文件操作.运行安装程序之前必须重新启动计算机.如下图: 解决办法: 1.在开始->运行中输入regedi ...

随机推荐

  1. Vuex和普通全局对象

    Vuex中的核心方法 Vuex是一个专为Vue.js应用程序开发的状态管理模式,其采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.每一个Vuex应用的核心就是 ...

  2. Swoole从入门到入土(26)——多进程[进程间锁]

    多进程在Swoole中是一个很重要的话题,即是协程机制也是依赖于进程.所以Swoole\Lock让大家在PHP 代码中可以很方便地创建一个锁,用来实现数据同步.Lock 类支持以下 5 种锁的类型: ...

  3. spring boot+bootstrap实现动态轮播图实战

    1.bootstrap轮播图 最近开发了个网站需要用到轮播图,正好前端用的是Bootstrap,这里就实战一下. 水平一般能力有限,仅供参考. 前提条件: bootstrap4.5 jquery 3张 ...

  4. Mysql一张表可以存储多少数据

    Mysql一张表可以存储多少数据 在操作系统中,我们知道为了跟磁盘交互,内存也是分页的,一页大小4KB.同样的在MySQL中为了提高吞吐率,数据也是分页的,不过MySQL的数据页大小是16KB.(确切 ...

  5. ROS2 humble交叉编译环境配置

    目录 配置 toolchain文件: 库文件 交叉编译指令: 问题点: 1.find_package找不到自定义依赖包的问题 2.libarmadillo.so.10: undefined refer ...

  6. SpringBoot的自动装配原理及应用

    什么是SpringBoot自动装配 所谓的"SpringBoot自动装配"就是指:通过注解和一些简单的配置就能将某些组件载入Spring容器环境中,便于使用. 比如,很多sprin ...

  7. 【开发工具】Linux 服务器 Shell 脚本简单入门

    记录一下学习Shell编程的关键知识点,使用最通俗简洁的语句,让阅读者能快速上手Shell脚本的编写 1.什么是Shell? Shell是一种常用于服务器运维的脚本语言.众所周知,脚本语言不需要编译器 ...

  8. SpringBoot面试题的零碎整理

    面试题1:简述一下Springboot相对SSM做了哪些提升? 首先,SpringBoot是采用"约定大于配置"(Convention over Configuration)的理念 ...

  9. 关于KMP模式匹配的一些思考

    算法简介 模式匹配 给定主串text和模式串pattern,在主串中查找,如果找到了模式串,返回模式串在主串中的起始位置,从1开始计数. 暴力求解求解模式匹配 算法的核心思想是:蛮力法.即使用两个指针 ...

  10. Android系统瘦身

    文件格式: Windows常见的文件系统是FAT16.FAT32,NTFS,在Windows环境提供了分区格式转换工具,可以在DOC环境下 使用  Convert命令(Convert e:/fs:nt ...