I've talked often about what I'm doing here, but since I'm on a rant I want to document the entire picture and may repeat things you already know about my adventures in the world of Linux.
Several years ago I was purely a Windows man. Since I dealt with Linux-type machines for a living, I had no real need to get involved with alternatives on my own time. But, circumstances changed and I do have a curious mind after all. l jumped into the Linux pool to see what I could see. Ubuntu caught my eye because it had some visual similarities to Windows so that the learning curve might not be as steep. Over the past decade or so I've looked into many versions of Ubuntu based software but also have some Debian, Fedora, and Open SUSE experience as well. I never did a deep dive into any of them and was more interested in seeing the differences and learning some of the basic techniques of installation. I was a system admin for many years so this was a natural path for me to take.
Currently I have a desktop, a laptop, and a mobile (phone) computer. The mobile is in a class of it's own and I have not experimented with it's innards yet. I may just leave well enough alone into the foreseeable future. The desktop is the one I built from scratch with Windows 7 as it's default OS - that could change come January 14 when it's end of support from Microsoft arrives. I took the advice of my elders and kept Windows isolated on it's own disk. This was to avoid any boot management problems. There are two other HDD's in the tower: one is purely for data storage, and the other has multiple partitions to accommodate at least three versions of Linux. The boot manager for Linux, Grub, is on a different hard drive than is the one for Windows. Thus I have to query BIOS when I want to boot into something other than Windows 7.
Setting up all this separation was quite an accomplishment given that I never did anything like it in the past. It was always one OS and simple to maintain. The greatest challenge was setting up the multiple boot for all my Linux instances. Once I figured out how to keep Grub out of the Windows hard drive, the task became easy. Grub kind of configures itself if you give it the chance.
The original laptop, a Toshiba Satellite, had a single hard drive wherein I had no choice but to co-mingle Windows and Linux if I wanted multiple boot capability. I had to make a concession and allow greedy Grub to manage the whole scheme because it did not play well with the Windows boot management software. Fortunately, I was able to give Windows top priority so that I didn't have to touch the laptop at all in order to boot into Windows. If I wanted one of the other two Linux OS's, I'd have to select which one from the menu shown at power-up time.
That wasn't enough. LOL I discovered that in addition to multi-boot configurations one can also run an OS from a removable hard drive, a flash drive. This involved making the USB drive independently bootable so that it can be put into virtually any machine and will boot if the BIOS will recognize the USB drive in the first place. Every computer I could get my hands on did have this ability so that I was a happy camper being able to multi-boot my desktop, laptop, and use removable media to boot. (yes, that was a pun)
Somewhere along the timeline I spent learning how to do all these things, the industry standard for disk partitions changed as did the firmware for booting up a system. BIOS, the legacy boot firmware, was replaced by EFI. BIOS and MBR's were made obsolete for some very good reasons. They were replaced by the GPT partitioning scheme and a required ESP partition that allows for UEFI booting. Microsoft and Intel were the instigators for this change and thus worked hand in hand creating the implementation. While there were numerous conspiracy theories afloat, there actually was a need to replace BIOS with something more flexible and secure. GPT and UEFI does that.
The problem with all changes of this magnitude is getting people to make the transition. Some welcomed it with open arms and others rejected it altogether. Thus there is a compatibility mode attached to UEFI which allows old legacy BIOS systems to use the new UEFI boot protocol. The other problem with changes of this magnitude is that it's damned near impossible to make the two systems totally compatible. They work using different assumptions which seem to be mutually exclusive. It's a feather in the cap of the powers that be to get these two boot schemes to hold hands at all. Ultimately, it is possible for them to work together.
Linux, not being on the original invitation list, was slow to adopt UEFI. In fact they are still trying to get it down to simple terms in many respects. And that is where my rant comes into play.
Like many other people who ever get involved with the booting methods of a computer, I ignored pure UEFI and simply ran with the compatibility mode. It looked like BIOS, it smelled like BIOS, it felt like BIOS, so dammit, it must be BIOS. I don't have security issues here so I never bothered to learn much about UEFI or GPT partitions. Didn't have to since my fake BIOS worked just fine. But then my Toshiba laptop died. Ironically, it seems as if the BIOS became corrupt and could not be repaired. A new MSI gaming laptop was procured to take the place of the former Toshiba. The MSI laptop, however, came with Windows Home edition installed and configured for secure booting via UEFI. The hard drive is formatted appropriately with five, yes FIVE, separate partitions to make booting up Windows safe and secure. To be fair only two of them are absolutely necessary, and I intended to change all that by replacing the HHD with a new SSD (and double the RAM wlhile I'm at it). The strategy I had in mind was to format the SSD using my tower and then swap it out with the one built into the new MSI laptop. Simple, eh?
Before I attempted to destroy, errr format, the new SSD, I wanted to have some experience with UEFI and GPT before I voided any warranty on the laptop. So, I chose to do what I've done a million times before, i.e. create a flash drive that would prove the concept of UEFI booting. Since I don't have any spare copies of Windows, it was reasonable for me to select a free and open source operating system such as Ubuntu on which to experiment. If I could get the USB stick to work correctly, then it would be simple swapping out the internal hard drive with an SSD. Plug and play. Voila
The first pass at creating a bootable Ubuntu flash drive went normally. I plugged it into the MSI and it ignored what I was trying to do and went directly to Windows. That same USB drive booted fine on my BIOS desktop. Some research was in order after which I learned that you can do one or the other, but not both. GPT does not recognize BIOS nor does BIOS and it's necessary MBR have any function in the GPT world. Thus I was forced to decide what I want on that new MSI lappie. I decided to go full UEFI and learned how to create a properly formatted GPT flash drive suitable for booting in a UEFI system. It involves creating three partitions on the target drive. The first partition must be FAT format and around 300MB in size. This is necessary because that is the partition in which the bootloader(s) are placed and EFI doesn't recognize anything but FAT. Very modern of them, I must say. After that comes a Linux swap partition, and then a partition in the file system of your choice (ext4 is my choice) in which to install the actual Linux software.
This process of creating a portable boot stick for UEFI already had become a pain compared to the old BIOS method, but it is only one of many pains to follow. I looked into a few forums, including the official Ubuntu one, to learn exactly what was needed to create a bootable USB Linux drive for the UEFI environment. Regardless of how many "expert" opinions I read, they all said pretty much the same thing. I did what they told me, but that USB Ubuntu stick would not boot, nor even be recognized.
- There is an interesting caveat I can mention at this time. Somewhere along the line the Ubuntu installation software wrote a copy of GRUB to the Windows ESP partition. So, now, instead of GRUB taking over the whole boot process as it does with BIOS and MBR's, it sits side by side with the Windows boot manager. Apparently that was the intent of creating an ESP partition in the first place. You, Microsoft, an OEM, or anybody, could put whatever they like in the boot partition. I discovered this co-residence only after I looked into my BIOS settings and had a choice of what to prioritize as far as boot loaders. It was either GRUB or Microsoft. I switched it to GRUB and sure enough, the next boot gave me a GRUB shell screen. It did that because that version of GRUB had no idea where the hell the Linux OS was located. I tried figuring out how the GRUB shell works, but after wasting a whole day on it I decided it's not possible to boot Linux from the GRUB shell. Well, that's not entirely true, but it involves a list of command lines a mile long. And then, all I would be able to do is boot Linux from that one stick. Windows would not be a choice. I switched back to the Windows bootloader to continue my adventure.
I want you to look at this article. https://www.dionysopoulos.me/portable-u ... n-usb-hdd/ I don't expect you to read it all, nor do I expect you to understand what is being discussed if you choose to read it. But you can look at it and clearly see how freaking complicated it is, how many obscure steps it takes, to make a portable USB stick that boots into UEFI. It's absolutely insane. The problem is LINUX related, not a specific one related to Ubuntu. Making GRUB work in UEFI is a nightmare. Well, ok. I'll qualify that and say it's it nightmare to make it work on a removable USB drive. It works quite well stand alone. If I want to dump Windows I can replace it with the simple three partitions I mentioned earlier and be done. Linux will boot every time when there is no other operating system involved. So, technically Linux can indeed boot into a secure UEFI environment. But if you want choices, forget it. Wait til next century when somebody over at Canonical has time to come up with a sensible solution.
I paid for that copy of Windows Pro which is now installed in the MSI computer. I have absolutely no regrets about it. It is safe, secure, and boots lightning quick. And ... they made sure no other operating system is going to hijack that Windows installation. As I see it now, the only way to run Linux trouble free is to buy yet another computer where it can do it's thing stand alone. Just like Windows. But do I REALLY want to?