OpenSUSE 12.1 UEFI Install 64-bit

Greetings,

For the past ten days I have been attempting to UEFI install OpenSUSE 12.1 (openSUSE-12.1-DVD-x86_64.iso) on the ASUS M5A99X EVO motherboard. So far no luck, that is, it will not install with a UEFI bootloader (ELILO) but will quite happily install GRUB/MBR. UEFI is required as hard drives larger than 2TB are being used.

As per the following forum post UEFI booting/installing should be straightforward, but it is not.

http://forums.opensuse.org/content/102-booting-opensuse-uefi-bios-elilo-grub2-linux-only-multi-booting.html

Contrary to what this post indicates, the install DVD does not have a UEFI bootloader (ELILO) so the UEFI bios does not show or detect a UEFI bootable media and thus boots the install disk in BIOS/MBR mode allowing only GRUB/MBR booting.

Without writing many thousands of pages of what I’ve tried to accomplish a UEFI install, suffice it to say that if you can find it with Google I’ve tried it. From strictly using the Yast installer to coercing the install by preformatting the hard drive GPT with a FAT32 ESP partition as partition 1 - nothing will convince the installer to EFI boot.

So the questions are:

  1. Does the 12.1 install DVD actually include a UEFI bootloader as the aforementioned forum post indicates (the ASUS EFI bios indicates that it does not)?
  2. Has anyone actually successfully installed 12.1 in UEFI mode on an ASUS UEFI platform, and if so, how did you get it to work?

Again, UEFI is needed because I am using hard drives larger than 2TB which is beyond the capabilities of legacy BIOS.

Note that this problem is not a single mobo, I have multiple M5A99X EVO mobos, all insist there is no UEFI bootloader on the 12.1 install DVD - this is not a failure of a single mobo.

Thanks!

Did I say “straightforward”? Well maybe it was exagerated.

It surely does. Whether the BIOS switches in UEFI mode is another problem.

Yes. The DVD includes a UEFI bootloader, as shown on the picture (2 CDS icons, one for the UEFI boot device and one for the Legacy)

Yes. The mainboard I used for the article is an ASUS M5A97. I installed openSUSE, Fedora Ubuntu and Windows 7 in any order. But, as I wrote in the article, you have to call the BIOS setup just before booting and make sure that the UEFI device has boot priority. Otherwise it will systematically boot the install disk in MBR/BIOS mode.

It’s not surprising. They all default to Legacy BIOS/MBR. The only system that booted in MBR, despite I set the priority to UEFI was actually Windows. Then it installed with MBR partitioning. On the next attempt, it booted into UEFI and refused to install because it found a MBR on the disk. Thus, every time, I had to install Windows twice (by deleting the MBR the second time during setup).

As soon as you get the BIOS in UEFI, openSUSE will boot in ELILO. Careful with ELILO! Don’t set any boot option in the installation settings. It seems to fail parsing the options and it won’t reboot and output garbage. Install Grub2 as soon as the installation is complete, using the script I provide or following the method described in the article.

I mean, it wasn’t certainly “straightforward” for me, as I had to install in many different situations in order to write a consistent method. But it is expected to be straightforward for the user afer all. In fact, if your BIOS would have switched to UEFI mode, you would be done with the installation already.

Thanks for the reply. The question is then how did you get the BIOS into UEFI. The ASUS UEFI does not support a user selectable mode switch for this mobo. The mobo appears to go to legacy BIOS instead of UEFI if it does not find a UEFI bootloader. It also does not show any EFI bootable devices in EZ Mode as your post images shows (neither are any boot devices prefixed “EFI:” in the boot menu even though with the 12.1 DVD it should).

enjoy…

Neither did mine. Otherwise it would have been easier.

Yes, this is normal.

That’s not cool. The UEFI BIOS has a boot manager embedded. It handles the bootloaders whether they are on CDs or HDDs as boot devices. You should insert the DVD and maybe just power off to make sure that it will be found when you power on. Then call the BIOS immediatly with the DVD inserted and look at the boot priorities. The DVD should apper twice. If you don’t see the UEFI bootloader, I don’t know how it could boot in UEFI mode. It probably won’t. In this case that would indicate a communication problem between your BIOS and the DVD: the EFI bootmanager doesn’t read the bootloader on the DVD. Try with Fedora DVD and Ubuntu live CD (this one has a UEFI bootloader) to see if it makes a difference. What you should change in your BIOS is the boot priority of devices. Boot devices are actually boot loaders. You can have several bootloaders on the same physical device.

Thanks for the feedback please_try_again. The boot manager is not seeing any UEFI bootloader on the 12.1. It finally occurred to me to actually look at the content of the 12.1 install DVD. Sure enough, there is no UEFI bootloader so the UEFI bios is acting as it is designed and falling back to legacy BIOS mode. That explains openSUSE.

However, I tried Ubuntu 11.10 (which actually has a UEFI bootloader) yet the UEFI bios does not see it and Ubuntu installs BIOS/MBR.

The bottom line is no Linux installers are up to the trivial task of installing GPT/UEFI and the distribution disc fail to be UEFI format compliant. Its the usual **** that the Linux community revels in, always chasing a new idea but never completing anything while *****ing and moaning and flaming anyone who dares point out their inadequacies. Legacy GRUB never got done, but wait, GRUB2!..yea, that’s the ticket, it will do EVERYTHING. Of course, GRUB2 is in the usual endless development cycle with marginally working releases of a bad idea gone mainstream. Fact of life is a bootloader need only load the OS, nothing else. Windoze is pure junk, but at least it installs effortlessly. How on earth could Linux not be mainstream? This is how. Enough ranting.

So it is necessary to go low-level and do the bootloader by hand (EFI shell and such). Since I don’t use Windoze all that is needed is ELILO. (Actually not even that, can use the UEFI boot manager or EFI shell.)

I’ve got a message in to ASUS as regards the UEFI implementation and the problems observed. As far as I can tell the ASUS UEFI bios (actually AMI bios) is UEFI spec. The problem lies with the Linux installers. Anyhow, I don’t expect any useful assistance from ASUS. ASUS customer support is beneath poor and it gets exceptionally bad when any issue involves Linux - ASUS corporate policy is to not support Linux with a big old one-finger salute.

Again, thanks for the input. I’ll post any useful info I find.

Your BIOS sucks. That’s all.
Now … sorry if it sounds like a stupid question but … are you not trying to install the 32bit version of the OSes? All right, sorry, it was a stupid question.

Anyway, get an ASUS M5A97 mb and an openSUSE 12.1 64bit install DVD, call BIOS setup just before booting, drag the UEFI device into the first position and you will see ELILO booting.

The pictures in the second article clearly show that it uses GPT: Booting openSUSE on UEFI BIOS with ELILO and Grub2 (part II - Windows dual-boot ). It also shows all the bootloaders and the output of the efibootmgr command.

  • There is a EFI bootloader on openSUSE 12.1 install DVD (64bit). It boots and installs ELILO. You can use my script updateGrub2 to install Grub2-efi afterwards.
  • There is a EFI bootloader on Fedora 16 install DVD (64bit). It boots and installs a patched version of Legacy Grub, which supports UEFI. You can install Grub2-ef afterwards as well.
  • There is a EFI bootloader on Ubuntu 11.10 DVD and Live CD (64 bit). It boots and installs Grub2.
  • I haven’t installed Arch Linux but it works too and is documented in Arch wiki.

These are the facts.
Good luck.

Another possibility to use (and boot!) GPT on non UEFI machine is to install Fedora 16 on a blank hard disk (without MBR). In this case, Fedora 16 now creates a GPT by default and installs the bootloader in a BIOS partition (similar to the EFI system partition but much more tricky). I read it but didn’t test it:

Zum Einstellen des Plattenplatzes legt das Installationsprogramm von Verne auf leeren Datenträgern nun eine GPT (GUID Partition Table) an, selbst wenn die Hardware die installierten Betriebsysteme ohne UEFI (Unified Extensibke Firmware Interface) startet; bei bereits mit einem MBR (Master Boot Record) versehenen Datenträgern verläuft die Partitionierung wie gewohnt.

When partitoning the hard disk, the Verne installer now creates a GPT (GUID Partition Table) on any empty disk, even if the hardware does not start the operating system using UEFI (Unified Extensible Firmware Interface). If the hard disk already contains a MBR (Master Boot Record), the partitoning proceeds in the traditional way.

[RIGHT]CT’ magazine 25/2011, page 80[/RIGHT]

Of course, that would be stupid to do that on a UEFI system. You should get your UEFI BIOS to work and recognize the EFI bootloader on the DVD. But just to let you know that this possibility exists. This allows to use an boot hard disks > 2 TB on Legacy BIOS systems.

I feel hard to believe that my (cheap) M5A97 works and your M5A99X does not. One more detail though: to be able to call the BIOS setup in time to change the boot priority, I had to use a PS/2 keyboard, Curiously, this mainboard has a PS/2 port. And if you insert the DVD during the POST, the UEFI BIOS won’t see the EFI bootloader. It is tricky. The people at the computer store who were supposed to install Windows on this machine didn’t get it either. I asked them to install Windows with GPT and it came with MBR - which didn’t surprise me. I had to reinstall Windows myself (and I hate that).

The key is “boot priority”. If the EFI devices don’t show up as icons, go to advanced options or whatever it is called. Look for the boot devices there. There should be an EFI and a ‘normal’ CD/DVD. The BIOS switches between UEFI and Legacy according to the first device in boot order. This is simply poor engineering.

The M5A99X also has a PS/2 port but works without problem with a USB mouse and keyboard. Windoze not spoken here btw.

There is definitely a difference in BIOS behavior between these motherboards. The M5A99X simply will not detect GPT/UEFI boot media on either CD/DVD or hard disk. However, it does correctly detect GPT/UEFI boot media on USB memory. In no event will this motherboard boot into UEFI mode from any media, it will always switch to legacy BIOS. The American Megatrends UEFI bios on this motherboard (versions 0813 and 0901) are highly defective and do not comply with UEFI specifications. Sad because the hardware itself is great but there is no support for hard drives greater than 2.2TB due to the faulty AMI bios. No doubt ASUS is aware of this.

As usual, ASUS support is totally non-responsive. But as any ASUS user knows, that’s the norm. The M5A99X is a great mobo, but if you need drive larger than 2.2TB, forget it.

It is easy to demonstrate that the M5A99X UEFI bios is not compliant with the UEFI 2.x specification (specifically section 3.4). Format a USB memory GPT and create the ESP partition. Copy the tianocore UEFI 2.0 shell into the ESP as /efi/boot/bootx64.efi. Under this condition, with the USB memory installed, the system should boot into the UEFI shell. However, the motherboard simply switches to legacy mode and requests bootable media be installed. The same exercise with hard drives fails similarly.

The bottom line is this mobo is not UEFI and does not support hard drives larger than 2.2TB. It works fine in legacy bios mode.

Yes.

Only a BIOS update might help in this case. In the meantime, people who need UEFI should be advised not to buy an Asus M5A99X. I should start adding a compatibility/incompatibility list.

It’s possible to boot in GPT on Legacy BIOS systems with a BIOS partition. If you blank (zero fill) the MBR and install Fedora 16, it should by default create a GPT, even on Legacy BIOS systems. Then you should be able to boot HDDS > 2.2TB. As I said, I read an article in a very serious magazin (german CT’) but didn’t test this method. Also please read the section “Booting from GPT on BIOS-Based Computers” in this article Booting from GPT. It doesn’t look good for openSUSE though:

