On 06/22/2012 03:10 PM, Lucas Meneghel Rodrigues wrote:
> This fixes a problem where autotest will always
> fail to boot-once any kernels on Ubuntu (12.04,
> I assume other Ubuntu versions with grub2 are
> also affected).
>
> Ubuntu requires that we run 'update-grub' after
> 'grub-reboot', otherwise the changes won't be
> in effect on next boot. So, update boottool to
> execute that in case it's found.
>
> Signed-off-by: Lucas Meneghel Rodrigues <[email protected]>
> ---
> client/tools/boottool | 16 ++++++++++++++--
> 1 file changed, 14 insertions(+), 2 deletions(-)
>
> diff --git a/client/tools/boottool b/client/tools/boottool
> index 7a1cce1..8631081 100755
> --- a/client/tools/boottool
> +++ b/client/tools/boottool
> @@ -1442,8 +1442,20 @@ class Grubby(object):
> '%s',' ,'.join(grub_reboot_names))
> return -1
>
> - return self._run_get_return([executable,
> - '%s' % entry_index])
> + rc_gr = self._run_get_return([executable, '%s' % entry_index])
> + # If grub-reboot itself failed, return the rc right away
> + if rc_gr:
> + return rc_gr
> +
> + # If all went well, on ubuntu we still have to run update-grub
> + # for the changes to be set. If we didn't find it, then let's
> + # just return grub_reboot's rc.
> + update_grub = 'update-grub'
> + executable = find_executable(update_grub)
> + if executable is not None:
> + return self._run_get_return([executable])
> + else:
> + return rc_gr
>
>
> def boot_once_yaboot(self, entry_title):
Lucas,
I've not tested your proposal, but I'm confused at how this works. AFAIK
'update-grub' runs 'grub-mkconfig', which regenerates the grub
configuration file.
If /etc/default/grub has GRUB_DEFAULT=0 (the default) then the generated
grub.conf will still have 'set default=0'. If we manually set
GRUB_DEFAULT=saved in /etc/default/grub, then later runs of update-grub
will do the right, that is set 'set default=${saved_entry}'. If what I'm
saying is absolutely correct, both approaches involve editing a file and
running and extra utility.
Can you confirm you have not edited /etc/default/grub?
Thanks,
CR.
_______________________________________________
Autotest mailing list
[email protected]
http://test.kernel.org/cgi-bin/mailman/listinfo/autotest