long war story: growing the ESP (/boot/efi)

== why you might wish to grow the ESP == In a UEFI system, booting starts with the ESP (EFI System Partition). Apparently Windows creates a 100M ESP during a fresh install. 100M isn't enough sometimes. On my notebook, Linux's firmware update mechanism, when updating the UEFI firmware ("BIOS" is a misnomer), stages gobs of stuff in /boot/efi. My ESP filled up and updates stopped. (The ESP was mostly filled up with Dell / Windows stuff, but the firmware update pushed it over the edge.) == growing ESP partition with gparted == This should be done from a bootable live Linux system. It isn't wise to move partitions while they are in use. gparted can grow a partition by shuffling all the other partitions. It needs free space, either from unallocated disk space or from shrinking other partitions. After it had made my ESP larger, it refused to resize the (FAT) filesystem inside the partition. == growing the ESP FAT filesystem == gparted? no luck (see above). === fatresize == no luck: it claims that the ESP's partition isn't FAT. It is wrong. What was it thinking? I hacked on it to cough up more information in the diagnostic. For some reason, fatresize thinks that the FS is NTFS. See my fork of fatresize, if you care: https://github.com/HughR/fatresize === brute force === [this can actually be done while running off the disk. You do need to unmount the ESP after step 2] 1) copy all of /boot/efi to a different filesystem 1a) see later, but do this now. 2) use gparted to make a new FAT32 filesystem in the partition (it will naturally use the whole space) 3) copy the backup back into /boot/efi OOPS: fedora won't boot properly because the filesystem's UUID has changed. It is used (at least) in /etc/fstab for /boot/efi. A partition has a UUID and a filesystem within a partition has a UUID. It is the filesystem's UUID that matters. FAT filesystems don't have a UUID but they have something that is a bit like one: the "serial number". That's what Linux considers to be the filesystem's UUID. Each FAT filesystem has a likely-unique serial number. It is 8 hex digits, sometimes shown with a "-" between the fourth and fifth characters. It is generated randomly by the file-system formatter. We need to get the new VFAT FS's serial number to be the same as the old ones. 1a) note the old FS's UUID. You can glean it from the UUID field of the /etc/fstab entry for the ESP. Or you can figure it out from the gnome "disks" program (before you blow away the old FS). 4) fix up the serial number using mtools mlabel command. Note the serial must not have "-" in it. From <https://superuser.com/questions/1247972/how-to-change-vfat-partition-uuid> sudo mlabel -i /dev/sda???? -N 12345678 where ???? gets you the correct ESP partition and 12345678 is the desired UUID / serial number. If you use mtools to create the FAT filesystem, you can probably specify the serial number and not have to go back to fix it up.

On Wed, Jul 7, 2021 at 5:52 PM D. Hugh Redelmeier via talk <talk@gtalug.org> wrote:
== why you might wish to grow the ESP ==
In a UEFI system, booting starts with the ESP (EFI System Partition).
Apparently Windows creates a 100M ESP during a fresh install.
Thank you for your post!! Does this also happen if there is no Win quotient in the partition? TIA

| From: o1bigtenor via talk <talk@gtalug.org> | On Wed, Jul 7, 2021 at 5:52 PM D. Hugh Redelmeier via talk | <talk@gtalug.org> wrote: | > | > == why you might wish to grow the ESP == | > | > In a UEFI system, booting starts with the ESP (EFI System Partition). | > | > Apparently Windows creates a 100M ESP during a fresh install. | Does this also happen if there is no Win quotient in the partition? If you are asking: how much does Windows add to the requirement for space? I don't know. Also: each manufacturer may decidedd to put more or less diagnostic software in the ESP too. If you are asking: how big an ESP would a Linux installation create? I don't know. The installers I use give a suggestion but let me override. What's a good size for an ESP? My current guess is that 200M is plenty and isn't too wasteful given how large disks are these days. On my XPS 15 notebook (the one that prompted the adventure): Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 200623 95057 105566 48% /boot/efi (More was used during the firmware update.) On my desktop SSD: Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb2 364544 65436 299108 18% /boot/efi (The last firmware update was in 2014.) Blue sky uses of ESP: I imagine, if you want a lean installation, you could eliminate grub and boot a linux kernel directly from UEFI. - the kernel and initramdisk files would have to live in the ESP - the kernel wuld have to be in .efi form I'd love to get rid of a whole layer of software from the booting process. What does grub2 do for us? - select what to boot (but most UEFI software lets you do that too) - place the OS on filesystems/partitions other than the ESP - fiddle about when things go wrong. Especially when that thing is grub

On 7/8/21 12:55 PM, D. Hugh Redelmeier via talk wrote:
| From: o1bigtenor via talk <talk@gtalug.org>
| On Wed, Jul 7, 2021 at 5:52 PM D. Hugh Redelmeier via talk | <talk@gtalug.org> wrote: | > | > == why you might wish to grow the ESP == | > | > In a UEFI system, booting starts with the ESP (EFI System Partition). | > | > Apparently Windows creates a 100M ESP during a fresh install.
| Does this also happen if there is no Win quotient in the partition?
If you are asking: how much does Windows add to the requirement for space? I don't know. Also: each manufacturer may decidedd to put more or less diagnostic software in the ESP too.
If you are asking: how big an ESP would a Linux installation create? I don't know. The installers I use give a suggestion but let me override.
What's a good size for an ESP? My current guess is that 200M is plenty and isn't too wasteful given how large disks are these days.
On my XPS 15 notebook (the one that prompted the adventure): Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda2 200623 95057 105566 48% /boot/efi (More was used during the firmware update.)
On my desktop SSD: Filesystem 1K-blocks Used Available Use% Mounted on /dev/sdb2 364544 65436 299108 18% /boot/efi (The last firmware update was in 2014.)
Blue sky uses of ESP:
I imagine, if you want a lean installation, you could eliminate grub and boot a linux kernel directly from UEFI.
- the kernel and initramdisk files would have to live in the ESP
- the kernel wuld have to be in .efi form
I'd love to get rid of a whole layer of software from the booting process. What does grub2 do for us? Hugh, Have you looked at: https://wiki.archlinux.org/title/EFISTUB
Not sure of how much use it is for you. Not for me currently but may be of interest. Cheers, Nick
- select what to boot (but most UEFI software lets you do that too)
- place the OS on filesystems/partitions other than the ESP
- fiddle about when things go wrong. Especially when that thing is grub --- Post to this mailing list talk@gtalug.org Unsubscribe from this mailing list https://gtalug.org/mailman/listinfo/talk

On Thu, Jul 08, 2021 at 03:24:29PM -0400, Nicholas Krause via talk wrote:
Have you looked at: https://wiki.archlinux.org/title/EFISTUB
Not sure of how much use it is for you. Not for me currently but may be of interest.
Using grub is way more flexible. Having only one bootable kernel is not convinient which is what you essentially have if you make a UEFI boot entry pointing at a kernel directly. Sure if your system has a UEFI shell (most desktop and laptop machines seem allergic to that concept) then you could certainly boot such a kernel by picking the one you want, although you would have to then enter all the arguments for the kernel manually which is a hassle. I can't really see an actual use case for the EFISTUB. -- Len Sorensen

| From: Lennart Sorensen via talk <talk@gtalug.org> | Using grub is way more flexible. I sometimes find it convenient to edit the kernel parameters. grub allows this and UEFI firmware usually does not. What else do you lose? | Having only one bootable kernel is | not convinient which is what you essentially have if you make a UEFI | boot entry pointing at a kernel directly. I readily admit that too many UEFI implementations make it awkward to choose what to boot. But the UEFI standard seems to support multiple kernels in the same ESP. (At least some ThinkCentre firmware is bad in this repsect; XPS 15 firmware is good.) efibootmgr seems to support setting this up (it might not be the best tool). Here's what this machine's entry for fedora looks like. It's got enough stuff that you could create a distinct entry for each kernel of interest. Boot0000* Fedora HD(2,GPT,f66e4ede-1301-47fd-af96-7f45aee7bc28,0x40800,0xb4000)/File(\EFI\fedora\shimx64.efi) | Sure if your system has a UEFI shell (most desktop and laptop machines | seem allergic to that concept) Apparently Microsoft dictated that if you wish to be considered Windows-ready, you must not ship with the UEFI shell. You can build one -- the source is available. But I haven't ever done so.

On Fri, Jul 09, 2021 at 03:40:19PM -0400, D. Hugh Redelmeier via talk wrote:
I readily admit that too many UEFI implementations make it awkward to choose what to boot. But the UEFI standard seems to support multiple kernels in the same ESP. (At least some ThinkCentre firmware is bad in this repsect; XPS 15 firmware is good.)
efibootmgr seems to support setting this up (it might not be the best tool). Here's what this machine's entry for fedora looks like. It's got enough stuff that you could create a distinct entry for each kernel of interest.
Boot0000* Fedora HD(2,GPT,f66e4ede-1301-47fd-af96-7f45aee7bc28,0x40800,0xb4000)/File(\EFI\fedora\shimx64.efi)
I seem to recall reading that certain implementations of UEFI would die if you wrote to the nvram too many times. Updating boot entries in UEFI each time you upgrade the kernel might be a bad idea in that case.
Apparently Microsoft dictated that if you wish to be considered Windows-ready, you must not ship with the UEFI shell.
Yes amazingly stupid to mandate one of the most convinient repair tools isn't allowed on the system.
You can build one -- the source is available. But I haven't ever done so.
-- Len Sorensen

| From: Lennart Sorensen via talk <talk@gtalug.org> | I seem to recall reading that certain implementations of UEFI would die | if you wrote to the nvram too many times. Updating boot entries in UEFI | each time you upgrade the kernel might be a bad idea in that case. Really? That's terrible. I often update UEFI settings. Do you have a source for this? (Updating Windows, without making it the default boot, is really annoying.) | > Apparently Microsoft dictated that if you wish to be considered | > Windows-ready, you must not ship with the UEFI shell. | | Yes amazingly stupid to mandate one of the most convinient repair tools | isn't allowed on the system. What do you find it useful for? I've not really missed it. When things get sticky, I boot Linux from a USB stick. Where do you get a .efi for the UEFI shell? Some place that you trust. (Building it myself seems like too much effort.) An unexplored niche: an enhanced UEFI shell. (The only time I considered programming for the EFI environment was when I found a couple of cheap Win 10 devices with too small eMMC. There was no room for Linux without ditching Windows. They could not boot from the SD card interface. With a .efi SD driver, grub would be able to boot off the SD card.)

On Sat, Jul 10, 2021 at 10:21:07AM -0400, D. Hugh Redelmeier via talk wrote:
Really? That's terrible. I often update UEFI settings.
Do you have a source for this?
I can't find any. There was a bug that made NVRAM read only on some systems in 2017 (that was in ubuntu 17.10), but nothing else I can find. I can find some comments about trying to reduce the writes to NVRAM to avoid wear, but nothing specific I can find that actually says people have had NVRAM actually wear out. It would have been some years ago.
(Updating Windows, without making it the default boot, is really annoying.)
Hmm, I seem to recall newer windows versions have been better behaved than they used to be.
What do you find it useful for? I've not really missed it. When things get sticky, I boot Linux from a USB stick.
Well being able to just go in an launch grub or something can be handy. Also firmware update tools for some network cards can be run from UEFI which avoids needing to install special drivers or windows.
Where do you get a .efi for the UEFI shell? Some place that you trust. (Building it myself seems like too much effort.)
An unexplored niche: an enhanced UEFI shell.
I have only ever used the built in one on servers and some embedded systems.
(The only time I considered programming for the EFI environment was when I found a couple of cheap Win 10 devices with too small eMMC. There was no room for Linux without ditching Windows. They could not boot from the SD card interface. With a .efi SD driver, grub would be able to boot off the SD card.)
-- Len Sorensen

On 2021-07-13 8:11 p.m., Lennart Sorensen via talk wrote:
On Sat, Jul 10, 2021 at 10:21:07AM -0400, D. Hugh Redelmeier via talk wrote:
Really? That's terrible. I often update UEFI settings.
Do you have a source for this? I can't find any. There was a bug that made NVRAM read only on some systems in 2017 (that was in ubuntu 17.10), but nothing else I can find. I can find some comments about trying to reduce the writes to NVRAM to avoid wear, but nothing specific I can find that actually says people have had NVRAM actually wear out. It would have been some years ago.
Years ago I worked on an avionics project where we were storing data in an NVRAM. We had to write code to manage the wear-out in the cells and if I remember correctly the wear-out was in the hundreds of thousands to millions of writes before problems would occur. I could not see normal usage causing wear-out unless someone were to have some kind of bug causing a high write rate. -- Alvin Starr || land: (647)478-6285 Netvel Inc. || Cell: (416)806-0133 alvin@netvel.net ||

On Wed, Jul 14, 2021 at 09:49:30AM -0400, Alvin Starr via talk wrote:
Years ago I worked on an avionics project where we were storing data in an NVRAM. We had to write code to manage the wear-out in the cells and if I remember correctly the wear-out was in the hundreds of thousands to millions of writes before problems would occur.
I could not see normal usage causing wear-out unless someone were to have some kind of bug causing a high write rate.
Consumer grade flash often only has 10000 write cycles. Especially if it isn't expected to be updated very much. Different price point. -- Len Sorensen

On 2021-07-14 11:47 a.m., Lennart Sorensen via talk wrote:
Consumer grade flash often only has 10000 write cycles. Especially if it isn't expected to be updated very much. Different price point.
Can confirm from annoying experience that these QSPI flash chips really don't have many write cycles. The ARM Cortex-M4 micro-controller boards I'm very fond of use the same flash chips as PC BIOSes do: typically tiny WinBond 8-pin things. In a moment of great inattention (even by my standards) I hooked an 800 kHZ 'smart' LED strip to the same channel as the board's flash storage. What was being clocked to the LEDs wasn't quite valid flash storage commands, but it did a number on the chip in under a minute. The poor thing was nowhere to be found on the bus after that. cheers, Stewart

| From: Alvin Starr via talk <talk@gtalug.org> | Years ago I worked on an avionics project where we were storing data in an | NVRAM. | We had to write code to manage the wear-out in the cells and if I remember | correctly the wear-out was in the hundreds of thousands to millions of writes | before problems would occur. | | I could not see normal usage causing wear-out unless someone were to have some | kind of bug causing a high write rate. The following is based on knowledge plus a fair bit of superstitious extrapolation and interpolation. NAND flash and NOR flash are different. You are surely talking about a NOR flash Lennart is talking about an unknown system. I suspect it used NAND flash, if the description is right. NOR flash: - allows update of each byte separately (most are 1 byte wide) - each update only wears the byte updated - are small (eg. 8M is large). Older consumer routers used NOR flash and that is why their flash sizes were so limited. - it is reasonable to run programs directly out of NOR flash (it looks like RAM) NAND flash - allows updates in pages, but only to previously erased pages - erases can only be done in large blocks. The size of these blocks is generally secret but I think that they are in the range of 128KiB to 1MiB. - are so alien to deal with that they have a complicated controller between them and your system. The controller emulates a disk drive. This does wear levelling. There is some work at moving this into the OS for performance reasons, but it is not common and only for data-centres. - density is everything in NAND flash systems. The original ones used a single bit per cell (SLC) but now 3 bits per cell is common. To store 3 bits per cell, 8 charge levels must be distinguished. This makes them much slower and less reliable (shorter-lived). - each cell can only be erased a small number of times (perhaps 1000) but the wear-levelling usually prevents this being a big problem. It is not part of published specifications. - consumer routers now use NAND flash for firmware and allow orders of magnitude larger firmware. For reasons I haven't investigated, it took OpenWRT years to support NAND flash routers. - it is unreasonable to run programs directly out of NAND flash. They can, however, be paged in, just as one would do from a HDD. This wrecks real-time performance, so routers would not do this. They copy the contents of flash to RAM as part of booting. Normal PCs: - have used a battery-backed-up CMOS RAM module for firmware settings. Everything is CMOS now, I think, but when this dedicated memory was added to the PC, CMOS was notable. Especially for its low standby power requirement. - use flash memories with sequential access for firmware (SPI). The power-on sequence fetches the firmware and dumps it into RAM so that it can be accessed randomly. Dedicated programs are needed to update the flash through the SPI interface. - uses RAM, just as we are used to - uses SSD, with its own controller to emulate HDD but more quickly.

On Thu, Jul 15, 2021 at 10:37:03AM -0400, D. Hugh Redelmeier via talk wrote:
The following is based on knowledge plus a fair bit of superstitious extrapolation and interpolation.
NAND flash and NOR flash are different. You are surely talking about a NOR flash
Lennart is talking about an unknown system. I suspect it used NAND flash, if the description is right.
NOR flash:
- allows update of each byte separately (most are 1 byte wide)
- each update only wears the byte updated
- are small (eg. 8M is large). Older consumer routers used NOR flash and that is why their flash sizes were so limited.
- it is reasonable to run programs directly out of NOR flash (it looks like RAM)
NAND flash
- allows updates in pages, but only to previously erased pages
- erases can only be done in large blocks. The size of these blocks is generally secret but I think that they are in the range of 128KiB to 1MiB.
- are so alien to deal with that they have a complicated controller between them and your system. The controller emulates a disk drive. This does wear levelling. There is some work at moving this into the OS for performance reasons, but it is not common and only for data-centres.
- density is everything in NAND flash systems. The original ones used a single bit per cell (SLC) but now 3 bits per cell is common. To store 3 bits per cell, 8 charge levels must be distinguished. This makes them much slower and less reliable (shorter-lived).
- each cell can only be erased a small number of times (perhaps 1000) but the wear-levelling usually prevents this being a big problem. It is not part of published specifications.
- consumer routers now use NAND flash for firmware and allow orders of magnitude larger firmware. For reasons I haven't investigated, it took OpenWRT years to support NAND flash routers.
- it is unreasonable to run programs directly out of NAND flash. They can, however, be paged in, just as one would do from a HDD. This wrecks real-time performance, so routers would not do this. They copy the contents of flash to RAM as part of booting.
Normal PCs:
- have used a battery-backed-up CMOS RAM module for firmware settings. Everything is CMOS now, I think, but when this dedicated memory was added to the PC, CMOS was notable. Especially for its low standby power requirement.
They did for BIOS systems. UEFI systems tend to have a lot more settings than could fit in the ram of the RTC chip. Certainly the UEFI boot entries are much bigger and not stored in ram. A bug in the SPI flash driver in the linux kernel that shipped with ubuntu 17.10 turned some intel SPI flash chips read only which made it impossible to change any settings in the UEFI on those systems until you somehow booted a kernel that had a fix to undo that read only flag on the chip. This included settings for secureboot, usb booting, etc. You couldn't change any settings at all on those systems. The RTC ram is no longer used for system settings with UEFI. I believe most systems in fact use one SPI flash chip for both the firmware and the settings and partition it and keep the firmware area write protected except when being updated. They often seem to even use one SPI flash chip to store the UEFI firmware, the management controller firmware, the settings, and whatever else in the system needs some flash for persistent storage all partitoned into chunks of the right size for each device that needs it.
- use flash memories with sequential access for firmware (SPI). The power-on sequence fetches the firmware and dumps it into RAM so that it can be accessed randomly. Dedicated programs are needed to update the flash through the SPI interface.
- uses RAM, just as we are used to
- uses SSD, with its own controller to emulate HDD but more quickly.
-- Len Sorensen

On Thu 2021-07-15 @ 10:37:03 AM, D. Hugh Redelmeier via talk wrote:
NAND flash
- allows updates in pages, but only to previously erased pages
NAND flashes are divided into pages, pages are organized into blocks, and a bunch of block go together to form planes. Modern devices also have sub-pages. Erasing usually occurs on blocks, but reads and writes are to pages (or sub-pages) at a time.
- erases can only be done in large blocks. The size of these blocks is generally secret but I think that they are in the range of 128KiB to 1MiB.
The size of the erase block is *always* stated in each device's datasheet. Otherwise how else would we be able to configure the SoC's NAND controller? An SoC's NAND controller needs to know the size of the erase block in order to work with the NAND correctly.
- are so alien to deal with that they have a complicated controller between them and your system. The controller emulates a disk drive. This does wear levelling. There is some work at moving this into the OS for performance reasons, but it is not common and only for data-centres.
You're talking about "managed flash" devices, such as eMMC. True, these do have a built-in "invisible" controller between you and flash that does wear leveling etc. These devices generally look like hard-drives. However, many embedded systems have "raw flash" NAND devices on them. You're welcome to interact with them directly if you wish, but you risk wearing them out prematurely due to lack of wear leveling etc. In this case the smartest way to work with them is via the kernel's mtd subsystem which provides a software-based abstraction between your filesystem and the raw device and performs all the same duties as the aforementioned controller used with managed devices (and often have several additional features). If nothing else, at least with the software mtd layer you know and are in control of what's going on. Ideally you should use an mtd-aware filesystem on top of the kernel's mtd subsystem. Currently the best fileystems to use on top of mtd for use with raw NAND flash are UBI/UBIFS and F2FS. JFFS2 used to be a popular choice, but is considered legacy at this point.
- density is everything in NAND flash systems. The original ones used a single bit per cell (SLC) but now 3 bits per cell is common. To store 3 bits per cell, 8 charge levels must be distinguished. This makes them much slower and less reliable (shorter-lived).
- each cell can only be erased a small number of times (perhaps 1000) but the wear-levelling usually prevents this being a big problem. It is not part of published specifications.
Although SLC was the original (and therefore "old" technology) they are still very much readily available and very actively used. For example: https://www.digikey.ca/en/products/filter/memory/774?s=N4IgTCBcDaIM4BsDGACAd... SLC NAND flash is fast, usually supports a minimum of 100,000 erase cycles, but is much more expensive. The first page/block of SLC is usually guaranteed to (never?) wear out (it'll have an erase count that is an order or two higher than the rest of the flash). So based on your requirements you can either go expensive but fast and long-lasting; or cheap, slow, and a shorter life. All types of flash are still actively produced. The minimum number of expected erase cycles for any given device is *always* specified in the datasheet along with the expected data retention length. Note that the endurance of the device is almost always specified along with a given expected level of ECC. So the datasheet will say, for example: endurance: typical 60k cycles (with 8-bit ECC per (512+32) bytes In this case 512 is the sub-page size and 32 are the OOB bytes. Although single cell per bit designs were called SLC, two bits per cell designs were called "multi-level cell" (MLC). When three bits per cell technology came along they were called TLC (three-level cell). So the nomenclature goes: single → multi → three :-)
- it is unreasonable to run programs directly out of NAND flash. They can, however, be paged in, just as one would do from a HDD. This wrecks real-time performance, so routers would not do this. They copy the contents of flash to RAM as part of booting.
True. It's simply not possible to run code from a device that needs to be accessed a page (or sub-page) at a time. A CPU expects byte (or at least word) access to the instruction stream. Therefore if a raw NAND contains an executable it must be copied to some other byte-accessible medium (e.g. static RAM, dynamic RAM, etc) before it can be consumed by the CPU.

| From: Trevor Woerner via talk <talk@gtalug.org> | On Thu 2021-07-15 @ 10:37:03 AM, D. Hugh Redelmeier via talk wrote: | > NAND flash | > - erases can only be done in large blocks. The size of these blocks is | > generally secret but I think that they are in the range of 128KiB to | > 1MiB. | | The size of the erase block is *always* stated in each device's datasheet. | Otherwise how else would we be able to configure the SoC's NAND controller? An | SoC's NAND controller needs to know the size of the erase block in order to | work with the NAND correctly. This is not the case for flash that is included in ordinary PCs. Well, it might be the case for SPI flash, but the OS generally doesn't deal with it. The flash devices we buy for the PC world are - USB flash memory stick (lots of firmware between out OS and the flash) - SD cards and the like (including eMMC) (looks like a disk; commands are ATA / SCSI) - SATA flash SSD (the OS sees a SATA HDD with a very few enhancements) - m.2 / NVMe flash SSD (again, the OS sees an HDD as far as I know) In each case, the device hides behind a controller and the characteristics of the raw flash chips is not specified by the package manufacturer. As you point out, the embedded world has more choices, some of which are raw flash.

| From: Lennart Sorensen via talk <talk@gtalug.org> | On Sat, Jul 10, 2021 at 10:21:07AM -0400, D. Hugh Redelmeier via talk wrote: | > (Updating Windows, without making it the default boot, is really | > annoying.) | | Hmm, I seem to recall newer windows versions have been better behaved | than they used to be. What I said was ambiguous. What I meant was: Windows update can get into the weeds if the system isn't set up to boot Windows by default. A number of steps require a reboot and if Windows isn't the default, things can go wrong unless you are there to catch it. You don't want to be there because Windows Update is more boring than watching paint dry (except when it goes wrong). What I think you are referring to is that sometimes (when?) Windows fiddles with firmware settings / MBR to make itself the default boot. I've had this happen but I don't know when. This was really annoying in the MBR days because recovery was awkward but with UEFI it is usually easy to fix from firmware setup. Yes, this happens less these days, but it still happens.
participants (7)
-
Alvin Starr
-
D. Hugh Redelmeier
-
lsorense@csclub.uwaterloo.ca
-
Nicholas Krause
-
o1bigtenor
-
Stewart C. Russell
-
Trevor Woerner