UEFI Boot with Korora/Fedora and Mint/Ubuntu, hands-on

UEFI Boot with Korora/Fedora and Mint/Ubuntu, hands-on

Summary: Installing multiple Linux distributions on a UEFI boot system - here are my experiences with Korora/Fedora and Mint/Ubuntu.

SHARE:

Installing Linux on computers with UEFI BIOS has a bad reputation - sometimes deservedly so. It can be easy, but perhaps more often than not it can be difficult, tedious and messy - and sometimes, as far as I have been able to determine, it just isn't possible; or at least I haven't figured it out yet.

I have written about UEFI boot and Linux several times before - Multiboot Linux with UEFI and Installing Linux with UEFI Secure Boot contain a lot of information that I will not repeat here, so please refer to those if you need more background information.

What I want to deal with now has to do with the fact that a UEFI boot system is set up with a special disk partition where one or more boot images are stored. This is called the 'EFI Boot Partition' (how imaginative), and it is a FAT32 filesystem.

Within that partition there will be directories (folders) which contain the actual EFI boot files. If you are running Windows 8, two of those directories are very likely to be called 'Boot' and 'Microsoft'. If you install Linux on a UEFI system, it will mount the EFI boot partition on /boot/efi, and it will add a directory in that partition to hold its boot files.

There are several Linux distributions which already include support for installation with UEFI boot. The ones which I am familiar with, and have installed on the two UEFI boot systems I own are Debian GNU/Linux, OpenSuSE and Fedora. There are more Linux distributions which are derived from one of these UEFI-capable distributions, and thus basically "inherit" UEFI capability.  

The distributions of this type which I am familiar with are Ubuntu (from Debian), Linux Mint (from Ubuntu) and Korora (from Fedora).

For the picky reader, please note that I said "Mint derived from Ubuntu", because at this time only the "numbered" Mint distributions (such as Mint 16) include UEFI support, while Linux Mint Debian Edition still did not, at least as of the last ISO images, although those were released a long time ago (March 2013) and I really hope that the next set of LMDE images will include UEFI support - they should be coming along pretty soon now.

The problem arises because of conflicts over the name of the directory that the Linux distribution creates in the EFI boot partition. The "first generation" distributions each chose their own directory names, so Debian uses "/boot/efi/EFI/debian", OpenSuSE uses "/boot/efi/EFI/opensuse" and Fedora uses "/boot/efi/EFI/fedora".  

The distributions which are derived from these generally chose not to change the name of this directory. The exception is Ubuntu, and I have a feeling that Ubuntu might have done the UEFI implementation themselves rather than using Debians, but I don't know that for sure.  

In any case, the specific cases that are of interest here are that Linux Mint 16 uses /boot/efi/EFI/ubuntu, and Korora uses /boot/efi/EFI/fedora. That leads to a very unfortunate situation where if you install both the "parent" and the "derived" distribution on the same UEFI system, the second one overwrites the UEFI boot information of the first. Ugh.

Note: Linux Mint actually did change the name of the boot directory in the Mint 15 release, to /boot/efi/EFI/linuxmint, but in the later releases of Mint 16 KDE and Xfce it was broken, and in the Mint 16 release it has gone back to /boot/efi/EFI/ubuntu. Not nice.

The first work-around that I tried for this problem was the obvious one - rename the directory before installing a conflicting distribution. So I would install Fedora, then rename /boot/efi/EFI/fedora to /boot/efi/EFI/fedora19, then install Korora which would create a new /boot/efi/EFI/fedora directory, and for safety I would also rename that one to /boot/efi/EFI/korora.  

This almost worked - it seemed to work at first, but then I realized that the problem was when there were updates which affected the EFI boot files, it got confused because the files weren't in the place it expected to find them. Of course I could change the name back to the original before installing updates, but remembering to do that is rather impractical, at least for me, and it sort of turns into a house of cards pretty quickly.

