why is gurb-menu hidden as default?

Peter Jones pjones at redhat.com
Mon Feb 6 16:58:30 UTC 2012


On 02/06/2012 11:40 AM, Josh Boyer wrote:
> On Mon, Feb 6, 2012 at 11:36 AM, Matthew Garrett<mjg59 at srcf.ucam.org>  wrote:
>> On Mon, Feb 06, 2012 at 05:25:08PM +0100, Reindl Harald wrote:
>>
>>> and why are there so many noobs with questions like "after a kernel
>>> update my machine does no longer boot" if this decision would
>>> be smart?
>>
>> The solution to "My kernel update doesn't boot" should be "Automatically
>> detect that that happened, give the user that information and fall back
>> to the old kernel", not "Always show the user a menu that they almost
>> always don't care about". Solve the actual problem.
>
> Agreed.  Having a simple one-shot boot facility would be awesome.  If anyone
> has ideas on how to accomplish this, please let me know.  I'd be willing to
> look at implementing this.

So, this is something we could probably do with what we've got now.  It'd
require some changes to kernel's .spec, and probably a few minor changes in
grubby, and something would have to provide a systemd service.  Here's the
basic algorithm:

1) kernel's %post/%posttrans adds the new stanza using new-kernel-package/
    grubby, but doesn't make the new kernel default.
2) kernel's %post saves new kernel version someplace (/etc/sysconfig/newkernel
    for the purpose of this text, we can decide if there's a more appropraite
    place)
3) set next boot kernel to the new kernel with grub2-reboot
4) during boot up, a systemd service compares uname to /etc/sysconfig/newkernel
  a) if they match, it worked - use grubby to make it the default
  b) if they don't match, it failed - do whatever it is you guys want to do.

The only problem here is that when we get to 4b, we don't *really* know
that we've attempted to boot the new kernel - the user could have manually
intervened and booted the old (or some other) kernel.  Dunno how to avoid that.

-- 
         Peter


More information about the devel mailing list