A regular BIOS update turned into a pain in the a**

Just found out that my 3-year-old Intel NUC8 has got a new BIOS release 0090 recently. I downloaded and upgraded it without think twice (which is going to waste some of my time later.)

I have two OS installed and dual boot configured on the hard drive. Windows 10 alongside with Ubuntu Desktop. By default, it will boot into GRUB menu by default, where I can choose whether or not to boot into Windows.

I have done BIOS update for this NUC several times before. But this time, after the new BIOS update, the machine boot directly into Windows without showing the GRUB menu. I tried to hit F10 on-boot to bring up the Boot selection menu to choose another EFI boot-loader — but something weird is: There is only one “Windows Boot Manager” up there, the “ubuntu” boot entry is missing.

Which I have noticed also is the BIOS settings turned into default values after the update. And the Ubuntu boot-loader is missing under the BIOS’s Boot settings. It doesn’t make any sense — I can’t remember there was something happen like this before after BIOS update.

So, trying to figure out what is wrong here. 😒

I tried to change Boot options, enable/disable secure boot option in BIOS, still not working. The “ubuntu” entry is not there.

I even used a live Linux disc to re-install the Ubuntu boot-loader. (The old one is still laid there on the ESP partition, but I still reinstalled the GRUB EFI boot-loader, in case the presented EFI boot-loader file is corrupted.)

But no luck. 🤬

The EFI boot files and directory for Ubuntu are on the ESP partition, it is just like the BIOS is actively ignoring its presence.

🔎 After doing some research, I found that by using “efibootmgr” command in Linux, I can see these two boot-loaders are all here. The output is like the following. The “BootOrder” explains the unusual behavior of the BIOS — because the shinning “Windows Boot Manager (Boot0000)” is on the top of the boot order list, and the humble “ubuntu (Boot0001)” is the last one. This means without further instruction; the machine is going to boot directly into Windows every time. Looks like the BIOS follows the EFI boot order settings, and only takes the first boot entry in to account no matter how many are there.

BootCurrent: 0006
Timeout: 1 seconds
BootOrder: 0000,0002,0004,0006,0001
Boot0000* Windows Boot Manager
Boot0001* ubuntu
Boot0002* SATA: PORT 2 SSD : PART 0 : BOOT DRIVE
Boot0004* NVME SSD : PART 0 : BOOT DRIVE
Boot0006* UEFI USB DISK

So, the solution to this problem is kind of simple: use efibootmgr command to change the boot order make sure the one you want to use goes to the first on the list.

efibootmgr -o 0001,0000,0004,0002

Reboot, problem solved. Now it shows the GRUB boot menu like before. But still in the BIOS settings only shows the first “ubuntu” boot item, this time the “Windows Boot Manager” is missing.

Looks like the BIOS is too **clever** — to avoid waste user’s precious time on choose / re-order boot entries, it just “decided” to make the decision for you. 😎

This recalls the old days when I deal with some old thin-client which BIOS came with very limited options and without boot device selection. In some cases, the thin-client machine supports boot from USB drive, but only can use the first one detected during boot-up. Sometimes the system is installed on a USB thumb drive. If the system is broken and need to be re-installed, and the installation media is usually a thumb drive or USB optical drive. If connected both drives to the thin-client and power it on, it would boot directly into the broken system didn’t give you any chance to choose to boot from another one. Only I can do by that time was unplug the USB system drive — boot from the USB installation media — then re-connect the system drive to begin the re-installation process. 🤣

💡Conclusion — I have to say it is like a bug (or a feature) of the BIOS? But to me, this limitation doesn’t make any sense. Just waste of time. 😐 Maybe next time they could just not think too much for their end users. 🧐

📝

Leave a Reply

Your email address will not be published. Required fields are marked *