I spent the last 3 hours setting up and configuring rEFInd.
To be honest, the installation itself took only 5 minutes, with most of the time spent in /boot/refind_linux.conf
However, rEFInd takes 3 seconds to load while grub loads instant, no matter what I try.
I tried:
disabling tool detection with an empty showtools entry
adding all non-relevant partitions to dont_scan_volumes
** I even added the linux-Partition to it, so that it only found the Windows-boot entry
enabled and increased the log level - the only effect was, that it now took 5-6 seconds to load rEFInd, the log showed no issues
used textonly mode
limited scanfor to only the essential parts
enable/disable Fastboot
I am certain that it really takes 3 seconds to load rEFInd and not just 3 seconds for the screen to change the resolution, because the configured timeout starts with the expected value after 3 seconds of black screen which comes after the UEFI boot sequence (where grub appeared instantly).
well how do you load your CPU microcode then?
I only followed that guide here: https://discovery.endeavouros.com/grub-and-refind/how-to-install-refind/2021/03/
which enabled the icon through copying it to rEFInd directory - and enabled CPU microcode loading. The later only happens after rEFInd is loaded, so it should not slow down anything while booting rEFInd. The first is not a big file and only a very small addition to the already present ones, so that should not slow down anything, too.
The first reboot with those modifications was already too slow.
All the other things I did afterwards trying to speed up the loading, but nothing solved the slow boot process.
I’ve used rEFInd for a while and have had no issues. I don’t change any of the .conf file to use it. The icon that comes up is for booting grub or the vmlinuz-linux image. So at this point only rEFInd has loaded a splash screen with a menu. When you select the Icon to boot it’s either grub or the image. So after choosing one it boots via grub or the image file. So I’m not sure if you are saying that the splash screen takes too long to load or are you talking about when you start the boot process because the splash screen should just load when you boot the computer. If it’s your computer taking too long to boot up to this point of the rEFInd splash screen i don’t know why that would be.
so you don’t load your microcode at all which itself is not ideal …
to make it clear, Power on the computer → UEFI screen → GRUB or rEFInd screen → OS starts loading.
the time it takes for rEFInd to appear is 3 seconds, while GRUB appears instantly after the UEFI screen. The OS itself loads as fast as ever.
I am not booting grub out of UEFI, I load the image file directly.
With GRUB and a timeout of 2 seconds, it takes about 25 seconds from power on to fully usable Desktop, therefore the added 3-4 seconds with rEFInd and a 2 second timeout are more than 10% boot time extension which I want to get rid of or switch back to grub.
according to the guide I posted above, you have to add initrd=\boot\amd-ucode.img into the refind_linux.conf file (and replace amd with intel in case one has an Intel CPU):
"Boot using default options" "root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw add_efi_memmap initrd=\boot\amd-ucode.img initrd=\boot\initramfs-%v.img"
The same is done in grub when generating its config, but there it is done automatically:
Found initrd image: /boot/amd-ucode.img /boot/initramfs-linux.img
grub.cfg:
echo 'Loading kernel linux ...'
linux /boot/vmlinuz-linux root=UUID=XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX rw loglevel=3 quiet
echo 'Loading initial ramdisk ...'
initrd /boot/amd-ucode.img /boot/initramfs-linux.img
For my CPU, it does not make a difference because the UEFI already contains the newest microcode available, but in general, it should be added or the microcode does not load which is insecure.
well, just to check, I have reverted both /boot/refind_linux.conf and /boot/efi/EFI/refind/refind.conf to its original state (I always make backups of the files before I tamper with them) - rEFInd still takes 3 seconds to display -.-
Why wouldn’t it load if I’m booting from grub? rEFInd doesn’t boot the computer. It’s just a boot manager. The ucode is loaded when the boot process happens after i select to boot from rEFInd.
so you only use rEFInd to load grub on your computer? In that case, it is ok to let grub load the microcode.
I want to replace grub with rEFInd, therefore rEFInd has to load the microcode.
I think we run in circles, so let me try to get out of that circle … my problem is with rEFInd taking to long to load after UEFI has finished - before the OS itself starts loading:
You said to not modify config files - I explained why think I have to modify them and what exactly I did. Loading the vmlinuz-linux image file is not my issue, the part AFTER rEFInd works as fast as ever and rEFInd finds and loads all installed vmlinuz-linux-* files.
I undid all modifications to the config files. rEFInd still takes the same time to load (3 seconds vs instantly loading grub).
edit:
it actually is more than 3 seconds:
Grub boot: