The work-around (for me) was to create a VBox x86-64 guest for Rocky Linux on my Win10 PC and made sure that the “Enable EFI” box was checked in the “Extended Features” tab of the guest. And, I did not create a vDisk for the guest - leave that blank.
Then I took the NVMe SSD out of the Mac Mini and mounted into a portable Sabrent USB NVMe enclosure and attached it to the Win10 host machine’s USB 3.1 port and used the VBox “USB Device Filters” to map that to the new Rocky Linux guest.
I mapped the “Rocky-9-5-boot.iso” image to the guest as the DVD and “powered” up the guest. The “DVD” booted with no problems and the Installer came up fine.
When it got to the “Localization” screen, I clicked on the “Installation Destination” and found the Sabrent “disk” and selected it for the installation with “Automatic” partitioning and clicked “Done”. There were no error messages shown on the disk icon when it went back to the Localization screen, and I proceeded to do a typical / normal installation of Linux.
The one hiccup was when the installation completed and needed a reboot, the USB enclosure wasn’t automatically added back to the guest, so the guest didn’t boot (“no bootable device found”). I think I could have fixed this by changing the guest’s boot options to use USB 1st on its virtual “BIOS” screen, but since the Windows Disk Manager showed the USB NVMe correctly partitioned and formatted, I figured it was time to test it.
For a test, I unplugged the Sabrent USB adapter with the NVMe SSD in it and plugged it into one of the Mac Mini’s USB ports, and powered it up.
It booted perfectly.
I suspect you could do the same process using a modern Windows PC and something like the Sabrent USB attached NVMe adapter. Just boot the Windows PC with a bootable Rocky Linux USB stick (I used Rufus to burn the Rocky ISO to a 2GB USB stick), and then make sure you pick the USB disk that is the new NVMe and not the Windows disk (lol). But I didn’t confirm that.
The one last issue I’m having with this is that when I moved the NVMe SSD from the USB enclosure to the NVMe slot internal to the Mac Mini, the default boot up fails.
However, choosing the “*Rocky Linux (0-rescue-xxxxxxxxxx) 9.5” option in the boot menu boots up with no issues.
It turns out the Mac Mini enumerates the disk devices differently between an external USB attached disk, an internal SATA SSD disk and an internal NVMe SSD disk.
In my case, there is a 2TB SATA SSD installed that I want to use for data (one EXT4 partition) and use the 1TB NVMe SSD for boot and OS.
When the NVMe SSD is attached to the external USB, lsblk shows the 2 disk devices and lists them in the order they are labeled. And the NVMe SSD is SDA (top of the list) with the correct partitioning and the internal SATA SSD as SDB (second on the list) with a single 2TB partition.
When the NVMe is moved to the internal NVMe slot, the NVMe SSD becomes nvme0n1 (2nd on the list) and the SATA SSD is now SDA (first one in the list).
At some point in the boot up, I’m assuming grub changes from using the NVMe boot loader to the SDA and fails because SDA isn’t a boot disk. Then it never looks for the nvme0n1 (or mayybe doesn’t find it).
I’m purely guessing, but I think the “rescue” boot up doesn’t look for more disks to mount and just continues to use the only disk it found. That way the NVMe SSD is the only disk shown and the rescue boot up works fine.
I think it could be fixed by changing the grub default boot disk from 0 to 1.
I need to find the correct way to get Rocky’s grub loader to default to the 2nd disk as the boot device.
For me, the issue is that the /etc/default/grub file doesn’t have the “GRUB_DEFAULT=” option yet, and I don’t know if it’s supported by Rock 9.5.
I’m not sure if this is the real fix, but I’m going follow this path with grub.
The one doubt I have is that when the NVMe SSD is installed internally, and I pop the SATA cable off the logic board, the “normal boot” still fails but the “rescue” boot is successful. I expected, with no SATA disks, the NVMe SSD would be the default. But it’s not.
The “normal” boot up may be “hard coded” to look for SDA as the boot disk.