On Sep 14, 2014, at 3:17 PM, Tom Horsley <horsley1953(a)gmail.com> wrote:
On Sun, 14 Sep 2014 15:08:24 -0600
Chris Murphy wrote:
> So I run each of those manually, interlaced with grub2-editenv list. Nothing changes
Maybe you could arrange to make grubenv immutable and see when someone barfs
trying to write it?
Yeah but when I do this manually, nothing is changing it. During installation, it
doesn't exist until right at the moment of the three grub2- commands. However, get
this:
-rw-rw-r--. 1 root root 84 2014-09-14 17:26:11.000000000 -0400 device.map
drwxr-xr-x. 2 root root 1024 2014-09-14 17:26:12.000000000 -0400 fonts
-rw-rw-r--. 1 root root 3909 2014-09-14 17:26:41.000000000 -0400 grub.cfg
-rw-rw-r--. 1 root root 1024 2014-09-14 17:26:41.000000000 -0400 grubenv
drwxr-xr-x. 2 root root 9216 2014-09-14 17:26:12.000000000 -0400 i386-pc
drwxr-xr-x. 2 root root 1024 2014-09-14 17:26:12.000000000 -0400 locale
drwxr-xr-x. 3 root root 1024 2012-05-09 16:23:32.000000000 -0400 themes
The modification time of grub.cfg and grub.env is the same, and it's 29 seconds after
everything else was created in that folder (themes is part of the grub2 package is why it
has a totally different datetimestamp, it's not created on the fly from grub
commands).
There is ONE THING that I know for a fact touching grub.cfg after the grub2-mkconfig
command runs. GRUBBY. Now what are the odds that grubby touches grub.cfg at 17:26:41 and
has touched grubenv at the exact same time? I think the odds are high grubby is doing
this. But for whatever reason there's a state change that causes it to not do it
subsequently when I manually run newkernelpkg. And I'll bet the reason why is because
grub.cfg as written from grub2-mkconfig is incomplete because the 3.16.1-301.fc21.i686
initramfs isn't finished building. And it's grubby that cleans up that missing
part of the grub.cfg entry. I bet only when it has to modify grub.cfg does it also modify
grubenv.
Chris Murphy