You are not logged in.

#1 2013-01-09 21:44:07

swordfish
Member
Registered: 2012-01-14
Posts: 160

[SOLVED] UEFI-System doesn't start anymore after rEFInd update

Hi there,

got some problem with my UEFI system after todays update of refind-efi: Arch doesn't boot anymore sad

What have I done:

At first I did a

$ sudo pacman -Syu

During the update I was presented with the usual information concerning copying some files from /usr/lib/refind/*. So I did this:

$ sudo cp /usr/lib/refind/refind_x64.efi /boot/efi/EFI/refind/refind_x64.efi

Than I did:

$ sudo cp /usr/lib/refind/config/refind.conf /boot/efi/EFI/refind/refind.conf
$ sudo cp -r /usr/share/refind/icons /boot/efi/EFI/refind/icons

After that I rebooted my computer and was presented with an "Asrock" writing that doesn't change to the rEFInd-screen as it should.

Question: What can I do now? (And what did I wrong?)

Last edited by swordfish (2013-01-11 17:01:54)


Arch_x64 on Thinkpad Edge E520 (Intel Core i5, 4 GB RAM, 128 GB Crucial M4 SSD) + ITX-Desktop (Asrock H77M-ITX, Intel Core i3-2120T, 8GB RAM, 64 GB Samsung 830 SSD)

Offline

#2 2013-01-09 22:09:42

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

Re: [SOLVED] UEFI-System doesn't start anymore after rEFInd update

Unfortunately I'm not sure exactly what the Arch package is doing; I'm still seeing 0.5.0 as "current" -- no doubt I need to adjust my mirrors configuration. I can think of a couple of possible causes and solutions, though....

  • The 0.6.3 package changes the name of the rEFInd binary from refindx64.efi to refind_x64.efi. This is done because the official rEFInd release uses the latter name, and it includes support scripts that work correctly only if that name is used. Thus, if you deleted your old binary and copied the new one in place without renaming it to the old name, it would stop working, since the NVRAM entry would still point to the old name. There are two solutions:

    • Rename the new binary to the old name (refindx64.efi). If you do this, you'll need to keep doing it in the future or eventually do the next thing. Also, this might not work if your firmware has "helpfully" removed the existing entry. Thus, the next option is probably better....

    • Use efibootmgr to add a new entry for the new name. The Arch wiki has details on this here and probably elsewhere, too.

  • rEFInd 0.6.3 has a known bug that causes it to crash on some systems. Upgrading to 0.6.4 may be necessary if you're affected by this bug. The usual symptom is a system hang, though, not a return to the firmware menu, so I suspect this isn't the problem. If it is, you can grab the official non-Arch rEFInd package and copy the refind_x64.efi file from it over the one on your ESP.

Offline

#3 2013-01-09 22:33:11

swordfish
Member
Registered: 2012-01-14
Posts: 160

Re: [SOLVED] UEFI-System doesn't start anymore after rEFInd update

Hi Rod,

thanks for your quick answer wink !

Ok, you write:

srs5694 wrote:

The 0.6.3 package changes the name of the rEFInd binary from refindx64.efi to refind_x64.efi. This is done because the official rEFInd release uses the latter name, and it includes support scripts that work correctly only if that name is used. Thus, if you deleted your old binary and copied the new one in place without renaming it to the old name, it would stop working, since the NVRAM entry would still point to the old name. There are two solutions:

Rename the new binary to the old name (refindx64.efi). If you do this, you'll need to keep doing it in the future or eventually do the next thing. Also, this might not work if your firmware has "helpfully" removed the existing entry. Thus, the next option is probably better...

Use efibootmgr to add a new entry for the new name. The Arch wiki has details on this here and probably elsewhere, too.

Jepp, I've seen the new name "refind_x64.efi". During my attempt to perform a proper install I did what you assume in your first solution - renaming the new binary to the old name (refindx64.efi).

After that my system didn't reboot ...

After that I booted from my USB stick with which I've installed my Arch system. I mounted my system partitions to /mnt, loaded the efivars module and arch-chrooted into the system. From there I copied the new binary from /usr/lib/refind/refind_x64.efi to /boot/efi/EFI/refind/refind_x64.efi and did this:

# efibootmgr -c -g -d /dev/sda -p 1 -w -L "rEFInd" -l '\EFI\refind\refind_x64.efi'

/boot/efi is mounted to /dev/sda1

But even after I did this a reboot only led to the well known green "Asrock" writing - no rEFInd appeared sad

Using the efi shell I can see that the boot entries seem to be okay.

srs5694 wrote:

rEFInd 0.6.3 has a known bug that causes it to crash on some systems. Upgrading to 0.6.4 may be necessary if you're affected by this bug. The usual symptom is a system hang, though, not a return to the firmware menu, so I suspect this isn't the problem. If it is, you can grab the official non-Arch rEFInd package and copy the refind_x64.efi file from it over the one on your ESP.

Hm, seems as if I have to try this ...


Arch_x64 on Thinkpad Edge E520 (Intel Core i5, 4 GB RAM, 128 GB Crucial M4 SSD) + ITX-Desktop (Asrock H77M-ITX, Intel Core i3-2120T, 8GB RAM, 64 GB Samsung 830 SSD)

Offline

#4 2013-01-10 03:42:37

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

Re: [SOLVED] UEFI-System doesn't start anymore after rEFInd update

swordfish wrote:
# efibootmgr -c -g -d /dev/sda -p 1 -w -L "rEFInd" -l '\EFI\refind\refind_x64.efi'

This should work, but:

  • The -g option forces efibootmgr to ignore a broken protective MBR data structure. IMHO, this is a bad idea; if the protective MBR is damaged, it should be fixed. Chances are it's not broken, although it might be.

  • The -w option seems to be intended to alter the protective MBR's serial number if it's non-0. Judging by the man page and code relating to this option in the source, it seems that the author believes that EFI requires a non-0 MBR serial number; however, the EFI specification states exactly the opposite: The MBR serial number should be 0. Thus, my hunch is that an earlier version of EFI left this detail ambiguous and some implementations required a non-0 MBR serial number, but the specification has clarified the issue and modern implementations probably don't care one way or the other; or some might even require a non-0 serial number. As a final twist, when I tried this option on efibootmgr under Arch, it had no effect. Thus, my guess is the code has been patched to remove it -- or maybe a bug has crept in that's had the effect of neutralizing it.

Overall, then, I'd recommend omitting both of these options from your efibootmgr command; however, it's conceivable that -w would actually be required on some systems.

Offline

#5 2013-01-10 09:38:29

swordfish
Member
Registered: 2012-01-14
Posts: 160

Re: [SOLVED] UEFI-System doesn't start anymore after rEFInd update

srs5694 wrote:

Overall, then, I'd recommend omitting both of these options from your efibootmgr command; however, it's conceivable that -w would actually be required on some systems.

Hey there, and thanks for this clarification smile ! I will give the modified efibootmgr command a try this evening when I'm back home from work. If it doesn't work I will try out refind_x64.efi from version 0.6.4 as you've recommended. The behaviour of rEFInd looks indeed pretty much like a system hang, so I suppose this might help. Otherwise I will try a downgrade to fix this problem.


Arch_x64 on Thinkpad Edge E520 (Intel Core i5, 4 GB RAM, 128 GB Crucial M4 SSD) + ITX-Desktop (Asrock H77M-ITX, Intel Core i3-2120T, 8GB RAM, 64 GB Samsung 830 SSD)

Offline

#6 2013-01-10 19:03:49

swordfish
Member
Registered: 2012-01-14
Posts: 160

Re: [SOLVED] UEFI-System doesn't start anymore after rEFInd update

Okay , my system is back in business smile

Finally I arch-chrooted into my system using the usb stick with Archiso. Then I downgraded refind-efi from version 0.6.3-1 to version 0.6.2-1 and copied /usr/lib/refind/refindx64.efi to /boot/efi/EFI/refind/refindx64.efi. Then I did a

# efibootmgr -c -d /dev/sda -p 1 -w -L "rEFInd_recover" -l '\EFI\refind\refindx64.efi'

After that I could boot my system successfully big_smile

Maybe tomorrow I will try to boot with the refind_x64.efi from the official non-Arch rEFInd 0.6.4.

Last edited by swordfish (2013-01-10 19:06:55)


Arch_x64 on Thinkpad Edge E520 (Intel Core i5, 4 GB RAM, 128 GB Crucial M4 SSD) + ITX-Desktop (Asrock H77M-ITX, Intel Core i3-2120T, 8GB RAM, 64 GB Samsung 830 SSD)

Offline

#7 2013-01-11 17:06:51

swordfish
Member
Registered: 2012-01-14
Posts: 160

Re: [SOLVED] UEFI-System doesn't start anymore after rEFInd update

srs5694 wrote:

rEFInd 0.6.3 has a known bug that causes it to crash on some systems. Upgrading to 0.6.4 may be necessary if you're affected by this bug. [...] you can grab the official non-Arch rEFInd package and copy the refind_x64.efi file from it over the one on your ESP.

This solves my booting problem, too. So downgrading to version 0.6.2-1 or choosing the refind_x64.efi file from the official non-Arch rEFInd package version 0.6.4-1 solve the problem caused by refind-efi 0.6.3-1.


Arch_x64 on Thinkpad Edge E520 (Intel Core i5, 4 GB RAM, 128 GB Crucial M4 SSD) + ITX-Desktop (Asrock H77M-ITX, Intel Core i3-2120T, 8GB RAM, 64 GB Samsung 830 SSD)

Offline

Board footer

Powered by FluxBB