When Microsoft announced that they are going to use UEFI and secure boot by default, the Linux community thought Microsoft is going to crush them by making it difficult to dual-boot in Windows 8 pre-installed machines. Then, some popular distributions like Fedora and Ubuntu accepted Microsoft’s move and said its good for security. They also came up with their own solutions to use Linux with UEFI.
Last year, Microsoft released Windows 8 and vendors started to ship new Desktop and Notebook models with Windows 8 and UEFI. Did we managed to install Linux on these machines without any problems? Did we managed to tie Linux with UEFI? No! In some machines, even creating partitions will make them un-bootable. Some machines won’t even switch on if you install Linux. I also faced a lot of issues when I bought an HP machine with Windows 8 and tried to install Linux on it! Whats going on? Secure Boot will make it hard to boot a third-party OS. But according to the book, disabling Secure Boot should allow us to install Linux. But why didn’t it work? Is it a problem with UEFI? Is it a problem with Microsoft? Is it a problem with the vendors?
First of all, lets learn a bit about UEFI before pairing Linux with UEFI :
Some people think that UEFI is a new addition to BIOS or a new version of BIOS. But the truth is, UEFI is not BIOS and BIOS is not UEFI. BIOS will make your PC ready to boot the OS. BIOS have about 1024 KB of space and it can’t initialize all your devices and ports. It also can’t read your filesystem. What it does is, initialize some of your hardware and execute the boot code located in the first 440 bytes in your hard drive.
UEFI is a replacement for the BIOS system. It can read and understand your partitions and the file-system The BIOS will blindly execute the first bytes of the hard drive. But UEFI will load the boot programs from the data stored in a special FAT32 partition known as the EFI SYSTEM PARTITION. In a BIOS system, if we install Linux over Windows, it will overwrite Windows boot data and write its own data. But in the UEFI system, each OS can store their boot data in a separate folder in the EFI partition. Now no one will rewrite other operating system’s boot data. You can even choose what OS to load from the UEFI system (Some still call it the BIOS) just like we choose what device to boot (CD or Hard Drive) from the BIOS.
To learn more about UEFI check this article from ArchWiki.
What is Secure Boot?
Image Source : Adrian Ulrich
Secure boot is a mechanism where the UEFI firmware will check whether the boot loader is signed with a key stored in its database. According to what we understood, only OEMs can add keys to this database. So for Linux, it will be difficult to force the OEMs to add the Linux keys to pair Linux with UEFI. Ubuntu and Fedora have come up with their own methods to deal with this issue but sometimes they won’t work. The Spanish free software development group Hispalinux have already filed a case against Microsoft in the European Commission stating that the Secure Boot is ”obstructive” and anti-competitive. But, if you want to use Linux with UEFI, you can always disable the Secure Boot feature. Pairing Linux with UEFI is possible but pairing with Secure Boot is a lot difficult!
If UEFI is built to make dual booting more easier and if we can disable secure boot, why can’t we pair Linux with UEFI?
What I think is that the problem is with the OEMs. HP implement UEFI in a different way, Asus does it in another way and Samsung also use a different technique. There’s no standard mechanism to implement the UEFI firmware. In HP, you won’t be able to recover your system if you install Linux. You have to send it to HP in-order to fix things. But they also took nearly a month to figure out how to fix my old laptop. That’s right… I bought an HP Windows 8 notebook on December and gave it back! In some Asus machines, you won’t be able to boot into Windows if you partition them. Some Samsung machines will completely die if you install Linux on them.
According to ZDnet’s latest experiments, HP seems to be favoring Windows 8 even if Linux is at the top of the boot list! I don’t think there’s anything wrong with UEFI. It’s a good thing. But the problem is with secure boot and in the way vendors implement UEFI!
So, if I need to dual-boot Windows 8 and Linux, what is the best Notebook to buy?
Earlier, if you need to dual-boot with Windows, you will pick a Windows pre-installed notebook and install Linux on it. Everything will work fine. But now you can’t do this. You have to pair Linux with UEFI ! Because some vendors favor Windows, you need to buy a notebook without any OS. They are cheaper so you can buy Windows 8 separately from the money you save.
Next, do not go for HP! They have a completely messed up way of dealing with UEFI. I had enough of them. Even their technicians don’t know how to deal with UEFI. So, better stay away from them. Go for a much respected brand like Asus, Lenovo and Dell.
You also need to check whether you can manually disable secure boot. If that feature is not implemented on your machine, then its much better.
As an insurance policy, remember to ask from the salesperson whether you can install Linux with UEFI on the machine. If he say yes, then buy it. If something goes wrong, you can return the machine because you have asked it before buying! I did it and it worked!
As a summary :
Do not buy a Windows 8 pre-installed machine. Always go for a machine with DOS. Buy Windows 8 separately.
Stay away from HP because they don’t know what they are doing.
Check whether you can disable secure boot.
Ask whether you can install Linux alongside Windows 8 from the salesperson.
If you are wise enough, you will be able to get a good notebook which will allow you to pair Linux with UEFI! Some of you might need to follow some steps in order to dual-boot in your new machine. Stay with us and we’ll tell you how to do this in our next post!