Most modern Linux distributions install GRUB as the boot loader. Currently, GRUB 0.97 (aka GRUB Legacy) is the most common choice. Officially, GRUB 0.97 is not GPT-aware and so can’t boot anything from a GPT disk. In practice, though, patched versions of GRUB 0.97 are common, and many distributions ship with them. (Ubuntu 8.04 and Fedora 10 through 15 definitely have GPT-enabled versions of GRUB 0.97, but openSUSE 11.0 does not.

BIOS is current, version 0901. The board shipped with 0813. The UEFI behavior of this board is the same with either BIOS version.

I agree that those seeking a UEFI mobo should not purchase the ASUS M5A99X. I would go even further to state that all ASUS products, and all motherboards using AMI bios, should be boycotted due to deliberate UEFI bios implementation that excludes all OSes except Windows on this motherboard (and probably others), which I document later in this post. Everything I document is verifiable and repeatable. FSF should be interested in this.

Definitely list this mobo as UEFI incompatible for Linux.

What follows is the result of extensive evaluation and testing of the ASUS M5A99X mobo.

From the ASUS M5A99X EVO User’s Manual, Section 4.1, page 4-1: “This motherboard supports Windows XP/64-bit XP/Vista/64-bit Vista/7/64-bit 7 operating systems (OS).” ASUS is quite literal about this as the UEFI bios on this mobo quite deliberately denies UEFI mode to any OS other than Windows. ASUS fails to disclose this in supporting sales literature for this mobo.

The ASUS M5A99X EVO UEFI bios will only allow a Windows installation media to install in the UEFI mode and will force any non-Windows installation media, i.e. Linux, into legacy BIOS mode preventing UEFI mode operation for non-Windows OSes.

To demonstrate that the UEFI bios will not enable UEFI mode installation of any OS other than Windows is straightforward. Install a Windows installation DVD, I used 64-bit Windows 7, and boot into the UEFI bios setup. On the EZ Mode screen the Windows installation DVD will appears as two icons in the Boot Priority section, one a removable media icon and the other a removable media icon with “UEFI”. Clicking on the Boot Menu button, or selecting F8, chooses the Boot Menu which will list the Windows install DVD as both non-UEFI and UEFI. Entering the UEFI shell and running the Windows UEFI bootloader from \UEFI\BOOT\BOOTX64.EFI results in a seamless Windows installation in UEFI mode with no further action required by the user. This is documented by Microsoft at Installing Windows to an EFI-Based Computer. The requirement to start the UEFI bootloader from the UEFI shell is normal for UEFI and is specified in the UEFI 2.x specification.

For a non-Windows installation media, in this case both Ubuntu 11.10 and openSUSE 12.1, which conform to the requirements of the UEFI 2.x specification, section 12.3.2.1, the UEFI bios on this mobo refuses to recognize the media as valid UEFI media and forces the legacy BIOS mode when installing. This behavior can be observed by inserting the Linux installation media and booting the system into the UEFI bios. Contrary to the behavior with Windows installation media, the Linux installation media is not recognized as UEFI media. In the EZ Mode screen the media is not shown with a UEFI icon and in the Boot Menu the media is not listed as UEFI media. Because the UEFI bios will not recognized valid non-Windows installation media as UEFI media, the UEFI bios does not mount the UEFI partition on the Linux install media. Because the Linux installation media is not mounted it is not possible to start the Linux UEFI bootloader from the UEFI shell as can be done with Windows media. The result is that Linux can only be installed in BIOS mode which means there is no support for hard drives larger than 2.2TB for Linux.

It can further be demonstrated that non-Windows UEFI compliant media will not be started by the UEFI bios on this mobo by a method that is absolutely in conformance with the UEFI 2.x specification. The UEFI 2.x specification, sections 3.3 and 3.4, states that if no bootloader is defined in the EFI boot variables, or if no bootloader listed in the EFI boot variable can be found, then the UEFI bios will default to the bootloader located at \EFI\BOOT\BOOTX64.EFI (for x86_64 platforms) on any available device in the order specified by boot order. For this mobo the boot order is selected from the BOOT screen of the Advanced Mode of the UEFI bios setup. By creating both a hard disk and USB memory conforming to the UEFI specification, the blocking behavior of the ASUS UEFI bios can be observed.

For both a hard disk and USB memory, format both GPT (I used GParted) and create the first partition as the ESP partition. Format the ESP partition as FAT32 and set the boot flag on the partition. Create the following directories in the ESP partition: \EFI and \EFI\BOOT. Copy the UEFI shell (from tianocore UDK2010.sr1) to the ESP as the file \EFI\BOOT\BOOTX64.EFI. Both these media should now boot into the UEFI shell, but they do not as required by the UEFI 2.x specification.

When the manually created compliant media is installed into the system and the system is booted into the UEFI BIOS setup, the hard drive is not recognized as UEFI media while the USB memory is recognized, but neither can be booted. Attempting to boot either media results in a UEFI bios message, “Reboot and Select proper BOOT device or Insert Boot Media in Selected BOOT device and press a key.” The only “proper” boot media is Windows.

Further, moving the Windows installation DVD to a USB memory the system will allow UEFI mode installation of Windows as described earlier.

Clearly ASUS/AMI has programmed the UEFI bios on this mobo to recognize Windows installation media and only allow UEFI mode installation only when installing Windows. Note that this is not the Secure Boot feature of UEFI which is not yet available. This is deliberate action on the part of ASUS/AMI to make installation of a non-Windows OS on this mobo very difficult for the casual user. For the very technically skilled user, a UEFI mode installation can be accomplished with great difficulty only because the UEFI bios must conform to some aspects of the UEFI 2.x specification which enable technically sophisticated persons to achieve a UEFI mode Linux installation. It would not be surprising that these loopholes will vanish in newer UEFI specifications.

These results are reproducible by anyone with sufficient technical knowledge and skills. The preponderance of the evidence in conjunction with the public statements of corporate policy by ASUS unfavorable toward the Linux OS make it clear that the ASUS M5A99X EVO mobo with AMI UEFI bios actively operate to prevent non-Windows OS installations in UEFI mode. This behavior is contrary to very clearly defined UEFI specification and is far too deliberate to be a “bug”. Note that this obstructive behavior applies to OS installation only. If one is technically sophisticated enough to install Linux and modifies the UEFI boot variables to select ELILO then the mobo will operate in UEFI mode.

For clarity, the steps to install any OS in UEFI mode are:

  1. Insert a UEFI compatible installation media into a system device.
  2. Boot the system into the UEFI shell.
  3. From the UEFI shell run the bootloader from the OS installation media.
  4. The OS installer installs the OS and updates UEFI boot variables to boot the OS.
  5. Reboot the system into the installed OS.

The ASUS UEFI bios blocks non-Windows OS installation at step 3, above, by disallowing UEFI mode.

I have managed to install openSUSE 12.1 on the ASUS M5A99X EVO mobo. For those using openSUSE 12.1 with ELILO be aware that Yast creates an invalid elilo.conf file by inserting several options without values which cause ELILO to fail. Simply fix these by hand to boot but be aware that when there is a kernel update, unless Yast is fixed, you will have to again manually fix the elilo.conf file. Also, it is a good idea to replace the ELILO in the 12.1 distribution with ELILO 3.14 available at Sourceforge. If you replace ELILO be aware that Yast will replace it with the openSUSE version every time the kernel updates so you have to restore the ELILO 3.14 by hand after a kernel update.

Last note, openSUSE 12.1 installs the wrong ethernet driver for this mobo. The correct driver is for the 8111E and is available from Realtek.

Thank you for this great post!

Yes, I can confirm that. It happened every time when I selected the Boot Loader options, even if I did not change anything. When I didn’t touch the Boot Loader Options (meaning didn’t clik on Booting in the Installation Settings"), I was able to reboot normally.

Setting LOADER_TYPE=“none” in /etc/sysconfig/bootloader will prevent the Perl BootLoader from touching Grub’s menu after a kernel update. I would assume that it might also work wit ELILO.

Or just install grub2-efi. YaST won’t touch its boot menu (it doesn’t know how). You’ll have to update it manually after a kernel update (updateGrub2 can do it).

I’m filing a bug report. Much easier to let the SUSE team fix it.

Once upon a time there was GRUB, and it was good. GRUB could do everything: wash dishes, mow the lawn, clean the house, repair the car…just everything! Not really. One day the Unenlightened Fairy spoke and the masses became aware that GRUB was not the almighty. There would be another - GRUB2. And so it came to pass that GRUB2 burst forth into the divine realm. Verily GRUB2 could do everything GRUB once did and more - it could date your wife, impregnate your wife, and even deliver the baby! But alas, the Unenlightened Fairy lied, GRUB2 would not raise the baby…your stuck with your wife’s illegitimate offspring.

I think I posted before, but I’ll reiterate, a bootloader only needs to do one thing, load the OS image. ELILO does this, and allows selecting different Linux distributions. Doesn’t do windows, but then, neither do I. GRUB2 is wildly out of step with reality and certainly unnecessary in the UEFI environment - but it keeps the Unenlightened Fairy safely away from the real world.

Again, thanks for you feedback please_try_again. I think this thread is done.

Mine does not work without problems with an USB keyboard. I often had to reboot because I can’t select anything in the grub menu (only there). That was the reason why i decided to reinstall the system in EFI mode.

well, I stumbled upon your thread when searching for information about booting this board in EFI only mode, because I didn’t get my SSD into a form that this board accepts. I found also that any of my installation CDs (linux and windows 7) weren’t accepted either. The only device that has a EFI entry in the boot menu was one of my internal hard disks. It was the only device (at that time) with a standard fat32 partition. From there to a solution was a small step: simply copy the contents of your installation medium to a standard fat32 partition (here it was a 16GB usb stick) and you will see the EFI tagged boot menu entry and it will boot.

mfg

 M. Bähr

Additional Information to my above Posting:

for parallel installation of windows 7 in efi mode on this board I had to do the following steps:

  1. copy the contents of the installation cd to a fat32 formatted stick.
  2. copy the contents of the folder /efi/microsoft on that stick to /efi
  3. extract the file bootmgfw.efi and bootmgr.efi from file /sources/install.wim->/1/Windows/Boot/EFI/
  4. alternative version: copy named files from an existing win 7 installation from /Windows/Boot/EFI/
  5. rename bootmgfw.efi to bootx64.efi and copy it to /efi/boot/ on that stick
  6. overwrite /bootmgr.efi on that stick with the extracted version (only of interest if using a slipstreamed/updated version of win 7 I think)

after that I was able to install win 7 in efi mode. Last advice: be shure not to install grub on the mbr but on the installation partition of linux.

Now I have two different “BIOS” Entries and both OSes do fine. My linux version is linux mint 12 and not suse but there should be no major differences. I wanted to add this missing information much earlier (the next day after the first posting) but an accident and 11 days in hospital preventd that. Sorry for that.

M. Bähr

Problem is that Mint uses Grub2 and OpenSUSE is still stuck on Grub legacy and the developers don’t seem to be in a hurry to move to Grub 2.

On 2012-03-09 00:46, gogalthorp wrote:
>
> Problem is that Mint uses Grub2 and OpenSUSE is still stuck on Grub
> legacy and the developers don’t seem to be in a hurry to move to Grub 2.

No, it is already announced for 12.2


Cheers / Saludos,

Carlos E. R.
(from 11.4 x86_64 “Celadon” at Telcontar)

Good…