Then, when Ubuntu 13.10 and Linux Mint 16 came out, something had changed inside the UEFI boot setup which caused the renaming not to work anyway. The boot configuration seems to have /boot/efi/EFI/ubuntu hard wired in it somewhere, so when I renamed the directory it wouldn't boot any more: argh.  

That's the reason for my recent posts about it being impossible to install Ubuntu and Mint on the same UEFI boot system.

Over the weekend, while I was installing the new Korora 20 release, I realised that there is a much better, easier and more reliable solution for this problem.

I actually mentioned in my earlier posts that Fedora (Anaconda) by default wants to create a new EFI boot partition when it is installed. I don't like creating new partitions for something that already exists, as I consider it a waste of disk space, so I have made the effort to change the configuration and have it use the existing EFI boot partition.

I basically outsmarted myself in this case, because if I just shut up and leave it alone so that it creates the new partition, it will be the only thing in that partition and there can be no conflict. If you install both Fedora and Korora on the same system, each of them will create their own EFI partition and the world will be a very happy place.  

The only minor "problem" is that you will end up with two 500MB paritions, one of which contains about 10MB of data.  But considering today's disk sizes (even SSD disks), who really cares? Especially when it solves such a problem.

Unfortunately, I have not found a way to use this work-around to avoid the Ubuntu/Mint problem.  I can't find a way to specify the EFI boot partition to be used on installation, or to tell the Ubuntu installer that it should create a new partition rather than use the existing one.  

I might try a bit harder at this if I have some time, but honestly my interest level in having Ubuntu installed, or conversely my disappointment level at not having it installed, is so low that I might just not get around to it. At the moment all I do is on UEFI systems I install Mint, don't bother with Ubuntu, and the world is a nice place again.

A bit more general discussion about my experience with Linux systems and UEFI boot: looking at it only from the perspective of a boot system configuration and operation, I like it - probably more than MBR boot now.  

I think it is cleaner, easier to see and understand, and certainly less fragile than embedding a boot block at the beginning of a disk or partition. I might be a special case in this context, because I have so many multi-boot systems around, but I still think that the basic advantages are significant, without even going into the details of why UEFI was developed, whether Secure Boot is a good thing or not, and so on.

How I installed Fedora 18 with UEFI Secure Boot

How I installed Fedora 18 with UEFI Secure Boot

How I installed Fedora 18 with UEFI Secure Boot

Look at what is involved when I do a typical MBR multi-boot installation, with Linux (GRUB) as the bootloader. 

I generally want to be able to go back to the Windows bootloader, just in case, so the first thing I have to do is save the first 512 bytes from the raw disk. Not difficult, but not trivial either. Then, if I want to have multiple Linux parititions which are bootable, I have to embed the boot block in each of them, and I have to ignore the warning from 'grub2-install' about that not being a good idea.

Finally, if I want to see what I have done, or what the current boot configuration of an MBR disk is, well, that's just not easy. I can read the bootloader config files, if I have access to them, but even then there is no guarantee that the actual configuration on the disk agrees with what the files claim.

On the other hand, for a UEFI boot configuration everything is laid out in a normal filesystem (FAT32, but still), I can look at the directories and files and see what is really there. Because of this, it was relatively easy for me to see what had gone wrong when the distributions were overwriting each other, as described above.

What I have done on both of my UEFI systems is set up GRUB from openSuSE as the default bootloader, and then I put each of the other Linux distributions into the openSuSE grub.cfg file with 'chainloader' pointing to their EFI boot directory.  

Please note, this ONLY works with Secure Boot disabled, and it is NOT the way that GRUB sets up the configuration itself when you run 'grub2-mkconfig'.  

But it has the distinct advantage of keeping the boot configuration independent of kernel updates in the other Linux installations. If I use the default GRUB multi-boot configuration, and Fedora updates the kernel from 3.12.5 to 3.12.6, the openSuSE configuration would still boot the "old" Fedora kernel, unless I run 'grub2-mkconfig' to generate a new grub.cfg file.  

