Облачное хранилище
HM feature incompatibility detected: cannot start
Ошибка vmware HM feature incompatibility detected: cannot start

При установке платформы VMware ESXi 7 или 8 на сервер с процессорами Intel Core 12 поколения возникает розовый экран смерти (PSOD), содержащий следующие сообщения:

HW feature incompatibility detected; cannot start

Fatal CPU mismatch on feature «Hyperthreads per core»
Fatal CPU mismatch on feature «Cores per package»
Fatal CPU mismatch on feature «Cores per die»

ошибка полностью:

VMuare ESX1 8.0.3 (Releasebuild-25067014 x86_641

HM feature incompatibility detected: cannot start

cr0=0x8001003d cr2=0x0 cr3=0x604000 cr4=0x14012c

FMS=06/b7/1 uCode=0x12e

×PCPUG:524288/bootstrap

Code start: 0x120019a00000 VMK uptime: 0:00:00:02.503

0x452084398d10:10x420019b7c2c01PanicvPanicInt@vmkerne1#nover+0x20c stack: 0x42081a1de5c8

0x452084398dc0:(0x420019b7ca3c1Panic_NoSave@vmkerne1#nover+0x4d stack: 0x452084398e20 0x452084398e20:(0x420019a8a03e1CPU_CheckUniformity@umkerne1#nover+0xd43 stack: 0x420045c00000

0x452084398e80:[0x420019a815ee1SMP_BootAPs0vnkerne1#nover+0x18f stack: 0x4538c0b9f000

0x452084398ee0:10x420019b883a91SysInitTable_Start@unkerne1#nover+0x72 stack: 0x2

0x452084398f30:[0x420019b5f0641InitVMKerne10vnkerne1#nover+0x25 stack: 0x0

0x452084398f60:10x420019a408091LegacyBootVMKerne1@vnkerne1inover+0x256 stack: 0x100000

0x452084398fc0:10x420019alc9b41BootVMKerne10umkerne1#nover+0x1ed stack: 0x4d1f68 base fs=0x0 gs=0x420040000000 Kgs=0x0

0:00:00:02.579 cpu0:524288)Cpu: 2626: Fatal CPU mismatch on feature «Intel performance monitoring capabilities» (MSR 0×345): B value — 6x174ff, but t cpu8 value 0x74гf 0:00:00:02.579 cpu0::524288)Cpu: 2660: Fatal CPU mismatch on feature «Cores per die»; cpu8 value = 0x20, but

0:00:00:02.579 cpu0:524288)Cpu: 2660: Fatal CPU mismatch on feature

cpu0 value = 0x10

0:00:00:02.579 срu0:524288)Cрu: 2 : 2660: Fatal CPU mismatch on feature «Cores per tile»: cpu8 value = 0x20, but cpp value = 0×1

0x2

«Cores per madule»; cpu8 value = 0x20, but cpu0 value = 0 0:00:00:02:579 cpu0:524288)Cpu: 2660: Fatal CPU mismatch on feature «Hyperthreads per core»»; cpu8 value = 0x1, but cpu0 value

0:00:00:02:579 cpu0:524288)Cpu: 2660: Fatal CPU mismatch on feature «Cores per package»; cpu8 value = 8×20, but cpu0 value = 0

0:00:00:02:579

cpu0:524288)Cpu: 2660: Fatal CPU mismatch on feature «Cores per tile»: cpu9 value = 0x20, but cpu0 value = 0×10 0:00:00:02:579 cpu8:524208)Cpu: 2660: Fatal CPU mismatch on Feature «Cores per module»: cpu9 value = 0x20, but cpu0 value = 0x1 0x2

0:00:00:02.579 cpu0:524288)Cpu: 2660: Fatal CPU mismatch on feature «Hyperthreads per core»: cpu9 value = 0x1, but cpu0 value =

0:00:00:02.579 cpu0:524288)Cpu: 2660: Fatal CPU mismatch on feature «Cores per package»: cpu9 value = 0x20, but cpue value = 0x1

No disk partition configured to dump data.

No file configured to dump data.

No port for remote debugger.

Проблема здесь заключается в том, что новая архитектура процессоров Intel идет с ядрами двух типов — Performance-cores и Efficient-cores. Начиная с vSphere 7.0 Update 2, в ядро гипервизора был добавлен параметр cpuUniformityHardCheckPanic для того, чтобы избежать подобной проблемы, которая проявляется в следующих версиях платформы виртуализации:

  • vSphere / ESXi 8.0 или более поздние
  • vSphere / ESXi 7.0 Update 2 или более поздние

1. Итак, в самом начале установки ESXi нажимаете SHIFT+O, чтобы изменить параметры загрузки. Далее в появившейся строке вводите:

cpuUniformityHardCheckPanic=FALSE

2. После этого нажимаете Enter и дожидаетесь окончания установки.

3. Затем во время первой загрузки опять нажимаете SHIFT+O и вводите ту же самую строчку.

4. А уже когда гипервизор загрузится, нужно добавить следующую строчку в параметры ядра, чтобы отключить проверку, а ESXi не вылетал в розовый экран при каждой загрузке:

# esxcli system settings kernel set -s cpuUniformityHardCheckPanic -v FALSE

Также есть метод, описанный для установки через механизм автоматизированного развертывания Kickstart:

1. Создаем флэшку USB с ISO-образом ESXi, как написано здесь.

2. Открываем файл /efi/boot/boot.cfg в редакторе и добавляем следующую опцию в строчку kernelopt= параметров ядра:

ks=usb:/KS.CFG cpuUniformityHardCheckPanic=FALSE

3. Далее вам надо создать файл /KS.CFG для конфигурации Kickstart и в секциях  %post (пост-параметры установки, но до первой загрузки) и %firstboot (первая загрузка) добавить следующее:

vmaccepteula
install --firstdisk=usb --overwritevmfs network --bootproto=static --ip=192.168.0.26 --netmask=255.255.255.0 --gateway=192.168.0.1 --hostname=esx12.virten.lab --nameserver=192.168.0.1
rootpw VMware1! %post --interpreter=busybox /bin/mcopy -o -i /dev/disks/mpx.vmhba32\:C0\:T0\:L0\:5 ::BOOT.CFG /tmp/BOOT.cfg
/bin/sed -i '/kernelopt/s/$/ cpuUniformityHardCheckPanic=FALSE/' /tmp/BOOT.cfg
/bin/mcopy -o -i /dev/disks/mpx.vmhba32\:C0\:T0\:L0\:5 /tmp/BOOT.cfg ::BOOT.CFG
/bin/reboot %firstboot --interpreter=busybox # Enable SSH
vim-cmd hostsvc/enable_ssh
vim-cmd hostsvc/start_ssh # Enable ESXi Shell
vim-cmd hostsvc/enable_esx_shell
vim-cmd hostsvc/start_esx_shell # Suppress Shell warning
esxcli system settings advanced set -o /UserVars/SuppressShellWarning -i 1 # Disable CPU Uniformity Check
localcli system settings kernel set -s cpuUniformityHardCheckPanic -v FALSE # SSH Key
cat > /etc/ssh/keys-root/authorized_keys <<EOF
ssh-rsa AAAAB3N[...] yourname
EOF # NTP
esxcli system ntp set -s pool.ntp.org
esxcli system ntp set -e 1

4. Далее можете провести установку с USB-флэшки, а через пару минут вы уже сможете получить доступ к ESXi через консоль или по SSH.

5. Если вы используете механизм Secure Boot, то обычно секция %firstboot не применяется (так работает по умолчанию на большинстве систем). Поэтому вам потребоваться ввести команды этой секции вручную или отключить Secure Boot. С командами раздела %post все будет в порядке.

6. По окончании установки через Kickstart все будет работать: