Bug 26763 - UCR variable for GRUB_DEFAULT and GRUB_SAVEDEFAULT
UCR variable for GRUB_DEFAULT and GRUB_SAVEDEFAULT
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: Grub
UCS 4.1
All Linux
: P5 minor (vote)
: UCS 4.1-0-errata
Assigned To: Philipp Hahn
Stefan Gohmann
:
: 12334 (view as bug list)
Depends on:
Blocks: 40509
  Show dependency treegraph
 
Reported: 2012-04-11 10:28 CEST by Philipp Hahn
Modified: 2016-04-13 12:14 CEST (History)
5 users (show)

See Also:
What kind of report is it?: ---
What type of bug is this?: ---
Who will be affected by this bug?: ---
How will those affected feel about the bug?: ---
User Pain:
Enterprise Customer affected?:
School Customer affected?:
ISV affected?:
Waiting Support:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipp Hahn univentionstaff 2012-04-11 10:28:19 CEST
Grub bietet die Möglichkeit, sich den im Boot-Menü ausgewählten Eintrag zu merken, um diesen dann auch beim nächsten Bootvorgang zu benutzen. Dazu ist in /etc/univention/templates/files/etc/default/grub folgendes zu setzten:
 GRUB_DEFAULT=saved
 GRUB_SAVEDEFAULT=true

Die letzte Zeile sorgt dafür, daß das Auswählen eines Eintrags auch dazu führt, diese Auswahl in der Datei /boot/grub/grubenv zu speichern, während die erste Zeile dafür sorgt, daß diese Einstellung beim nächsten Boot-Vorgang dann auch benutzt wird. Alternativ kann hier auch direkt ein Eintrag durch Angabe des Index (ab 0) ausgewählt werden, weshalb hier ggf. eine UCR-Variable ganz sinnvoll wäre.
Comment 1 Janis Meybohm univentionstaff 2012-04-19 08:37:35 CEST
(In reply to comment #0)
> Alternativ kann hier auch direkt ein Eintrag durch Angabe des
> Index (ab 0) ausgewählt werden, weshalb hier ggf. eine UCR-Variable ganz
> sinnvoll wäre.
Zusätzlich kann man auch den zu bootenden Kernel als String angeben, ziemlich Cool da sich der Index ja ggf. ändern kann:

GRUB_DEFAULT="Univention Corporate Server, with Linux 2.6.32-ucs37-686-bigmem"
Comment 2 Stefan Gohmann univentionstaff 2012-06-07 11:07:17 CEST
*** Bug 12334 has been marked as a duplicate of this bug. ***
Comment 3 Philipp Hahn univentionstaff 2012-11-15 10:20:24 CET
(In reply to comment #1)
> Zusätzlich kann man auch den zu bootenden Kernel als String angeben, ziemlich
> Cool da sich der Index ja ggf. ändern kann:

Das tut übrigens GRUB so wie in UCS-3.1~4 standardmäßig.

<http://www.gnu.org/software/grub/manual/html_node/Simple-configuration.html>
Comment 4 Janis Meybohm univentionstaff 2014-09-25 14:49:07 CEST
Request from customer via 2014091721000217

UCR vor GRUB_DEFAULT would be really nice for support cases where we need to ask customers to stay on an older kernel version as workaround!
Comment 5 Stefan Gohmann univentionstaff 2016-01-27 10:42:51 CET
Requested by another support customer.
Comment 6 Philipp Hahn univentionstaff 2016-01-27 16:18:23 CET
r67013 | Bug #26763 GRUB: Allow to select kernel to boot.
r67012 | Bug #26763 GRUB: Fix pyflakes errors
r67011 | Bug #26763 GRUB: Copyright 2016

Package: univention-grub
Version: 9.0.1-2.126.201601271615
Branch: ucs_4.1-0
Scope: errata4.1-0

r67014 | Bug #26763 GRUB: Allow to select kernel to boot YAML
 univention-grub.yaml
Comment 7 Stefan Gohmann univentionstaff 2016-02-01 07:52:03 CET
Code review: Failed

This looks wrong:
+savedefault = configRegistry.get('grub/savedefault', True)
+print 'GRUB_SAVEDEFAULT=%s' % ('true' if savedefault else 'false',)

root@master421:~# ucr set grub/savedefault=false
Create grub/savedefault
File: /etc/default/grub
Generating grub configuration file ...
Found background: /boot/grub/uniboot.png
Found background image: /boot/grub/uniboot.png
Found linux image: /boot/vmlinuz-4.1.0-ucs167-amd64
Found initrd image: /boot/initrd.img-4.1.0-ucs167-amd64
Found linux image: /boot/vmlinuz-4.1.0-ucs163-amd64
Found initrd image: /boot/initrd.img-4.1.0-ucs163-amd64
Found linux image: /boot/vmlinuz-3.10.0-ucs139-amd64
Found initrd image: /boot/initrd.img-3.10.0-ucs139-amd64
Found memtest86+ image: /memtest86+.bin
done
Generating legacy menu.lst from current kernels
root@master421:~# grep GRUB_SAVEDEFAULT /etc/default/grub
GRUB_SAVEDEFAULT=true
root@master421:~#
Comment 8 Philipp Hahn univentionstaff 2016-02-01 09:20:17 CET
(In reply to Stefan Gohmann from comment #7)
> Code review: Failed
> 
> This looks wrong:
> +savedefault = configRegistry.get('grub/savedefault', True)

r67077 | Bug #26763 GRUB: Evaulate UCRV as boolean.
 -> is_true()

Package: univention-grub
Version: 9.0.1-3.128.201602010915
Branch: ucs_4.1-0
Scope: errata4.1-0

r67079 | Bug #26763,Bug #40509 GRUB: Evaulate UCRV as boolean YAML
 univention-grub.yaml
Comment 9 Stefan Gohmann univentionstaff 2016-02-02 06:49:26 CET
Code review: OK.

Tests: OK. After updating to the latest test errata, the following configuration was changed:
---------------------------------------------------------------
root@master411:~# diff /etc/default/grub.BAK /etc/default/grub
14a15,16
> GRUB_SAVEDEFAULT=true
>
root@master411:~#
---------------------------------------------------------------
I think it is OK, because it one has to set 'ucr set grub/default=saved' to use it.

I had to set the title in this way:
ucr set grub/default='"Univention Corporate Server, mit Linux 4.1.0-ucs163-amd64"'

Otherwise I get:

root@backup412:~# ucr set grub/default='Univention Corporate Server, mit Linux 4.1.0-ucs163-amd64' 
Create grub/default
File: /etc/default/grub
/usr/sbin/grub-mkconfig: 14: /etc/default/grub: Corporate: not found

→ Bug #40557

I was unable to use the title with the new grub version, see Bug #39009.

YAML: OK
Comment 10 Janek Walkenhorst univentionstaff 2016-02-04 13:48:02 CET
<http://errata.software-univention.de/ucs/4.1/82.html>