A buddy has a Lenovo W520 with a single SSD containing Windows and Xubuntu Linux. I partitioned the drive GPT with a 250MB ESP as the first partition. rEFInd is installed in /EFI/refind/refind_x64.efi (with its other files) and I've added its entry using efibootmgr as the default (first entry in the ordering list). The bios boot menu shows rEFInd, but when I select it, it immediately returns to the menu. If I let the machine boot normally, it skips rEFInd and boots Grub (from the "ubuntu" entry). In both cases I'm assuming it's failing to start rEFInd for some reason.
I tried using text mode. I tried copying rEFInd into /EFI/Boot/bootx64.efi. I tried naming it "Red Hat Enterprise Linux" (as mentioned concerning a certain Lenovo bug).
Is there any way that I can debug rEFInd's startup to determine while it might be unhappy?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Is Secure Boot enabled? If so, that's the problem. You must either disable Secure Boot or add Shim to the boot process, as described on the rEFInd Secure Boot documentation page. Ordinarily, if you install rEFInd via its Debian package, this will be set up correctly by default (although there are some conditions when it might not be).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
The W520 is an older laptop (circa 2011) and apparently does not support secure boot. Is there any reason that an older UEFI version might make rEFInd unhappy?
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Okay, it turns out the fix was simple: the Lenovo Thinkpad W520 does not like EFI executables with forward slashes in their path names. I had to change them to backslahes for it to work. In other words:
/EFI/refind/refind_x64.efi ... bad
\EFI\refind\refind_x64.efi ... good
For anyone else who runs across this problem: if you are typing these into efibootmgr, make sure to escape the backslashes (use two for each one in the path).
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
That's an EFI-vs-Linux difference. EFI follows DOS/Windows conventions more than Unix/Linux conventions in most respects. Some tools (including rEFInd in its parsing of most entries in its refind.conf file) do appropriate translations, but others don't. The efibootmgr utility has changed some details of its handling of slashes and backslashes between versions, and I've not tried to keep the differences straight in my mind.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
A buddy has a Lenovo W520 with a single SSD containing Windows and Xubuntu Linux. I partitioned the drive GPT with a 250MB ESP as the first partition. rEFInd is installed in /EFI/refind/refind_x64.efi (with its other files) and I've added its entry using efibootmgr as the default (first entry in the ordering list). The bios boot menu shows rEFInd, but when I select it, it immediately returns to the menu. If I let the machine boot normally, it skips rEFInd and boots Grub (from the "ubuntu" entry). In both cases I'm assuming it's failing to start rEFInd for some reason.
I tried using text mode. I tried copying rEFInd into /EFI/Boot/bootx64.efi. I tried naming it "Red Hat Enterprise Linux" (as mentioned concerning a certain Lenovo bug).
Is there any way that I can debug rEFInd's startup to determine while it might be unhappy?
Is Secure Boot enabled? If so, that's the problem. You must either disable Secure Boot or add Shim to the boot process, as described on the rEFInd Secure Boot documentation page. Ordinarily, if you install rEFInd via its Debian package, this will be set up correctly by default (although there are some conditions when it might not be).
The W520 is an older laptop (circa 2011) and apparently does not support secure boot. Is there any reason that an older UEFI version might make rEFInd unhappy?
Okay, it turns out the fix was simple: the Lenovo Thinkpad W520 does not like EFI executables with forward slashes in their path names. I had to change them to backslahes for it to work. In other words:
/EFI/refind/refind_x64.efi ... bad
\EFI\refind\refind_x64.efi ... good
For anyone else who runs across this problem: if you are typing these into efibootmgr, make sure to escape the backslashes (use two for each one in the path).
That's an EFI-vs-Linux difference. EFI follows DOS/Windows conventions more than Unix/Linux conventions in most respects. Some tools (including rEFInd in its parsing of most entries in its refind.conf file) do appropriate translations, but others don't. The efibootmgr utility has changed some details of its handling of slashes and backslashes between versions, and I've not tried to keep the differences straight in my mind.