Rocky Linux 9 - VirtualBox - Kernel Panic

Hi Everyone,

I’m trying to install Rocky 9 in Virtualbox 6.1.36 and I’m getting a Kernel Panic no matter what options I select during boot (pic attached).

Re-downloaded the DVD iso 2 times and tried fiddling with the VM options but nothing has helped.

Tried to install Rocky 8.6 and it worked perfectly fine.

I’m using a Dell XPS 9520 that has an i7-12700H and also running Windows 11.

Can anyone let me know if what the issue might be ?

Kind regards,
Alex

Could be due to this: Rocky 8.6 host, Rocky 9.0 guest? - #2 by jlehtone

Check if sse4* is accessible in the cpu on your Rocky Linux 8.x install, so:

cat /proc/cpuinfo | grep -i sse4

if you get zero results, that means VirtualBox is not passing through the functionality that allows RHEL9 and Rocky9 to work.

More info on that here: RHEL9 Raises Base Target For x86_64 CPUs Plus Possible Optimized Libraries With glibc-hwcaps - Phoronix

And here for virtualbox: virtualbox.org • View topic - Kernel Panic - Centos 9 Stream

Red Hat: New installation of RHEL 9.0: Kernel Panic Fatal Exception - Red Hat Customer Portal

Hi Iwalker,

Thank you for your assistance with this.

I’m getting the following in my RL 8.6 VM:

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni ssse3 cx16 pcid sse4_1 sse4_2 hypervisor lahf_lm invpcid_single ibrs_enhanced fsgsbase invpcid md_clear flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni ssse3 cx16 pcid sse4_1 sse4_2 hypervisor lahf_lm invpcid_single ibrs_enhanced fsgsbase invpcid md_clear flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni ssse3 cx16 pcid sse4_1 sse4_2 hypervisor lahf_lm invpcid_single ibrs_enhanced fsgsbase invpcid md_clear flush_l1d arch_capabilities
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx rdtscp lm constant_tsc rep_good nopl xtopology nonstop_tsc cpuid tsc_known_freq pni ssse3 cx16 pcid sse4_1 sse4_2 hypervisor lahf_lm invpcid_single ibrs_enhanced fsgsbase invpcid md_clear flush_l1d arch_capabilities

I’m assuming that this sss4 works then ?

Cheers,
Alex

The AWK script about this checks strings: cx16 lahf popcnt sse4_1 sse4_2 ssse3
I don’t see popcnt on your output. The hypervisor should be configured to pass that capability to the VM (since the host most likely has it).

Since you have RL8, you should be able to run /lib64/ld-linux-x86-64.so.2 --help

Here is example, where host is x86-64-v4, but guest does not get even the x86-64-v2:

[guest]# /lib64/ld-linux-x86-64.so.2 --help | tail 
Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4
  x86-64-v3
  x86-64-v2

Legacy HWCAP subdirectories under library search path directories:
  x86_64 (AT_PLATFORM; supported, searched)
  tls (supported, searched)
  avx512_1
  x86_64 (supported, searched)

[guest]# grep -m 1 flags /proc/cpuinfo
flags		: fpu de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pse36 clflush mmx fxsr sse sse2 syscall nx lm rep_good nopl xtopology cpuid tsc_known_freq pni cx16 x2apic hypervisor lahf_lm cpuid_fault pti

[host]# /lib64/ld-linux-x86-64.so.2 --help | tail
Subdirectories of glibc-hwcaps directories, in priority order:
  x86-64-v4 (supported, searched)
  x86-64-v3 (supported, searched)
  x86-64-v2 (supported, searched)

Legacy HWCAP subdirectories under library search path directories:
  haswell (AT_PLATFORM; supported, searched)
  tls (supported, searched)
  avx512_1 (supported, searched)
  x86_64 (supported, searched)

[host]# grep -m 1 flags /proc/cpuinfo
flags		: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc art arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx smx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid dca sse4_1 sse4_2 x2apic movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm 3dnowprefetch cpuid_fault epb cat_l3 cdp_l3 invpcid_single intel_ppin ssbd mba ibrs ibpb stibp ibrs_enhanced tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 hle avx2 smep bmi2 erms invpcid cqm mpx rdt_a avx512f avx512dq rdseed adx smap clflushopt clwb intel_pt avx512cd avx512bw avx512vl xsaveopt xsavec xgetbv1 xsaves cqm_llc cqm_occup_llc cqm_mbm_total cqm_mbm_local dtherm ida arat pln pts pku ospke avx512_vnni md_clear flush_l1d arch_capabilities

Hi Jlehtone, everyone