But if I am chainloading the Fedora GRUB, then it will always boot the latest kernel, because it gets updated when the Fedora update is installed.

Finally, my positive feelings about UEFI boot are based only on my use of GRUB and being able to configure it to do what I want.  

If I had to try to figure out how to configure the Windows 8 bootloader to do this, I would certainly feel differently - I know this, because I have tried and failed and gotten very frustrated over it.  Also, it does NOT take into consideration anything related to boot configuration in NVRAM, or the Linux 'efibootmgr' utility, because that it is completely vendor-specific, and while it is not bad on the Acer AO725, it is downright awful on the HP dm1-4310, and I still won't even try a Samsung UEFI system because of the problems with NVRAM changes causing the system to brick some time ago.

As I have said before, it seems increasingly unlikely that UEFI BIOS and boot are going to go away, no matter how much the Linux community disllikes them, complains about them, or tries to ignore or boycott them.  

In fact it seems unlikely that there will even be very significant changes to the installation and configuration in the future, at this point. I can see the advantages, I can learn to live with it and make the most of it, and I know only too well what the problems with MBR boot are. So why not just get over it, and move ahead with UEFI.

That's what I am going to do, anyway.  I hope this probably-too-lengthy post helps some others reach their own decisions about it.

Further reading

Topics: Linux, Open Source, Operating Systems

J.A. Watson

About J.A. Watson

I started working with what we called "analog computers" in aircraft maintenance with the United States Air Force in 1970. After finishing military service and returning to university, I was introduced to microprocessors and machine language programming on Intel 4040 processors. After that I also worked on, operated and programmed Digital Equipment Corporation PDP-8, PDP-11 (/45 and /70) and VAX minicomputers. I was involved with the first wave of Unix-based microcomputers, in the early '80s. I have been working in software development, operation, installation and support since then.

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

