CloverHackyColor / CloverBootloader

Bootloader for macOS, Windows and Linux in UEFI and in legacy mode
BSD 2-Clause "Simplified" License
4.56k stars 620 forks source link

Partition scan skips the whole device #628

Closed emperor06 closed 1 year ago

emperor06 commented 1 year ago

I've added a manual entry to boot a linux kernel (not grub). When Clover starts directly (from the bios boot manager), it fails at finding the OS boot partition. What's weird is when Clover is started from Refind (chainloading), it works as expected.

So, if I boot Refind from the bios, then launch Clover from Refind, Clover displays the manual boot entry as expected. Here's the log file.

[00]: 'Arch Linux'
Checking volume "VTOYEFI" (*sda1*) ... skipped because volume does not match
Checking volume "ESP" (*nvme0n1p1*) ... skipped because volume does not match
Checking volume "mjboot" (*nvme0n1p2*) ... skipped because volume does not match
Checking volume "deboot" (*nvme0n1p4*) ... skipped because volume does not match
Checking volume "arboot" (*nvme0n1p5*) ... match!

Now if I boot Clover directly (full log here), only nvme0n1p1 (ESP) gets scanned, and the rest of the device is discarded. And of course, the boot entry is missing.

[00]: 'Arch Linux'
Checking volume "VTOYEFI" (*sda1*) ... skipped because volume does not match
Checking volume "ESP" (*nvme0n1p1*) ... skipped because volume does not match
[00]: 'Arch Linux Booster'
...

Here's my config.plist.

emperor06 commented 1 year ago

Apparently, ext4 partitions are not scanned unless Refind has been loaded first. Refind loads its own ext4 driver which, I think, made those partitions available to Clover. So I added Refind's ext4_x64.efi to Clover/drivers/uefi and now everything works. If VBoxExt4.efi is an ext4 driver, then I guess it doesn't work for me.