Discussion:
/boot/efi size, 260MiB minimum for FAT32 ESP) -- WAS: /boot size
Bryan Smith
2016-04-16 00:16:19 UTC
Permalink
I don't think it will be an issue. I've already been bitten by this with a
~1300 efi booted desktops and would welcome the updated
configuration.
Speaking of which ...

Q: Shouldn't we be using 260MiB FAT32 as a minimum EFI System
Partition (ESP) size going forward, especially as 4KiB logical blocks
become regular?


o Just some history (detail) ...

- For NT6.0 (Vista), Microsoft recommended (and its installers
created) a 200MiB FAT32 ESP
- This size has seemingly "stuck" with most distros, even though ...
- For NT6.1+ (7+/2008+), Microsoft recommended (and its installers
created) a 100MiB FAT32 ESP
However ...
- If the logical block size is 4KiB, the smallest FAT32 file system is 260MiB
Although ...
- The ESP can be FAT16 (just like good'ole ARC) instead of FAT32
- Every ESP I've used, including Windows 7 and 8 x64, seems to install
fine on a FAT32 ESP

Hence why I'm bringing it up. Just curious if there has been much
discussion on this. I did some google searches on the archives and
couldn't find anything.

-- bjs

--
Bryan J Smith - http://www.linkedin.com/in/bjsmith
E-mail: b.j.smith at ieee.org or me at bjsmith.me
Bryan Smith
2016-04-16 00:17:53 UTC
Permalink
Sorry, important typo there ...
Post by Bryan Smith
...
However ...
- If the logical block size is 4KiB, the smallest FAT32 file system is 260MiB
Although ...
- The ESP can be FAT16 (just like good'ole ARC) instead of FAT32
- Every ESP I've used, including Windows 7 and 8 x64, seems to install
fine on a FAT16 ESP
^^^^^^ Corrected (not FAT32)

-- bjs
Chris Murphy
2016-04-16 21:47:42 UTC
Permalink
Post by Bryan Smith
I don't think it will be an issue. I've already been bitten by this with a
~1300 efi booted desktops and would welcome the updated
configuration.
Speaking of which ...
Q: Shouldn't we be using 260MiB FAT32 as a minimum EFI System
Partition (ESP) size going forward, especially as 4KiB logical blocks
become regular?
Well, mkdosfs defaults to FAT16 and 4K cluster size on a 200M
partition, so that should continue to work, even though the UEFI spec
says to use FAT32 on system partitions. So chances are doing nothing
isn't going to break anything.

In practice, both Windows and OS X use FAT32, but they also use
cluster sizes smaller than 4K. Presumably both of them will transition
to 256+M EFI system partitions, rather than use FAT16.
Post by Bryan Smith
o Just some history (detail) ...
- For NT6.0 (Vista), Microsoft recommended (and its installers
created) a 200MiB FAT32 ESP
- This size has seemingly "stuck" with most distros, even though ...
- For NT6.1+ (7+/2008+), Microsoft recommended (and its installers
created) a 100MiB FAT32 ESP
However ...
- If the logical block size is 4KiB, the smallest FAT32 file system is 260MiB
Although ...
- The ESP can be FAT16 (just like good'ole ARC) instead of FAT32
- Every ESP I've used, including Windows 7 and 8 x64, seems to install
fine on a FAT32 ESP
Hence why I'm bringing it up. Just curious if there has been much
discussion on this. I did some google searches on the archives and
couldn't find anything.
https://bugzilla.redhat.com/show_bug.cgi?id=1046577
https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/
https://www.freedesktop.org/wiki/MatthewGarrett/BootLoaderSpec/
and maybe
https://www.redhat.com/archives/anaconda-devel-list/2014-July/msg00002.html


Ideally there'd be an -E flag for mkdosfs to deal with this. The UEFI
spec says firmware is expected to support FAT32, FAT16, and FAT12 so
it probably doesn't matter that the spec also says the system
partition (non-removable) should be FAT32, where only removables get
FAT16 or FAT12. The other thing -E would make possible is ensuring the
proper invariant "EFI file system" is what's actually being created,
rather than pure FAT.
--
Chris Murphy
Bryan Smith
2016-04-18 18:07:43 UTC
Permalink
Post by Chris Murphy
Well, mkdosfs defaults to FAT16 and 4K cluster size on a 200M
partition, so that should continue to work, even though the UEFI spec
says to use FAT32 on system partitions. So chances are doing nothing
isn't going to break anything.
Understood. And I've even verified at least the Windows 7 installer
seems to use a FAT16 just fine, while Windows 8 will still boot from
it (didn't try installing to one with Windows 8).

I haven't had much time with Windows 10.
Post by Chris Murphy
In practice, both Windows and OS X use FAT32, but they also use
cluster sizes smaller than 4K. Presumably both of them will transition
to 256+M EFI system partitions, rather than use FAT16.
My apologies if I wasn't clear (I should have used the term "sector") ...

A storage device, of 4KiB [logical] _sector_ (correcting my prior,
inappropriate use of "block") _forces_ a 4KiB+ block/cluster size, so
260MiB now becomes the minimum FAT32. We're now seeing some systems
where new Windows 10 systems use 4KiB logical sector size.
Post by Chris Murphy
https://bugzilla.redhat.com/show_bug.cgi?id=1046577
https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/
https://www.freedesktop.org/wiki/MatthewGarrett/BootLoaderSpec/
and maybe
https://www.redhat.com/archives/anaconda-devel-list/2014-July/msg00002.html
Okay, I see you there. Thanx for pointing this out! ;)
Post by Chris Murphy
Ideally there'd be an -E flag for mkdosfs to deal with this.
Indeed, that would take it out of the hands of Anaconda et al., and
put it in the tool. That way the tool can be changed, and everything
downstream using it modified.
Post by Chris Murphy
The UEFI spec says firmware is expected to support FAT32, FAT16,
and FAT12 so it probably doesn't matter that the spec also says the
system partition (non-removable) should be FAT32, where only
removables get FAT16 or FAT12. The other thing -E would make
possible is ensuring the proper invariant "EFI file system" is what's
actually being created, rather than pure FAT.
I like Garrett's comments. ;)

If there is a spec that says one thing for one, another thing for
another, we might run into a case of such implementation, and suddenly
an uEFI implementation that doesn't like FAT16 for an ESP.

Murphy's Law.

How Anaconda deals with this possible issue, I don't know. But given
today's disk sizes, and how 4KiB physical is common, while 512B
logical only remains because BOOTMGR was ignorant originally (let
alone NTLDR has always been), I'm not sure we're doing the right
thing, long-term.

-- bjs

<off-topic>
In any case, and I don't expect Anaconda to be the place where this
"greater issue" ever gets addressed ...

But with Windows x64 version 7, 8 and 10 OEM guides recommending the
#1 and #2 partitions to be the ESP + Reserved partitions (ignoring the
separate "Tools" partition in 8 and 10), I've pretty much solved it by
using the first 0.5GiB as follows ...

1 - 384MiB (383MiB), EF00h, EFI System Partition (esp)
384 - 512MiB (128MiB), 0C01h, Microsoft Reserved (msftres)

With regards to the ESP, using an 383MiB (starting at 1MiB, sector
2048 for 512B, 256 for 4KiB) solves the problem altogether. There
shouldn't ever be any issue. I can also load up a shell, tools and
other things, which would be cool for a distro to offer (assuming they
can be distributed. I'm even partial to rEFInd, which I'd love to see
a distro ship as an option, because it solves so many multi-boot
issues, but that's another story.

With regards to the MS Reserved, if I do a Google research, everyone
keeps assuming the 2nd is unused, yet I've done some hexdumps and
found bytes _do_ go in there, especially if Windows is installed on
the same system (still trying to find a case where just reading the
disk in Windows does similarly). I'd also love to see the option to
create this as the #2 partition in a new GPT disk label, in an
installer, if the system is also going to be multibooting with Windows
x64.

But again, I understand this is really outside the realm of Anaconda.
</off-topic>

--
Bryan J Smith - http://www.linkedin.com/in/bjsmith
E-mail: b.j.smith at ieee.org or me at bjsmith.me
Brian C. Lane
2016-04-18 17:42:56 UTC
Permalink
Post by Bryan Smith
I don't think it will be an issue. I've already been bitten by this with a
~1300 efi booted desktops and would welcome the updated
configuration.
Speaking of which ...
Q: Shouldn't we be using 260MiB FAT32 as a minimum EFI System
Partition (ESP) size going forward, especially as 4KiB logical blocks
become regular?
It's probably worth filing a bug about.
--
Brian C. Lane | Anaconda Team | IRC: bcl #anaconda | Port Orchard, WA (PST8PDT)
Bryan Smith
2016-04-18 18:28:09 UTC
Permalink
Post by Brian C. Lane
It's probably worth filing a bug about.
Yeah, I might file a bug that is a bit "more broad," especially after
Chris Murphy pointed out his [bz#1046577].

E.g., in addition to 1046577#c3 from Adam on the spec, even #c1 from
Rod Smith (of rEFInd et al. fame) pointed out that some uEFI
implementations take issue with various FAT32 ESP sizes that aren't at
least 512MiB too, well beyond the 4KiB logical sector requirements of
260MiB.

[ SIDE NOTE: I think this was because of an early Vista requirement
where Microsoft expected the recovery "Tools" to be self-contained in
the FAT32 formatted ESP. As most PC OEMs use tools that don't
boot/run well in a vFAT file system, they changed it to a separate
NTFS file system with Windows 7. ]

So ... where do we "draw the line" on what situations Anaconda should
deal with? And how much development should I expect to sack you guys
with?

Now add in my totally non-Linux comment that in multi-boot
configuration, where Windows is expected, Microsoft expects an 0C01h
(msftres) partition, and ideally (per OEM guides for Windows x64
version 7, 8 and now 10), it should be after the ESP (#1 and #2, or #2
and #3 if there is a "Tools" in #1).

Yeah, this we'll get out-of-control if we try to accommodate every
situation, every uEFI misdesign, the uEFI spec and even multi-boot
with non-Linux.

So ... might I have a suggestion?
And if you like it, I'll file the RFE myself, with the justification.

How about we solve this with a checkbox ... or two?

Suggested Checkbox One:
[ ] Other OSes (including Windows x64) will also be installed
Conditions ... (i.e., don't show checkbox unless met)
- Native 64-bit uEFI Storage Services
- Drive is being wiped w/EFI System Partition (ESP) created
Results ...
- Part 1: 1-384MiB EF00h (esp) FAT32 = 383MiB (>260MiB)
- Part 2: 384-512MiB 0C01h (msftres) = 128MiB

Suggested Checkbox Two:
[ ] Create a large EFI System Partition (ESP)
Conditions ... (i.e., don't show checkbox unless met)
- Native 64-bit uEFI Storage Services
- Drive is being wiped w/EFI System Partition (ESP) created
Results ...
- Part 1: 1-640MiB EF00h (esp) FAT32 = 639MiB (>512MiB)
And if first checkbox selected, also ...
- Part 2: 640-768MiB 0C01h (msftres) = 128MiB

The "Checkbox Two" might be going overboard. I can leave that out of the RFE.

But "Checkbox One" would be very much appreciated for those of us who
regularly install Windows x64 version 7, 8 and 10 in Native 64-bit
uEFI Storage Services mode.

-- bjs

[bz#1046577] https://bugzilla.redhat.com/show_bug.cgi?id=1046577

--
Bryan J Smith - http://www.linkedin.com/in/bjsmith
E-mail: b.j.smith at ieee.org or me at bjsmith.me
Chris Murphy
2016-04-22 05:29:56 UTC
Permalink
Post by Bryan Smith
Post by Brian C. Lane
It's probably worth filing a bug about.
Yeah, I might file a bug that is a bit "more broad," especially after
Chris Murphy pointed out his [bz#1046577].
E.g., in addition to 1046577#c3 from Adam on the spec, even #c1 from
Rod Smith (of rEFInd et al. fame) pointed out that some uEFI
implementations take issue with various FAT32 ESP sizes that aren't at
least 512MiB too, well beyond the 4KiB logical sector requirements of
260MiB.
I'd find the missing "EFI file system" document, or confirm it doesn't
exist, before planning work. The UEFI spec uses imprecise language, it
doesn't say "FAT32 must be used on internal drives" it says it should
be used on system partitions. Well all of these things are system
partitions. Later it says the firmware should support all three FAT
variants, so does it really matter if it's all mixed and matched?
Post by Bryan Smith
So ... where do we "draw the line" on what situations Anaconda should
deal with? And how much development should I expect to sack you guys
with?
Maybe mkdosfs -E just makes the proper "EFI file system" instead of
pure FAT, whatever that difference is. And still takes options from
something else. That something else could be storaged? I can predict
people will break these ESPs beyond repair, they're mounted
persistently all the time on Linux and if there's a crash they're
really not crash tolerant for some time (minute? minutes?) after the
last modification.
Post by Bryan Smith
Now add in my totally non-Linux comment that in multi-boot
configuration, where Windows is expected, Microsoft expects an 0C01h
(msftres) partition, and ideally (per OEM guides for Windows x64
version 7, 8 and now 10), it should be after the ESP (#1 and #2, or #2
and #3 if there is a "Tools" in #1).
Yeah, this we'll get out-of-control if we try to accommodate every
situation, every uEFI misdesign, the uEFI spec and even multi-boot
with non-Linux.
So ... might I have a suggestion?
And if you like it, I'll file the RFE myself, with the justification.
How about we solve this with a checkbox ... or two?
[ ] Other OSes (including Windows x64) will also be installed
Conditions ... (i.e., don't show checkbox unless met)
- Native 64-bit uEFI Storage Services
- Drive is being wiped w/EFI System Partition (ESP) created
Results ...
- Part 1: 1-384MiB EF00h (esp) FAT32 = 383MiB (>260MiB)
- Part 2: 384-512MiB 0C01h (msftres) = 128MiB
[ ] Create a large EFI System Partition (ESP)
Conditions ... (i.e., don't show checkbox unless met)
- Native 64-bit uEFI Storage Services
- Drive is being wiped w/EFI System Partition (ESP) created
Results ...
- Part 1: 1-640MiB EF00h (esp) FAT32 = 639MiB (>512MiB)
And if first checkbox selected, also ...
- Part 2: 640-768MiB 0C01h (msftres) = 128MiB
You want to support installing Windows after Fedora? Why? I don't know
what "Native 64-bit uEFI Storage Services" means or how that affects
the use case.
--
Chris Murphy
Bryan Smith
2016-04-22 08:28:36 UTC
Permalink
Post by Chris Murphy
You want to support installing Windows after Fedora? Why?
No, I merely suggested we consider adding the _option_, with a
checkbox, to Anaconda so it creates a GPT disk label that is
compatible with Windows x64. In addition to specifying FAT32, along
with the aforementioned 4KiB logical sector reality requiring 260MiB,
Microsoft also considers the 0C01h non-optional on GPT. So I thought
it was a good way to offer something with a checkbox, that's all.
Post by Chris Murphy
I don't know what "Native 64-bit uEFI Storage Services" means
or how that affects the use case.
I just mean native uEFI boot, not uEFI w/CSM which provides Legacy
16-bit BIOS Int13h Disk Services.

-- bjs
Chris Murphy
2016-04-22 18:53:06 UTC
Permalink
Post by Bryan Smith
Post by Chris Murphy
You want to support installing Windows after Fedora? Why?
No, I merely suggested we consider adding the _option_, with a
checkbox, to Anaconda so it creates a GPT disk label that is
compatible with Windows x64.
You don't want it supported, but you want it as an option? I don't
know what that means either. If it's there, it needs to be run by
UI/Ux folks, needs plain language clarity, needs to be translated, and
needs a significantly larger matrix of tests by QA/QE than exists now
for Windows installed before Fedora. I don't see on what basis this
option goes in if it's not assured of being understandable and
working. If it's not proven to work, why have it in there? And proving
that it works will take a ton of effort compared to the current way of
doing it which expects Windows first.

The other factor is that the vast majority of OEM Windows installers
are not Microsoft installers. Microsoft's will install to free space.
The OEM installers typically don't. They obliterate the target drive
in its entirety in favor of a fixed layout that can't be modified by
the user at all.
Post by Bryan Smith
In addition to specifying FAT32, along
with the aforementioned 4KiB logical sector reality requiring 260MiB,
Microsoft also considers the 0C01h non-optional on GPT. So I thought
it was a good way to offer something with a checkbox, that's all.
It's convincing that the ESP needs to use 4KiB clusters to support 4kn
drives. But I'm unconvinced any UEFI spec mandates that the ESP needs
to be FAT32. It's suggested that this ought to be true but the
language I've seen so far doesn't say it must be true. So either
mkdosfs needs a special flag to do the logic ensuring on 4kn drives it
uses 4/8KiB clusters, or some component within the installer needs to
pass mkdosfs that option, otherwise obviously the system will not
boot.
--
Chris Murphy
Bryan Smith
2016-04-22 19:31:44 UTC
Permalink
Post by Chris Murphy
You don't want it supported, but you want it as an option? I don't
know what that means either. If it's there, it needs to be run by
UI/Ux folks, needs plain language clarity, needs to be translated,
Yes, I understand that.

Again, understand the context ...
1) _Only_ when creating a _new_ GPT disk label (wiping the disk)
2) Come up with as generic of a text as possible, e.g.,

"Format this new GPT disk to maximize compatibility with several non-Linux OSes"
Post by Chris Murphy
and needs a significantly larger matrix of tests by QA/QE
than exists now for Windows installed before Fedora.
Absolutely _not_. Period. The _opposite_.
There is *0* guarantees because that OS installs _after_ will work.

All it does is ...

A) Reserve the 128MiB type 0C01h partition (msftres) as partition #2
after the ...
B) >=260MiB FAT32 EF00h EFI System Partition (esp) partition #1

That's it! *0* guarantees, just "maximum compatibility."

Again, I recommended 1-384MiB (383MiB) and 384-512MiB (1288MiB),
respectively, using the first 0.5GiB of the disk.
Post by Chris Murphy
I don't see on what basis this option goes in if it's not assured
of being understandable and working.
Just because most IT people are ignorant GPT doesn't mean it's not ideal.

I.e., a lot of people think the type 0C01h partition is "optional" and
"not used" for GPT when running Windows x64. That's hardly the case.
It's also the order Microsoft has, and continues, to recommend.
Post by Chris Murphy
If it's not proven to work, why have it in there?
What are you talking about?!

This has been Microsoft _own_ recommendations since original NT6.0
Vista x64 release, and continues through today for _all_ x64 releases.
The 0C01h (msftres) partition _removes_ the need for hidden sectors
and other crap. It's there for a reason.

At most they've changed the "minimum" FAT32 ESP recommendation, and
now they are starting to recommend larger because 4KiB sectors
requires at least 260MiB -- something that has nothing to do with the
OS, but the FAT32 file system itself. We've only avoided it to date
because most OSes implement "logical" sector size separate from
"physical."

So ... I was recommending we honor
Post by Chris Murphy
And proving that it works will take a ton of effort compared to the
current way of doing it which expects Windows first.
The other factor is that the vast majority of OEM Windows installers
are not Microsoft installers. Microsoft's will install to free space.
The OEM installers typically don't. They obliterate the target drive
in its entirety in favor of a fixed layout that can't be modified by
the user at all.
Obviously you haven't heard a word I said.

Of course OEMs pre-install Windows, and then people install Linux
after. That's _not_ who I'm attempting to address.

I'm talking about professionals, corporations and others who install
their own OSes, the ones with Microsoft and Red Hat Enterprise
agreements, as well as enthusiasts at home or in development
enviroments.

Last time I checked, that's a lot of workstations, as many do _not_
come pre-installed. We're talking a lot of the higher-end systems
here. I'm not talking Jane or Joe user who does it the way you said.

I already and purposely pre-create GPT disk labels for this reason,
and I'm _not_ the only one. We create a disk label with maximum
compatibility, ensuring we avoid issues.
Post by Chris Murphy
It's convincing that the ESP needs to use 4KiB clusters to support 4kn
drives. But I'm unconvinced any UEFI spec mandates that the ESP needs
to be FAT32.
So ... why not give the user the option of FAT32 without confusing them?

"Format this new GPT disk to maximize compatibility with several non-Linux OSes"

We don't have to go into all the asterisks and nooks'n cranies. One
checkbox makes ...
A) FAT32 ESP of at least 260MiB
B) Reserves the 128MiB type 0C01h partition

Done. One option, so many potential issues avoided for a *new* ...
again ... *new* GPT disk label.
Post by Chris Murphy
It's suggested that this ought to be true but the
language I've seen so far doesn't say it must be true.
And I'm trying to get you to understand that this is a very, very
valid option for people who _wipe_ their disks and create a _new_ GPT
disk label. Something we can do in Anaconda.
Post by Chris Murphy
So either mkdosfs needs a special flag to do the logic ensuring on
4kn drives it uses 4/8KiB clusters, or some component within the
installer needs to pass mkdosfs that option, otherwise obviously the
system will not boot.
Again, I thought the "way forward" was to look at this was to address
several "realities" of modern uEFI (w/o CSM) multi-booting. That
includes looking at the fact that it goes beyond just the ESP too.

One checkbox, so many issues avoided ...
But _only_ when the installer is creating a _new_ GPT disk label.

-- bjs

P.S. Please, please understand that I'm just trying to avoid a lot of
issues that many people run into, with a simple checkbox when someone
installs Linux on a new or wiped disk (not an existing one).

--
Bryan J Smith - http://www.linkedin.com/in/bjsmith
E-mail: b.j.smith at ieee.org or me at bjsmith.me
Chris Murphy
2016-04-24 01:07:04 UTC
Permalink
Anaconda's current ESP default produces a 200MiB FAT16 volume using
4KiB clusters. The Windows 8 and 10 (enterprise) installers use this
without complaint. It's Advanced Format 4kn compatible. I see neither
an advantage or disadvantage to the change in terms of compatibility.
If blivet folks want to make non-removable drive ESPs 260MiB so that
they can be formatted FAT32 with a 4KiB cluster by mkdosfs, that's
reasonable.

Asking the user about any of this is not reasonable. All of your
suggestions have confused me, so there's no way I'd agree to
subjecting all anaconda users who have an empty drive and user manual
storage configuration to this. I've been wanting to get rid of
bootloader UI from custom storage config for years, not make it worse
by adding more unnecessary UI options for the user to have to sift
through to get a Fedora installation.

About the MSR specifically:

a. Microsoft says the MSR must go immediately before the basic data
partition, and your proposal doesn't do that nor can it. [1]
b. The Microsoft (Windows 10 Enterprise) installer creates an MSR
immediately before the basic data partition, when installed into
unallocated space. [2]
Post by Bryan Smith
Post by Chris Murphy
It's convincing that the ESP needs to use 4KiB clusters to support 4kn
drives. But I'm unconvinced any UEFI spec mandates that the ESP needs
to be FAT32.
So ... why not give the user the option of FAT32 without confusing them?
Because giving them the option confuses them.
Post by Bryan Smith
Post by Chris Murphy
It's suggested that this ought to be true but the
language I've seen so far doesn't say it must be true.
And I'm trying to get you to understand that this is a very, very
valid option for people who _wipe_ their disks and create a _new_ GPT
disk label. Something we can do in Anaconda.
I just did it in Anaconda and followed it up with a Windows 10
installation and I'm not experiencing the problem you suggest needs a
solution. So at the moment I think you're confused.
Post by Bryan Smith
P.S. Please, please understand that I'm just trying to avoid a lot of
issues that many people run into, with a simple checkbox when someone
installs Linux on a new or wiped disk (not an existing one).
A lot of issues that people run into? This is the first time I've ever
heard of this issue and when I tried to reproduce the problem, I
couldn't.


[1]
"It is particularly important that the MSR be created before other
primary data partitions."
https://msdn.microsoft.com/en-us/library/windows/hardware/dn640535%28v=vs.85%29.aspx#gpt_faq_what_is_msr

[2]
https://paste.fedoraproject.org/359079/
--
Chris Murphy
Bryan Smith
2016-04-24 12:03:40 UTC
Permalink
Post by Chris Murphy
Asking the user about any of this is not reasonable. All of your
suggestions have confused me, so there's no way I'd agree to
subjecting all anaconda users who have an empty drive and user manual
storage configuration to this.
Because you yourself are _not_ familiar either. If anything, you're
making a case for when a GPT disk label is created/wiped. Ergo ...
Post by Chris Murphy
a. Microsoft says the MSR must go immediately before the basic data
partition, and your proposal doesn't do that nor can it. [1]
b. The Microsoft (Windows 10 Enterprise) installer creates an MSR
immediately before the basic data partition, when installed into
unallocated space. [2]
The "Basic Data Partition" = C: partition, _not_ "System" partition.
It's the _3rd_ partition, after the System and Reserved. [7] [8] [10]

Again, you're making my point for me. There is mass ignorance out
there, of even the "Reserved" partition itself, let alone where
Microsoft creates it. You just literally told me _wrong_. ;)

I've done hundreds upon hundreds of multi-boot uEFI installs. It's
_exactly_ this type of "unfamiliarity" I'm trying to _deal_ with.
It's _rampant_, and the Anaconda installer could offer a _single_
checkbox to maximize compatibility.

If you don't believe me, install Windows 8 or 10 x64 and see what it
creates for itself. Whether MBR or GPT, you will _always_ get a
"System" partition before the "Windows" partition, and if it's GPT,
there will be the "Reserved" partition between them.

-- bjs

[7] https://technet.microsoft.com/en-us/library/dd744301(v=ws.10).aspx
[8] https://technet.microsoft.com/en-us/library/hh825686.aspx
[10] https://msdn.microsoft.com/en-us/library/windows/hardware/dn898510(v=vs.85).aspx


--
Bryan J Smith - http://www.linkedin.com/in/bjsmith
E-mail: b.j.smith at ieee.org or me at bjsmith.me
Bryan Smith
2016-04-24 12:09:09 UTC
Permalink
Post by Chris Murphy
Anaconda's current ESP default produces a 200MiB FAT16 volume using
4KiB clusters. The Windows 8 and 10 (enterprise) installers use this
without complaint.
BTW, I _have_ seen _several_ cases where the FAT16 ESP created by
Anaconda is _not_ used by the Windows installer, and creates yet
_another_ FAT32 ESP. Sometimes it uses the existing ESP. Sometimes
it creates a 2nd ESP.

Yes, FAT16 _is_ compatible. When it doesn't, one can manually move
boot files over an "re-target" that ESP in the uEFI firmware, and make
the BCD changes for BOOTMGR. But it's a PITA and redundant when it
doesn't use it.

If you don't believe me, do several new Fedora installs, then try
installing 7, 8 and 10 and see the different scenarios where it does
and doesn't use the existing, FAT16 ESP. I've seen several cases with
7 and 8.

Put whatever text in there you want for this. I offered a suggestion.
If the installer goes, "Oh, I'm only going to use this blank for
Linux," then nothing changes. But if the installer goes, "Well, I
might install a non-Linux later," then it's pretty much the one to
check.

The mass ignorance of even the existence of the "Reserved" (0C01h)
partition, let alone there's not a day that goes by where a Linux site
says, "Oh, Microsoft doesn't even use it, I cannot mount it," is part
of the problem. I'm just trying to _maximize_ a GPT disk label's
compatibility.


--
Bryan J Smith - http://www.linkedin.com/in/bjsmith
E-mail: b.j.smith at ieee.org or me at bjsmith.me
Chris Murphy
2016-04-24 19:16:10 UTC
Permalink
Post by Bryan Smith
BTW, I _have_ seen _several_ cases where the FAT16 ESP created by
Anaconda is _not_ used by the Windows installer, and creates yet
_another_ FAT32 ESP. Sometimes it uses the existing ESP. Sometimes
it creates a 2nd ESP.
I agree it would be better if Anaconda made an ESP using FAT32 and 4KiB cluster.

How to do that is up to developers. But once that's decided, it should
always be done. Presenting the user with an option is incompatible
with good UI/Ux. In effect it's an option to make a less compatible
layout, which makes no sense to offer.
Post by Bryan Smith
The mass ignorance of even the existence of the "Reserved" (0C01h)
partition, let alone there's not a day that goes by where a Linux site
says, "Oh, Microsoft doesn't even use it, I cannot mount it," is part
of the problem. I'm just trying to _maximize_ a GPT disk label's
compatibility.
Required partitions should be created automatically by the thing that
requires them. If the Windows 7 or 8 installer doesn't create an MSR
into free space, that's a Microsoft bug and in no possible way is it
appropriate for Anaconda to create them.
--
Chris Murphy
Bryan Smith
2016-04-24 20:33:30 UTC
Permalink
Post by Chris Murphy
I agree it would be better if Anaconda made an ESP using FAT32 and 4KiB cluster.
I'm not even saying that.

I'm just saying ...
Post by Chris Murphy
How to do that is up to developers. But once that's decided, it should
always be done. Presenting the user with an option is incompatible
with good UI/Ux. In effect it's an option to make a less compatible
layout, which makes no sense to offer.
I merely suggested that it would be a good idea, and the only time it
shows up, as an option, is when the disk needs to be initialized, and
it's booted with uEFI firmware (w/o CSM) for Storage, so we use GPT.
Post by Chris Murphy
Required partitions should be created automatically by the thing that
requires them. If the Windows 7 or 8 installer doesn't create an MSR
into free space, that's a Microsoft bug and in no possible way is it
appropriate for Anaconda to create them.
The order is ideal after the ESP. Even just Windows writing to a GPT,
but not installed on it, should have one.

I.e., this is what got MBR into trouble ... Windows installing bytes
in hidden areas, even if it just someone copying files from a FAT32 or
NTFS file system with another system Windows system and Windows wasn't
even installed on it. Everything I do is for maximum compatibility.

Furthermore, from an alignment standpoint, it's nice to actually have
128MiB on a good boundary. But that's just a bonus.

-- bjs

--
Bryan J Smith - http://www.linkedin.com/in/bjsmith
E-mail: b.j.smith at ieee.org or me at bjsmith.me

Loading...