Hi,
On 2019/10/25 20:14, William Hubbs wrote:
Hey all,
I have been advised to bring this topic back to the list before taking
any action, so here it is.
First, I need to clarify what I'm *NOT* talking about.
This discussion has nothing to do with whether or not you have the
split-usr use flag turned on; all of us officially have that on because
/bin, /lib* and /sbin are directories in the official Gentoo setup. In
other words, I am *not* talking about forcing the /usr merge.
Unfortunately, the concept of separate usr has gotten wrapped up in the
split-usr use flag and doesn't have to be. For the record, I mean something
very specific when I say "separate usr". I am talking about the situation
where /usr is a mount point separate from /, so in this thread, let's stick
to "separate usr" for that situation. I am *not* even saying that using
separate usr is wrong or unsupported. You can even run separate usr with
split-usr turned off if you would like to do so.
Now for the use case I want to talk about, and that is using separate
/usr without using an initramfs to boot your system and pre-mount /usr.
If you do this, many things are broken, and this is why the binary
distros all use an initramfs if you do this. This configuration is also
unsupported officially in Gentoo [1] [2], and it is not shown as the
example setup in our handbook.
I want to hear from people who have / and /usr on separate partitions
and who are not using an initramfs.
If you are in this group, I have a very specific question. Why aren't
you using an initramfs?
Because until recently it wasn't an issue. So for me the final kicker
was still not a separate /usr. For my use case everything except a big
warning about md5sum not being available during boot works. This is NOT
desktop setup for MOST of my systems. On the few that are I don't
generally have things like bluetooth keyboards etc that I need available
during early(ish) boot or anything crazy. So the argument that "many
things break" may be accurate, but I've yet to find a concrete example
that bugs me enough to care.
There is basically one thing that I found that broke "out of the box"
with a separate /usr - and that's if I have one of those stupid LTE
modem things that pretend to be a disk drive/cdrom or something similar
until you tell it to switch to network mode. The same thing that, for
me, breaks with suspend resume (after resume I have to kill
modem_manager, and start it *before* replugging the modem or it simply
will not work - another discussion).
So frankly, I just don't see the benefit. The reason I've eventually
bothered with setting up and creating an initramfs now was because of
/lib/firmware which I need available during module load (pre
/etc/init.d/localmount) so that firmware is available as soon as amdgpu
and i915 loads or else I end up with a borked screen. Only uefi fb
compiled into the kernel (required to get hand-over from grub2 ... at
least, the only way I could get it to work smoothly).
The initramfs we ONLY pull in on systems where it's required (one
currently, the machine I'm typing this on).
Why do I have /lib/firmware on a separate partition now? Because 512MB
for / used to be plenty, and I have MANY history systems out there which
is non-trivial to make partitioning changes to (I keep / in a raw
partition). Now just /lib/firmware is larger than that.
Like William, / and /boot are definite partitions, and I want to keep
these small. Everything else is LVM. Most systems have >50% of VG
space unallocated because people always overestimate what they really need.
Separate partitions means I can set up separate mount options
(nosuid,nodev etc ...)
Like William, I feel more cogs means more opportunities for breakage. I
roll my own vanilla kernel, with one or two of my own patches. I roll
my own init script for initramfs. Why - because system bootability is
of utmost importance. So I absolutely have to KNOW that it'll work, and
when it doesn't that I can walk someone through fixing it over the
phone. Never used the default gentoo initramfs. genkernel always pulls
in stuff I don't want nor need. Sometimes it's just simpler I guess.
But that's the thing - Gentoo gives me CHOICE. Which I don't get from
other distributions. These are not the kind of things I like to leave
to chance, or in the hands of a continuously changing tool (eg, dracut
as mentioned by William).
Recently we ran into a bug causing filesystem corruption on /usr/portage
(for some reason it was always under /usr/portage). With /usr on a
separate partition we could recover that by setting appropriate boot
options *remotely*. No need to drive out. Some of these systems were
>100km away.
So another motivation for separate / and /usr for me is that / is much
more read-heavy than /usr, and as such, with the lower write ratio lower
risk of corruption. Better ability to recover.
As to why not use the initramfs - simple: It's not needed.
The only potential advantage in my opinion is if you can build a
recovery system in there that's small enough, and contains all
conceivable tools required to recover from just about any boot failure.
Work-in-progress I guess.
I'm not sure that answers your question, and this is one of those
debates that can run in circles for hours, days and even weeks. So I
hope I at least managed to give you some insight into my thinking and
reasoning.
Kind Regards,
Jaco