You are not logged in.

#1 2013-01-06 20:32:59

6feet5
Member
From: Gnesta, Sweden
Registered: 2012-11-11
Posts: 157

[SOLVED, sort of] Yet another UEFI boot issue

Hello everyone,

Let me start by saying sorry for the long (first) post.

I've ended up with a UEFI boot problem I can't solve. I've searched the forum and internet and I realize I'm not the only one who ran into problems with UEFI. Unfortunately, the problems other have had seem not similar to mine. I've spent almost 2 days now trying to figure this out, and I'm getting nowhere (though I've learnt some more about UEFI, which I guess is good). I was hoping someone here can give me some hints on how to proceed.

So lets start with the background. I recently bought a new computer (Lenovo Thinkpad Edge E530 with Windows 8) and of course I want to run ArchLinux on it (been using ArchLinux for almost 7 years now and no plans on switching). Installation went ok with only a few problems during installation that I managed to solve (or so I thought). I must admit I didn't follow the guide fully. I didn't want to remove the Restore and Windows partitions, so I figured it would be safe to reuse the existing UEFI System Partition, as long as there was enough room, which there was. Anyway, I now have a computer I can boot into ArchLinux and also Windows 8, just the way I want it, almost. There is this one final issue I haven't been able to figure out how to solve.

The problem
Whenever I reset/power on the computer, I must press Enter during the initial screen (showing a Lenovo logo, and a message about pressing Enter to interrupt normal startup). If I don't press Enter before the timeout (a second or so), the screen will go white and that's it. No beep, no message, no nothing but a white screen. A power cycle is the only way to leave this state. Occasionally the screen will be a white bar at the top and random colours below, but I'm guessing this only represents what is in graphics memory at the time (0x00, 0xFF or any other random value).

If i do press Enter however, then I'm presented with a menu where I can select what to boot; rEFInd (which is preselected) along with Windows 8 and some restore and diagnostic entries. Pressing enter will take me to the preselected rEFInd, pressing enter again (or wait for timeout) will boot linux, and I'm in. Nothing weird there. And if I select Windows in rEFInd, then windows boot, just as expected.

There is no difference whether I'm switching from Windows to Linux or Linux to Windows or just reboot the same OS I was using again. The result is the same whatever I choose to boot.

So the question is: Why do I have to select rEFInd manually and go through all these menus? Should I not be able to just power it on and let it boot the preselected rEFInd entry and continue from there, without me helping it?

Trying to solve it
Searching here and on the internet gave me some ideas on what to try, so here is a list of my attempts:

  • efibootmgr show me there is a rEFInd entry, and that it is the first one in boot order

  • I copied refindx64.efi to /boot/efi/EFI/Boot/bootx64.efi (replacing an existing entry)

  • I've updated the EFI firmware (from Lenovo) to the latest and greatest

  • One other guy had almost the same issue, but with a single boot of Windows. He solved it with Microsoft Boot Manager (there is an Automatic Repair, or something). I even dared trying this, though I must admit I was a bit hesitant about letting some Microsoft program trying to repair my computer. Anyway, it said it couldn't repair my problem, nor did it say I had one, so I am none the wiser.

None of the above gave anything.

So, that's it. I guess I can live with having to press Enter on every power up/reset, but it is very annoying having to do so, and even more so when I forget it because then I'm forced to power cycle it. I hope someone reading this can figure out what's going on, because I am clueless.

Best regards,
Johan

Last edited by 6feet5 (2013-01-08 19:03:50)

Offline

#2 2013-01-06 21:33:10

jasonwryan
Anarchist
From: .nz
Registered: 2009-05-09
Posts: 30,424
Website

Re: [SOLVED, sort of] Yet another UEFI boot issue

Not an installation issue, more suited to Kernel and Hardware. Moving...


Arch + dwm   •   Mercurial repos  •   Surfraw

Registered Linux User #482438

Offline

#3 2013-01-06 23:36:22

srs5694
Member
From: Woonsocket, RI
Registered: 2012-11-06
Posts: 719
Website

Re: [SOLVED, sort of] Yet another UEFI boot issue

My best guess is that your firmware is buggy and/or you've got some sort of crud (a highly technical term wink ) in the NVRAM that's causing the firmware to hang or try to launch a non-existent program. If I'm right, you might be able to fix the problem by doing one or more of the following:

  • Clean the NVRAM entries by locating whatever option your firmware has to reset everything to the default values.

  • Update the firmware to the newest version.

  • Use efibootmgr in Linux or bcfg in an EFI version 2 shell to clean out all the boot entries and re-create just the one(s) you need. As a side point, if you used efibootmgr to set up the rEFInd entry, perhaps you could try using bcfg to create a new entry, or vice-versa; perhaps the program you used the first time is causing your firmware to misbehave.

I can make no promises that any of these things will work. In fact, it's entirely possible that the attempt will make matters worse.

Offline

#4 2013-01-06 23:43:01

WonderWoofy
Member
From: Los Gatos, CA
Registered: 2012-05-19
Posts: 8,414

Re: [SOLVED, sort of] Yet another UEFI boot issue

srs5694 wrote:
  • Clean the NVRAM entries by locating whatever option your firmware has to reset everything to the default values.

I have a Thinkpad Edge E430, and the firmware is kind of buggy.  I don't use the latest and greatest, as I use a non Lenovo WiFi card.  But resetting can be done with F10 from the bios menu (which can be brought up with F1 on boot).

My firmware would actually not accept an efibootmgr entry correctly in regards to a path to the initramfs.  So the only place I can put it is in the root of the ESP if I want to boot with an efibootmgr entry directly.  Though I now use gummiboot, I still keep my kernels and initramfs' at the root of the ESP... I guess at this point it is just out of habit.

Offline

#5 2013-01-07 20:10:28

6feet5
Member
From: Gnesta, Sweden
Registered: 2012-11-11
Posts: 157

Re: [SOLVED, sort of] Yet another UEFI boot issue

I've already tried upgrading the firmware, but no success.

srs5694 wrote:
  • Clean the NVRAM entries by locating whatever option your firmware has to reset everything to the default values.

Good idea, didn't think of that one. I've tried it now, but that didn't help. Actually, I think it got worse. Now a lot of the boot entries I had before are missing; refind, Windows 8 and the rescue and recover are gone from menu. It now has a Setup entry though. It looks as if the computer now think there is no OS available. However if I select the harddisk entry, then I get a weird looking refind (probably the one I put in in /EFI/Boot). From there I can select the other refind, and then boot linux. Oh dear, oh dear, I'm digging my own grave here.

I wonder if restoring the unit with the rescue partition will help?

I'll send Lenovo support a mail and see if they got any idea how to solve this.

Offline

#6 2013-01-07 20:29:20

srs5694
Member
From: Woonsocket, RI
Registered: 2012-11-06
Posts: 719
Website

Re: [SOLVED, sort of] Yet another UEFI boot issue

So if you don't press Enter, you're still getting a white screen?

Once you boot Linux, you can use efibootmgr to add your regular rEFInd entry back. Something like the following should do the trick:

efibootmgr -c -l "\EFI\refind\refind_x64.efi" -L "rEFInd Boot Manager"

You may need to adjust that for your system -- say, if rEFInd is installed in a different directory or using a different name (for reasons unknown to me, the Arch packages change the name from refind_x64.efi to refindx64.efi -- a bad idea, BTW, since some of the support scripts now assume the name is refind_x64.efi). You may also need to add parameters if your ESP is anything but /dev/sda1 -- see the efibootmgr man page for details.

A similar command can add an entry for the Windows boot loader -- but be aware that efibootmgr makes whatever entry you add the first entry in the boot list, so if you add Windows after you add rEFInd, you'll probably want to use efibootmgr's -o option to adjust the boot order.

Offline

#7 2013-01-07 22:42:50

WonderWoofy
Member
From: Los Gatos, CA
Registered: 2012-05-19
Posts: 8,414

Re: [SOLVED, sort of] Yet another UEFI boot issue

When you reset your bios, losing all your entries is the expected behavior.  So I think that you are not digging your grave as much as you think.  Hopefully that might have taken care of the white screen?

To add to srs5694's comment above, keep in mind that the efibootmgr command he offered there assumes that the EFI System Partition is located at /dev/sda1.  If it is somewhere else, you will need to use the --part (-p) for a different partition, and/or --disk (-d) for a different disk. 


@srs5694, have you thought about filing a bug report/feature request about the naming scheme here?  I would imagine that something coming directly from the upstream developer would be something that they should take into consideration.  Also, I imagine that renaming it to refindx64.efi kind of goes against the whole "vanilla packages" thing we tout around here... so it really makes me wonder why it is done in the first place.

Offline

#8 2013-01-07 23:19:07

6feet5
Member
From: Gnesta, Sweden
Registered: 2012-11-11
Posts: 157

Re: [SOLVED, sort of] Yet another UEFI boot issue

I got the refind entry back, but I haven't solved the white screen issue. I still need to press enter to interrupt the normal startup.

I've decided to try and restore the whole unit, thinking it would take maybe an hour or two. It's been running now for almost 3 hours and only completed 20%. With that speed I sure hope it does a complete restore. Maybe I'm back to square one tomorrow (no white screen) and can redo the whole Arch install, hopefully without problems this time.

Offline

#9 2013-01-07 23:42:18

WonderWoofy
Member
From: Los Gatos, CA
Registered: 2012-05-19
Posts: 8,414

Re: [SOLVED, sort of] Yet another UEFI boot issue

Full restore, like with the recovery discs?  I did that once because I was curious on my E430, and it took for f*cking ever... way longer than similar crapware I have installed in the past.

Offline

#10 2013-01-08 01:58:02

srs5694
Member
From: Woonsocket, RI
Registered: 2012-11-06
Posts: 719
Website

Re: [SOLVED, sort of] Yet another UEFI boot issue

WonderWoofy wrote:

@srs5694, have you thought about filing a bug report/feature request about the naming scheme here?  I would imagine that something coming directly from the upstream developer would be something that they should take into consideration.  Also, I imagine that renaming it to refindx64.efi kind of goes against the whole "vanilla packages" thing we tout around here... so it really makes me wonder why it is done in the first place.

I've just done that:

https://bugs.archlinux.org/task/33326

It's not been very important until recently; but I've been putting a lot of effort into the ancillary support scripts (install.sh and mvrefind.sh). They necessarily rely on the files having certain names, so installing them under other names robs users of functionality.

6feet5 wrote:

I've decided to try and restore the whole unit, thinking it would take maybe an hour or two. It's been running now for almost 3 hours and only completed 20%.

Good luck with that!

FWIW, it seems that the number of EFI-related bug reports on Linux forums has gone way up recently. No doubt this is because EFI is now pretty much universal on new computers, so problems that used to affect one or two people now affect dozens or hundreds, and some of those post about them.

Offline

#11 2013-01-08 19:03:20

6feet5
Member
From: Gnesta, Sweden
Registered: 2012-11-11
Posts: 157

Re: [SOLVED, sort of] Yet another UEFI boot issue

This morning the recovery had finished and the computer had entered Windows Setup. I wasn't sure if this included a reboot so I quickly went through the setup, rebooted and.... Lo and Behold! The computer made it from POST to login with me doing nothing but holding my breath. And so I went to work with a smile on my face.

The white screen issue is gone. I'm back on square one with a crappy Windows 8 (this must be THE most annoying thing I've ever tried to use on a computer).

I've decided to replace the hard drive with a SSD instead and get rid of Windows completely (rarely use it anyway). Then try to install archlinux again and we'll see how that goes. Hopefully I'll make it this time.

Thank you for your time and effort in trying to help me solve this. It would've been nice to know what actually went wrong but as far as I'm concerned, this case is closed/solved.

Thanks again.

/Johan

Offline

Board footer

Powered by FluxBB