ESXI下无法启动openwrt及提示磁盘大小无法修改处理

openwrt编译的vmdk格式固件上传到esxi下无法启动,以及查看硬盘时提示请输入大于原始容量磁盘大小的解决方法

我们用lean的openwrt源码编译x86固件,在esxi虚拟机环境下运行,一般要求用StarWindConverter转换成esxi的vmdk磁盘格式,再上传到esxi下使用。这种方法没有问题,但是编译的时候,lean已经默认生成了vmdk文件格式固件,应该可以直接使用。在实际操作中我发现如果操作不当,就会提示2个问题,一是提示:无法打开虚拟机openwrt的电源。“scsi0:0”的磁盘类型2不受支持或无效。请确保磁盘已导入”。无法运行虚拟机。二是打开虚拟机设置时提示:请输入大于原始容量的磁盘大小。虽然也能运行,但看上去不爽。

以下都是对你有源码初始生成的vmdk虚拟硬盘文件操作,如果你下载别人的img.gz压缩文件格式或img文件格式的固件需要StarWindConverter转换成esxi的vmdk磁盘格式,下文只能作为参考。

首先简单介绍下安装esxi环境下安装openwrt虚拟机。我的esxi是7.0版本。创建虚拟机,名称设为optest,兼容性7.0,操作系统linux,系统版本Red Hat Enterprise linux 8(64位)。下一页再下一页进入自定义设置,cpu根据你物理cpu核心确定,内存1或2G随意,删除默认的”硬盘1″,暂时不添加硬盘,添加你的网络适配器,虚拟机选项处 引导选项默认是EFI,要去掉“启用UEFI安全引导”前面的勾,不然无法启动;部分openwrt固件不支持EFI启动,这里需改为BIOS启动。点下一页完成设置。

现在我们添加硬盘,首先把lean源码编译出的原始vmdk文件openwrt-x86-64-generic-squashfs-combined-efi.vmdk改名为openwrt.vmdk,方便操作。在optest虚拟机界面点击编辑,添加硬盘-现有硬盘-optest,上传openwrt.vmdk文件。可以看到这个文件目前49.63M,然后选择这个文件。保存退出。
ESXI下无法启动openwrt及提示磁盘大小无法修改处理
再次点击openwrt虚拟机optest就会出现”请输入大于原始容量的磁盘大小”,我们在硬盘1处红色框内输入大于416.2的值如500,直接保存,发现就修改好了。如果你用StarWindConverter把img格式的固件转成vmdk文件,你直接输入就没有用。必须在ssh命令里用如“vmkfstools -X 500M openwrt.vmdk”命令进行修改,具体如何使用你搜索网上教程。

ESXI下无法启动openwrt及提示磁盘大小无法修改处理
如果我们这时不做任何修改,直接启动虚拟机,“打开电源”命令。就会有下列提示:scsi0:0”的磁盘类型2不受支持或无效。请确保磁盘已导入。无法运行虚拟机。

ESXI下无法启动openwrt及提示磁盘大小无法修改处理

这是因为esxi中对linux系统默认的磁盘控制器是scsi控制器,openwrt原始生成的vmdk硬盘文件默认支持的是ide控制器,所以打不开。你用StarWindConverter把img格式的固件转成vmdk硬盘文件会修改控制器,所以通过转换生成的vmdk硬盘这块不需考虑控制器格式。我们只需要把控制器位置处改为“IDE控制器0”。就可以运行虚拟机了。

ESXI下无法启动openwrt及提示磁盘大小无法修改处理

 

这样你的esxi下openwrt虚拟机就可以启动了,不必再用其他工具转换、SSH命令修改什么的,非常方便。建议就这样做。

其他一些可能的情况解决介绍:

如果你控制器就想用默认的SCSI控制器,不想变动,引导选项就必须要用bios引动,efi是无法引导成功的。直接用源码生成的原始vmdk硬盘也不能用,会提示scsi0:0”的磁盘类型2不受支持或无效。请确保磁盘已导入。解决办法就是要把这个硬盘类型由“厚置备,延迟置零”改为“精简置备”类型即可,这需要在ssh命令下执行,无法直接修改。
esxi主界面操作-服务处“启用安全shell(ssh)”,打开ssh工具如Xshell6,登录esxi服务器,输入

cd /vmfs/volumes/data/store1/optest/

进入openwrt虚拟机的文件夹处,datastore1、optest因你设置而已,替换成自己esxi服务器上文件夹名。然后输入命令将vmdk硬盘设置为“精简置备”

vmkfstools -i 'openwrt.vmdk' op.vmdk -d thin

这是用命令将openwrt.vmdk硬盘用精简配置的方式重新生成op.vmdk虚拟硬盘。
ESXI下无法启动openwrt及提示磁盘大小无法修改处理

ESXI下无法启动openwrt及提示磁盘大小无法修改处理

转换成的文件比原始文件略大些。

最后我们在openwrt虚拟机里把原有openwrt.vmdk虚拟硬盘删除,再加上这个新生成的op.vmdk虚拟硬盘,就可以正常使用了。

 

技术不断升级,请注意文章时效性。
本站文章,欢迎转发。转载请注明出处:https://www.bandwh.com/net/57.html

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注