I managed to make it work by disabling the “Memory Integrity” option from Windows 11’s Core Isolation. Though I’m not very happy on disabling Windows protections to make this work when other VM’s I have don’t require me to turn off this option.

Prior to this, I also disabled Hyper-V completely as I’ve read online that it helped some people with similar issues but it didn’t work for me.

Is there anything I could do to make RL 9 work in Virtualbox without having to disable the Memory Integrity from Core Isolation ?

Cheers,
Alex

I use neither Windows 11 nor Virtualbox, so can’t tell what they are good for.

I would ask on the VirtualBox forums about this since it seems to be a VirtualBox problem. I would expect you wouldn’t have any issues if using VMware Workstation on Windows.

This can most likely happen as well for any other VM types no matter what the OS is, if Oracle don’t get their act together with VirtualBox. I would never personally use their products, but that’s my personal viewpoint.

I am getting the same issue with the latest iso: Rocky-9.0-20220805.0-x86_64-minimal
I am trying to create a VM on my Hypervisor - KVM host. (with AMD CPU).

Hey all!
Not sure if anyone else has solved this, but I have R9 running in Virtualbox 6.1.38. I noticed that under System/Processor, I had Enable PAE/NX and Netsted VT-x/AMD-V disabled - I vaguely recalling getting this error and this solved it. I had a kernel update come down today in R9 and shutdown the VM and then re-enabled these settings, and everything is working. (Also disabled EFI because I generally leave this off.)

See if that helps. :slight_smile:

I get the same issue on newest ProxMox VM with default settings in the new KVM-machine and Rocky 9 Minimal. Same settings I always use for different Ubuntu/Debian and other distros.

Edit: Had to change the VM CPU type to Host instead of KVM64. Then both workes. First time I have needed to do that ever…

Me too!

I get the same kernel panic running Rocky 9 on the qemu-kvm hypervisor. Usually, my cluster manager (ganeti) omits the “-cpu” option when starting a VM instance. This results in:

# grep model /proc/cpuinfo
model		: 13
model name	: QEMU Virtual CPU version 1.5.3

However, if I supply a specific virtual cpu model that matches the underlying physical processor, like so…

/usr/libexec/qemu-kvm -cpu Westmere ...

…then, Rocky 9 boots normally. In this example, after changing cpu type, /proc/cpuinfo looks like this from inside the viraual host:

# grep model /proc/cpuinfo
model		: 44
model name	: Westmere E56xx/L56xx/X56xx (Nehalem-C)

This seems to be a manifestation of the new minimum requirement of “AMD and Intel 64-bit architectures (x86-64-v2)” as stated in the release notes.

It would be nice to have a specific list of Rocky 9-compatible processor models, or a way to derive such a list. Does anyone have that info?

@jmcnally can you not use the host option to pass it through by default? I usually always create my VM’s with virt-manager, so the option to copy the host CPU is enabled by default.

When I use:

qemu-kvm -cpu help

one of the options shown is:

x86 host

so I’m assuming you could then just do:

qemu-kvm -cpu host

and you’ll get what the underlying CPU on the server has. At least that is how I understand it.

Ian,

I am using Ganeti for virtual host and cluster management, not VirtualBox. On the ganeti master node, I enter this command…

# gnt-cluster modify -H kvm:cpu_type=Westmere

…and it passes the processor model through to KVM for each instance on the cluster.

But my question remains: What is the definitive list of compatible processors for Rocky Linux 9?

-jm

Hi, in my post I mentioned virt-manager, which is the GUI app for KVM environment - you’ll see the references to KVM, so I know you aren’t running VirtualBox. I believe the qemu-kvm commands that I mentioned should help you in resolving the issue. If you pass the host parameter through via that particular parameter to the VM (-cpu host), then it’ll have the features you need to run Rocky 9 rather than you telling it to be a particular CPU type. I expect the Ganeti commands (not used it so can’t be sure) should give you similar ability to pass through the host CPU, irrespective of what CPU is underneath.

Maybe these links will help:

And this link:

shows lower down what ones are x86-64-v2 Nehalem and upwards

I stumbled on Spack package manager into “target” feature update Add support for microarchitecture levels by pikacic · Pull Request #31 · archspec/archspec-json · GitHub that uses:

x86-64-v2 (basically an alias to nehalem with generic tuning)

And elsewhere:

With glibc 2.33 or later (Arch Linux, Debian 12, Ubuntu 21.04, Fedora 34, etc.), or patched glibc (RHEL 8), you can see what architecture is supported by your CPU by running:
$ /lib/ld-linux-x86-64.so.2 --help