17 comments
Log in or register to join the discussion
  • All problems of this type occur for two reasons -

    laziness on the part of the developers, and further, their wish to control the user's machine. It started with Microsoft, and losing the ability to put drivers where one wished, and spread from there.

    Admittedly, this is only a problem for those who are anal retentive about clean, logical, and neat structure - but as you can probably tell by the use of the Oxford comma, I belong to that group.
    chrome_slinky
  • Do you have to follow Microsoft?

    Microsoft started, as you stated, to have a secure boot on computers with Windows on it. It does not mean that Linux could have done the same, which they did. Example, Debian GNU/Linux, OpenSuSE and Fedora. The problem and will always be the issue is the many variants of Linux. As the author mention he could install secure boot. He got problematic when he try to install other variances of Linux. There are too many variants of Linux. Each one with his own particular way to operate. The core is the same but all the changes makes it problematic. I lost count of how many variants of Linux there are, do any one knows? What some consider the best part of Linux is also it's worst enemy. Which is the best Linux? Each person have a different idea of how it should be. Unless someone unify it to only 1 Linux it will be a big problem for the Linux community.
    jazzy2945
    • Part of the problem...

      Is how UEFI was implemented. Microsoft dictated how.

      And buggy implementations were perfectly acceptable... as long as they booted Windows.

      Linux had to implement the efibootmgr to compensate for not being able to deal with the UEFI directly (microsoft dictates again).

      The use of conflicting path names is part of the buggy implementation - a few would not boot anything but Windows or RH - as explicitly coded in the rom.

      All GNU/Linux distributions are equivalent. Some have different sets of packages available... But they are cross compatible. That is why most distributions based on Debian also have support for RPM. And Red Hat/Fedora has apt.

      Even Android is compatible - they share the same kernel. If you want Android on an Intel PC, install a linux distribution, then add the Android86.

      UEFI is a problem on ARM due to Microsoft dictates. It HAS to use a boot loader signed by Microsoft.

      But don't try to get one for Surface - Microsoft used a different certificate for that. Deliberate incompatibility.
      jessepollard
      • That's the reason i won't pay a single cent for secondhand UEFI-machines

        ... and i have already mentioned the same in shops selling computers. Computer to where i can't 100% sure install my OS (Linux) is worth of nothing.
        Frankie1965
      • UEFI/Linux compatibility not Microsoft's problem

        Microsoft dictates that Windows 8 certification requires UEFI with secure boot enabled. They set up a Certificate Authority to provide keys, and allow other software vendors to submit keys - saving the other vendors from having to make their own CA to submit certificates to manufacturers. How the manufacturers choose to implement UEFI, and Secure Boot in particular, is up to the manufacturers. The Linux community's general failure to create and distribute keys is not Microsoft's problem. Canonical has chosen to use Microsoft's CA to host Secure Boot keys rather than creating their own.

        Microsoft has dictated that devices running Windows on ARM devices have secure boot locked. Meanwhile, I'm having no luck at all finding a tutorial on installing Linux on an iPad Air, or finding blogs by Linux trolls whining about it. Is hardware supposed to be OS agnostic only if it is capable of running Windows?

        jesse, you might want to check out this article on the UEFI.org website, it should help clear up several of your posted misconceptions regarding UEFI:
        http://www.uefi.org/sites/default/files/resources/UEFI_Secure_Boot_in_Modern_Computer_Security_Solutions_2013.pdf
        john-whorfin
    • Except most people only install one

      Very few people install multiple distros. Some do and hit these problems, but most just install and use one. It would be impossible to find a true statistic, but I would think most long term Linux users would also just have Linux and remove Windows. All my desktops are home built, use UEFI and have just Debian installed and are never a problem. Notebook computers are different as they mostly come with Windows whether you want it or not. With my last machine I simply removed the HDD and installed an SSD, running Debian, and kept the HDD so I could sell the notebook later on with Windows installed. Of course warranty is an issue if you go down that path. A notebook booting Windows and multiple distros would account for 1% of the 1%. Thank you Jamie for investigating a solution, if I ever need it I will know where to start.
      Aysgarth
      • Except most people only install Windows

        Very few people install ANY linux distros. A notebook booting Windows and ANY distros would account for 1% of the 1%.
        john-whorfin
        • No normal users install Windows

          Hi :)
          It's extremely rare to find any Windows user who has ever installed Windows. From my own observations i would put the figure waaay under 1%.

          It's even difficult to find Windows users who have ever installed just a program, and most are nervous about even doing updates.

          The problem is that all those things are so difficult in Windows. Updates have often broken things and at best means rebooting and waiting. It's only the OS and a couple of other programs that get updates anyway leaving drivers, 3rd party programs and everything all as quite old versions with potential known security issues.

          Installing Windows itself means having to install tons of other programs before the system is usable and running tons of updates and many reboots.

          Almost all Windows users only use Windows because that was what the machine already had on it when bought. When they buy a machine with something else on it (for example a Chromebook or Android device) they generally don't rush to install Windows!
          Regards from
          Tom :)
          Tom6
      • swapping out the hard-drive is smart

        Hi :)
        I think many Gnu&Linux users either swap out the hard-drives as Aysgarth does or else just re-size Windows down as small as they feel comfortable. Not so many get rid of Windows completely because it makes returning the device tricky if there were hardware issues or anything.

        I generally advise people to keep the Windows even if they never boot it and set the machine to automatically boot into Gnu&Linux all the time.
        Regards from
        Tom :)
        Tom6
    • DistroWatch is a good place to find about distros

      Ideas that work well in one distro often ripple out to many others.

      Choice and diversity is not such a huge problem as you might imagine. It leads to interesting bouts of serendipity. If everyone all thought or worked in the same way all the time then how would anything new ever get invented or apparently intractable problems (such as the gordion knot) ever get solved. Sometimes it takes a different perspective to solve an old problem.

      Then watch that ripple out too.

      Just as it's fairly easy to install the same program in many versions of Windows it's also easy to install the same program in many different versions of Gnu&Linux. That extends further since so much of Gnu&Linux is so modular. Use the same module in a different flavour of Gnu&Linux and get the same abilities.

      There are around 700 distros. Many have specific niches, such as being for routers, or servers, or satellites, or marker-bouys, or other embedded devices or are for specific languages or countries or specialisation (many are specialist fix-Windows tools).

      It's difficult to say which is best because uses and hardware vary so much. What might be best for a Russian cosmonaught using a laptop might not suit a school-kid looking for games for a desktop.

      If you really want to find out more about distros try this site;
      http://distrowatch.com

      Regards from
      Tom :)
      Tom6
  • UEFI needs a boot *manager* not just boot loaders

    Jamie, you need a UEFI boot manager; don't rely simply on UEFI boot loaders. (As suggested by the name, a boot manager finds all the boot loaders on your system --UEFI- & MBR-based-- and presents them, along with utilities, diagnostics, and maybe an EFI shell app, as boot options. It includes the expected defaults & time-outs, etc.)

    I'm using 'rEFInd' as my boot manager, and can recommend it. It's simple, straightforward, easy to set up, and it works well. I've got a triple-boot system using it, that boots Windows 7 out of an MBR disk, Ubuntu from a GPT disk, and Red Hat from the same GPT disk. (I also verified that it will boot a second Windows 7 install on the GPT disk, too.)

    The 'rEFInd' boot manager was written by Roderick Smith, a UEFI guru who's done our homework for us, and publishes a well-written series of web pages that explains pretty much everything about EFI, UEFI, booting, multi-booting, all the popular loaders, managers, etc.

    Try these links:
    http://rodsbooks.com/efi-bootloaders/index.html
    http://www.rodsbooks.com/refind/
    Brainstorms
    • rEFInd is really excellent

      Thanks for pointing this out, I completely agree with you about rEFInd. Here is the post I wrote about it almost year ago: http://www.zdnet.com/the-refind-boot-loader-for-uefi-systems-7000010275/

      Thanks for reading and commenting!

      jw
      j.a.watson1
      • So you did!

        Hadn't caught that one... :^)

        So, are you using it / does it not solve the bootloader issues you mentioned?

        (Moving your '/boot' directory into the EFI System Partition is another solution some use. I'm using stub loading, which works great.)
        Brainstorms
        • Use on some but not all

          I use rEFInd on a few of my systems, but not many. This is part practicality and part laziness. I found that I can configure the openSuSE grub2-efi sufficiently for my purposes to multi-boot both EFI and Legacy Boot installations. Each time I make a new and different installation I have to customize rEFInd anyway, or I have to customize grub, so I simply choose to deal with grub, because I am used to it.

          jw
          j.a.watson1
  • Thank You

    A very engaging topic with this new 'beast' (EUFI).

    Please give us some regular updates on this as you progress.

    ( Hang in there)
    Leo Regulus
    • Agreed

      Thanks for the kind words, I will update this subject from time to time. Perhaps I will work up the combination of courage and money to pick up another UEFI system from a different manufacturer, that would be quite interesting. It seems very clear to me at this point that what is by far the most important is the differences in implementation of UEFI between suppliers.

      Thanks for reading and commenting.

      jw
      j.a.watson1
  • boot partition

    This may be a silly question.
    I have a standard win 8.1 installation, with resized disk space.
    I'm trying to install fedora 20, that is the only live linux that seems to work fine on my device, on the remaining disk space.
    In the installation procedure fedora ask for a /boot partition and I'm unable to use the windows /boot partition. If I create another /boot partition, will both OS be bootable or there are going to be some conflict?
    Thanks in advance
    Francesco
    fra_ita