1i5t5.duncan at cox
Feb 22, 2012, 12:46 AM
Post #24 of 28
Alec Warner posted on Tue, 21 Feb 2012 14:38:53 -0800 as excerpted:
> On Tue, Feb 21, 2012 at 1:26 AM, Pacho Ramos <pacho [at] gentoo> wrote:
>> El lun, 20-02-2012 a las 20:02 -0600, Ryan Hill escribi├│:
>>> On Mon, 20 Feb 2012 17:17:30 -0800 Zac Medico wrote:
>>>> On 02/20/2012 05:03 PM, Ryan Hill wrote:
>>>>> On Mon, 20 Feb 2012 21:34:14 +0100 Pacho Ramos wrote:
>>>>>> [W]hat issues are preventing us from unmasking gcc-4.6
>>>>>> (and think on a near stabilization)?
>>>>> Grub is the only blocker.
>>>> Stabilize grub-1.99, and modify the grub-0.9x ebuilds to die if they
>>>> can't find a supported compiler.
The latter should be doable now, with the die suggesting either
grub-static or gcc-config to gcc-4.5, user's choice.
The former (grub-1.99)... will take some time... mostly for docs, see my
experience as noted below.
>>> What's the state of 1.99? ┬áI know someone was working on it recently.
>>> We'd also have to update the handbooks. ┬áI think it could be several
>>> months of work to get it ready, and I'd like to unmask 4.6 last
>> As looks like fixing old grub is far away because nobody know what is
>> causing that issues, probably trying to get grub-1.99 ready for
>> stabilization would be interesting (we will need to do that sooner or
>> later anyway)
> Ubuntu has used grub2 for 3 years, I am considering working on making it
> stable for at least x86 / amd64.
Ubuntu also defaults to upstart (IIRC, it's certainly not openrc!) and
unity. I run grub2 here and am all for the update (for one, it allows
amd64/nomultilib to actually build grub, no more forced grub-static!),
but surely there's better arguments in a gentoo context than mentioning
the U-word, however long they've been doing it.
My grub2 upgrade experience, FWIW. TL;DR: Gentoo grub2 docs need SERIOUS
improvement for even ~arch usage (the bulk of the below), but I'm
thrilled with how it works now that I have it figured out and setup to my
liking. VAST improvement over grub-legacy!
FWIW, I unmasked gcc-4.6 when I was still running grub-static, but I was
thrilled to discover that grub-1.99 builds (and runs) just fine with it,
even on amd64/no-multilib.
**BUT** there's still a HUGE lack of decent gentoo specific grub2
documentation. The stub of a guide-page that the ebuild mentions, at
least as of a few weeks ago when I upgraded, is a start, but it can
almost be said to be more missing than there. the holes are so big!
There's no way that's fit for even ~arch yet, which is why it's still
unkeyworded. grub2 /works/ OK, there's simply no decent documentation at
the gentoo level, and the documentation that's out there just isn't meant
for or targeted at gentoo users /at/ /all/!
This is the current doc, FWIW:
Since I'm running a quad-spindle md/raid (generally raid-1) setup, except
that /boot is only two spindles, thus allowing for a backup /boot on the
other two, I had the luxury of building and installing (to system)
grub-1.99 with DONT_MOUNT_BOOT=1 set in /etc/portage/env/sys-boot/grub,
then installing it to one boot record, gpt-BIOS partition and /boot at a
time, keeping the other grub-static until I was comfortable with grub2's
That allowed me to do a trial-and-error install and play around with the
one, until I was absolutely SURE it was working well, then install to the
second spindle and verify them both, before even TOUCHING the backup
/boot and grub-static install on the other two spindles.
It's a very good thing, too, as it took me QUITE some trial and error to
get things working well, because THE DOCS JUST AREN'T THERE yet. So get
the docs there and IMO it's basically ready to go, but that's going to
take some time, even to get them to reasonable ~arch level, for folks who
don't have the luxury of multiple bootable spindles and /boot install
locations, as I do, and thus need documentation that works, at least for
a minimal boot, the first time they let it touch /boot and (on BIOS
systems, gpt and mbr both) the boot sector.
Some problems I ran into:
1) grub-static blocks all grub, not just <=grub-1.90.
As mentioned above, I kept both installed. There's no file-conflicts,
once grub-static is set to block <=grub-1.90, not all grub, as that work
is long since done, slotting grub2 against grub-legacy, only grub-static
hasn't been updated appropriately.
2) The doc covers BIOS/mbr and UEFI, but not BIOS/gpt
The current doc URL again:
Some people (like me) switched to gpt some time ago. The existing doc
doesn't say anything about what they should do. As it happens, a gpt
BIOS partition is detected automatically, and it solves a nasty problem
MBR folks might have if there's not room between the boot sector and the
first partition for grub-core.
That's the only two I bugged, as I don't want to bother people /too/ much
with bugs on masked packages. I figured once that doc bug gets fixed and
there's some sign of movement, I can file other bugs.
3) LVM is mentioned as auto-detected, but md/raid isn't covered. As it
happens, it's auto-detected and handling has VASTLY improved compared to
grub-legacy, as well.
4) There needs to be a section dealing with what to do (repartition?) if
there's no room between the boot sector and the first partition for the
On gpt, this image will be placed in the BIOS partition if it's
available, but mbr doesn't have such a thing, and I'm sure there's a few
gpt folks out there who thought they didn't need a BIOS partition, since
grub-legacy doesn't use it anyway. Luckily, I had the foresight to setup
BOTH a BIOS and an EFI partition, for forward compatibility, and that
"just works". But surely there's others still on MBR without a
sufficient gap (I had problems with that and grub-legacy, it installed
to /boot but /boot was/is reiserfs, which would relocate critical bits
out from under grub-legacy at times, thus the /boot and
/bak/boot scheme), and still others on gpt who didn't have that
foresight, who will have problems and need to know how to solve them.
5) After system installation I had trouble installing to the backup boot
(/bak/boot, normal /boot was still grub-static and I wanted to keep it
that way until I knew grub2 was working), because the script has /boot
hardcoded -- it allows the boot record device to be set, but hard-codes
/boot, which doesn't make a lot of sense. There's a danger of having
/boot on an entirely different device, which may or may not actually be
present when the device with that boot record is booted. Surely, they
should both be settable. (upstream? What about the pkg_config phase?)
I worked around that with a combination of hacking and rearranging my
fstab and scripts to mount what had been /bak/boot as /boot.
6) Most existing documentation seems to assume grub-mkconfig
(grub2-mkconfig on gentoo), but on my system anyway, running
grub2-mkconfig took longer than building a kernel from clean!
Seriously, building a kernel takes about 4 minutes here, and
grub2-mkconfig was taking about 5! While that's /arguably/ acceptable
for folks doing distro kernel upgrades perhaps a few times a year, it's
definitely *NOT* acceptable for people like me who routinely run live-git
kernels, normally upgrading them every few days, but occasionally doing a
git-bisect with a new kernel every few minutes for 12 rounds or so!
Doubling that turnaround time due to upstream's incredibly STUPID
grub2-mkconfig implementation just isn't going to cut it!
With a bunch of script-timestamp debugging, I discovered that the problem
was some 30-ish calls to grub2-probe, each of which took ~10 seconds!
The primary problem is upstream's, as neither grub2-probe nor
grub2-mkconfig caches results, so *EVERY* call to grub2-probe takes ~10
seconds, and there are around *30* of them! However, the wouldfallout is
gentoo's to deal with.
The workaround is simple enough, or *WOULD* be with proper documentation,
simply don't use grub2-mkconfig. Instead, hand-configure grub.cfg just
as gentooers have been hand-configuring grub.conf for years. Done right,
unlike the automated monster upstream uses, such a config doesn't even
need updated with a kernel upgrade, it "just works".
(Here, I use the dated but still extremely effective update-symlinks-to-
newest-two and a stable backup, trick. It's in my kernel install script,
and the grub config simply points to the symlink so doesn't itself need
FWIW, Arch actually recommends hand-configuring too. (Note the FWIW,
unlike the U-word comparison I complained about above. IMO arch's close
enough to gentoo to at least have /some/ relevance, but the "FWIW" is
there to cover and acknowledge those who find it worth little if
But... gentoo needs some documentation for it, because as I said, most of
what's out there assumes the automated /etc/grub.d/* and grub2-mkconfig.
There's nothing on that in the current doc, AT ALL.
But WOW, once it was done and before I've even setup a graphics theme,
has it ever been worth it! My favorite feature is being able to access
any file from any filesystem, directly from grub. On top of md/raid or
lvm2, doesn't matter, it can still access it! No more having to keep
copies of such files on /boot! Grub fonts and themes in /usr/share and
for that matter, kernel command-line textfile documentation (read with
the build-in pager) in /usr/src/linux/Documentation, NOT A PROBLEM! =:^)
Plus, being able to actually build it from amd64/nomultilib instead of
having to depend on grub-static, is a big plus. =:^)
Duncan - List replies preferred. No HTML msgs.
"Every nonfree program has a lord, a master --
and if you use the program, he is your master." Richard Stallman