解决ESXI 7.0.U2虚拟闪存占用100G+,及ESXI安装U盘无容量显示的问题。

发布于 2021-09-09  2159 次阅读


前几天换了ESXI系统,打算装在U盘里,然后sata控制器直接直通给NAS使用,但是遇到了虚拟空间占用100G+问题以及U盘无容量显示的问题。

搜遍全网和外网,找到解决方案。

关于虚拟闪存占用100G+解决方法

在最新的ESXI 7.0.U2版本中,在第一次的引导界面按shift+O,输入autoPartitionOSDataSize=这一条指令更改虚拟闪存大小的指令是从来不被官方认可安全的做法,经个人30来次的测试,是不生效的,无论是修改boot.cfg文件还是在第一次引导输入,都不生效。

其实,官方在7.0.U1给出了具体的解决方法,

方法一:

在第一次的引导界面,按shift+O,输入

systemMediaSize=min

官方给了min、small、max三种挡位可以选择,注意,输入数字无效。

  • min     33GB闪存空间,个人实际测试,在7.0.U2,min大小在25G左右。
  • small   69GB闪存空间
  • max     占用全部空间

方法二:推荐

修改引导U盘里的boot.cfg文件,注意,如果是UEFI启动,则修改EFI文件夹下的boot.cfg文件,否则不生效。

找到kernelopt=runweasel o……这一行,修改为

kernelopt=runweasel systemMediaSize=min

保存,然后什么都不用动,正常安装系统就可以。

官方文档连接:https://kb.vmware.com/s/article/81166

关于U盘安装不显示容量,容量显示NaN,无存储空间的解决方法

假如你的U盘空间小于150G,那么这个问题是两种故障引起的,第一,是上文的虚拟闪存占用100G导致的,第二,是分区列表错误导致的。网上有个方法说,先使用ESXI 6.7版本安装,再升级到7.0可以完美解决,实测,对于安装到U盘的用户依旧不能解决,因为安装到U盘的系统根本没有分配完整个U盘,所以用什么指令都会导致容量NaN。需要重建分区列表才能解决。

所以,解决这个问题的前提先是改动boot.cfg文件,正常安装系统,进入ESXI之后,在服务界面找到SSH登录服务,启动,然后SSH登录ESXI

1.停止ESXI的USB检查进程,并禁止开机自动启动

/etc/init.d/usbarbitrator stop
chkconfig usbarbitrator off

2.进入/vmfs/devices/disks目录

cd /vmfs/devices/disks

3.使用ls命令列出磁盘分区

ls

会看到mpx.vmhba32:C0:T0:L0

mpx.vmhba32:C0:T0:L0:1

mpx.vmhba32:C0:T0:L0:5

mpx.vmhba32:C0:T0:L0:6

mpx.vmhba32:C0:T0:L0:7

这样的字样,当然每个人可能会不一样,你可能会出现vmhba34/35/36,这取决于你的硬件平台。

4.使用命令列出磁盘分区列表

注意,getptbl后面需要根据个人情况更改

partedUtil getptbl mpx.vmhba32:C0:T0:L0

你会看到如下的信息,注意,根据硬件平台,看到的可能会不同。

7480 255 63 120176640

1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B systemPartition 128
5 208896 8595455 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
6 8597504 16984063 EBD0A0A2B9E5443387C068B6B72699C7 linuxNative 0
7 16986112 67108863 4EB2EA3978554790A79EFAE495E21F8D vmfsl 0

有一定知识的可能注意到,7之后这个硬盘还有一块分区没有分配,是的,这是安装在U盘上的通病,6.7版本也是这样。这里的6是虚拟闪存分配的地址,但是不具备专业知识的不建议更改,这些数字是存储块的序数,不是容量!也千万注意不能删除!!!删除会导致各种奇怪的BUG,各种重启还原。

5.重新建立分区结构,把U盘完整分区

注意最后一行的X位置,X的数据为和上文中橙色行加粗倾斜的的数再减去34!(34是测试过的最小的)

注意以下代码中,序号8后的AA开头的,如果你没有这个分区,则不用动,如果你有这个分区,则用你自己的,8的开始块数字用7的结束块数字加1就行,结束区块是橙色行加粗倾斜减去34,以下命令建议逐行复制,逐行更改。一定注意1、5、6、7的块数字和你自己列出的块数字一样,不能照抄。

partedUtil setptbl mpx.vmhba32:C0:T0:L0 gpt \

"1 64 204863 C12A7328F81F11D2BA4B00A0C93EC93B 128" \

"5 208896 8595455 EBD0A0A2B9E5443387C068B6B72699C7 0" \

"6 8597504 16984063 EBD0A0A2B9E5443387C068B6B72699C7 0" \

"7 16986112 268435455 4EB2EA3978554790A79EFAE495E21F8D 0" \

"8 268437504 X AA31E02A400F11DB9590000C2911D1B8 0"

6.新建VMFS6格式的数据存储分区

usbdatastore可以随意更改,mpx后更改成你自己的。

vmkfstools -C vmfs6 -b 1m -S UsbDatastore mpx.vmhba32:C0:T0:L0:8

随后刷新ESXI界面就可以看到U盘容量了。