More UEFI weirdness; the HP Pavilion G4

[Updated 7/09/2013.  Check details toward the end of the post.]

I have been helping another user with his UEFI system.  The help thread at opensuse forums is:

In this case, the user has successfully installed opensuse 12.3.  But, whenever he boots, the system wants to boot Windows rather than opensuse.  It is not a total disaster.  He is able to bring up the BIOS boot selector and choose opensuse there.  However, it would be far easier if the grub2-efi boot menu came up and he could simply select Windows or opensuse.

The owner of this HP computer is an admitted linux newbie, so it is taking time to work through the details.  I am pretty sure that I understand what is going on, but a fix is not yet in place.  If appropriate, I’ll update this post when more is known.

The basic problem

The problem here is similar to, though not quite the same as, the problem on the Toshiba system that I described in an earlier post.  The firmware does implement most of the features of UEFI.  However, on reboot, the BIOS seems to switch the boot order so that it always boots a device rather than an operating system.  In this case, the device is configured to always boot Windows.  I’ll make a separate post on the issue of booting an operating system, rather than a device.

The solution, in this case, is going to be to change the device so that it will default to booting grub2-efi rather than Windows.  That way, the broken behavior of the HP computer will still get to the grub2  boot manager menu.

Changing the device amounts to copying some of the grub2/opensuse boot files to the directory “\EFI\Boot” on the primary disk, and naming one of those “bootx64.efi”.  I am pretty sure that my advice, given in that opensuse forum thread, will solve the user’s problem.

Update 7/09/2012

My initial diagnosis was a bit off.  The problem seems to be that the firmware was always changing the boot order to put the Microsoft entry first.  I’m not sure whether it is putting entry 0000 first, or the entry that uses the Microsoft name.

We discovered this when the attempted workaround of putting opensuse boot files in “\EFI\Boot” did not solve the problem.  The solution that did work was to have the opensuse boot files in the same EFI partition, and then use BCDEDIT on Windows to set the path for the Windows boot manager to actually be the path to the opensuse boot loader (the “shim.efi”) program.  Consult the opensuse forum thread if you want to see the full details.

Advertisements

Tags: , , ,

About Neil Rickert

Mathematician and computer scientist who dabbles in cognitive science.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: