[GTALUG] Swapping ThinkPad drive
D. Hugh Redelmeier
hugh at mimosa.com
Thu Nov 25 11:25:00 EST 2021
| From: William Park via talk <talk at gtalug.org>
| Personally, I don't like UEFI.
I mostly like UEFI.
+ UEFI is less hacky than BIOS
+ UEFI knows it is running on a 32 or 64-bit system; BIOS thinks it is
running on an 8088
+ UEFI can be called from a modern OS; BIOS can only be called by 8088
code that doesn't use interrupts for I/O.
- UEFI supports only one architecture on x86: 32-bit or 64-bit, even
though modern processors can do both
+ BIOS is too simplistic but UEFI is too complicated.
- old-timers kind of understood BIOS well enought to live with it
(but try explaining the oddities to newbies!)
- old-timers have to start over with UEFI. But they/we have had plenty of
time to make our peace with it.
+ UEFI makes dual-booting work better. Usually.
- there is plenty of room for vendors to make awkwared UEFI firmware
| If you change motherboard, you can't boot.
| Personal experience!
That should be easy to fix. But it involves new skills.
Why would the system not boot?
My best guess at what you experienced is that the UEFI firmware didn't
know the path the the .efi file to boot.
The firmware setup screen should let you specify the path. But some
firmware is pretty bad at that. In desperation, you can take matters
into your own hands.
The path lives in non-volatile memory. If you cannot get the firmware to
set it to what you want, you can boot a live Linux USB stick and use the
tool efibootmgr(8).
Here's an example from my system. This is a summary that doesn't show
important details.
[hugh at redeye ~]$ sudo efibootmgr
BootCurrent: 0000
Timeout: 0 seconds
BootOrder: 0000,0003,0001,0002,0005,0006,0007,0008,0009
Boot0000* Fedora
Boot0001* USB Floppy/CD
Boot0002* USB Hard Drive
Boot0003* Windows Boot Manager
Boot0005* ATAPI CD-ROM Drive
Boot0006* CD/DVD Drive
Boot0007* USB Floppy/CD
Boot0008* Hard Drive
Boot0009* Realtek PXE B03 D00
BootOrder is a variable that lists the sequence of entries to try.
The first is "0000" meaning Boot000, which is Fedora.
The whole fedora entry looks like this:
Boot0000* Fedora HD(2,GPT,f66e4ede-1301-47fd-af96-7f45aee7bc28,0x40800,0xb4000)/File(\EFI\fedora\shimx64.efi)
I read that as:
The entry variable is called Boot000.
The * means that it is bootable.
The entry label (for human purposes) is called Fedora.
The path is on the second hard drive [I think that's what 2 means]
which is GUID-paritioned
and the ESP (EFI Sytem Partition) has a UUID of
f66e4ede-1301-47fd-af96-7f45aee7bc28.
There are a couple of hex numbers that I don't understand.
The file's path within the ESP is EFI\fedora\shimx64.efi
Trivia: Windows entries include some parts in UTF16. What a pain!
More information about the talk
mailing list