Secure Boot GRUB template: be more dynamic + don't overwrite with empty variable
[grml-live.git] / templates / secureboot / grub.cfg
1 set grml_orig_prefix=$prefix
2 export grml_orig_prefix
3 set grml_orig_root=$root
4 export grml_orig_root
5
6 search.file /boot/grub/grmlenv.cfg root
7 set prefix=($root)/boot/grub/
8 source ($root)/boot/grub/grmlenv.cfg
9
10 if [ "$grml_secureboot" = false ] ; then
11   configfile /boot/grub/grub.cfg
12   # if that fails we need to fallback, but how?
13 else
14   if [ "$grml_orig_prefix" != "" ] ; then
15     set prefix=$grml_orig_prefix
16   fi
17
18   # this is basically a copy of templates/boot/grub/header.cfg but to avoid
19   # failures due to Secure Boot restrictions and sourcing addons.cfg via
20   # /boot/grub/loopback.cfg (and then showing entries that are at the wrong
21   # position as well as don't work at all) we have to specify the appropriate
22   # config here
23   set timeout=20
24   if loadfont /boot/grub/ascii.pf2 ; then
25     set gfxmode=auto
26     insmod efi_gop
27     insmod efi_uga
28     insmod gfxterm
29     insmod png
30     # this is forbidden to be loaded under Secure Boot:
31     #insmod vbe
32     terminal_output gfxterm
33   fi
34
35   if [ -f /boot/grub/%GRML_NAME%-theme/theme.txt ] ; then
36     set theme=/boot/grub/%GRML_NAME%-theme/theme.txt
37     export theme
38   elif [ -f /boot/grub/grml-theme/theme.txt ] ; then
39     set theme=/boot/grub/grml-theme/theme.txt
40     export theme
41   else
42     set menu_color_normal=white/black
43     set menu_color_highlight=black/light-gray
44     set color_normal=white/black
45   fi
46
47   menuentry "Boot %GRML_NAME% in normal mode (release %VERSION%, Secure Boot enabled)" {
48       set gfxpayload=keep
49       echo 'Loading kernel...'
50       linux   /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% "${loopback}" "${kernelopts}" nomce net.ifnames=0 
51       echo 'Loading initrd...'
52       initrd  /boot/%SHORT_NAME%/initrd.img
53   }
54
55   menuentry "Boot %GRML_NAME% - enable persistency" {
56       set gfxpayload=keep
57       echo 'Loading kernel...'
58       linux   /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% "${loopback}" "${kernelopts}" nomce net.ifnames=0 persistence 
59       echo 'Loading initrd...'
60       initrd  /boot/%SHORT_NAME%/initrd.img
61   }
62
63   menuentry "Boot %GRML_NAME% - copy %GRML_NAME% to RAM" {
64       set gfxpayload=keep
65       echo 'Loading kernel...'
66       linux   /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% "${loopback}" "${kernelopts}" nomce net.ifnames=0 toram=%GRML_NAME%.squashfs 
67       echo 'Loading initrd...'
68       initrd  /boot/%SHORT_NAME%/initrd.img
69   }
70
71   menuentry "Boot %GRML_NAME% - copy whole medium to RAM" {
72       set gfxpayload=keep
73       echo 'Loading kernel...'
74       linux   /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% "${loopback}" "${kernelopts}" nomce net.ifnames=0 toram 
75       echo 'Loading initrd...'
76       initrd  /boot/%SHORT_NAME%/initrd.img
77   }
78
79   menuentry "Boot %GRML_NAME% - disable framebuffer/kernel mode setting" {
80       set gfxpayload=keep
81       echo 'Loading kernel...'
82       linux   /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% "${loopback}" "${kernelopts}" nomce net.ifnames=0 video=vesafb:off cirrus.modeset=0 i915.modeset=0 mgag200.modeset=0 nomodeset nouveau.modeset=0 radeon.modeset=0 
83       echo 'Loading initrd...'
84       initrd  /boot/%SHORT_NAME%/initrd.img
85   }
86
87   menuentry "Boot %GRML_NAME% - enable forensic mode" {
88       set gfxpayload=keep
89       echo 'Loading kernel...'
90       linux   /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% "${loopback}" "${kernelopts}" nomce net.ifnames=0 read-only nofstab noraid nodmraid nolvm noautoconfig noswap raid=noautodetect 
91       echo 'Loading initrd...'
92       initrd  /boot/%SHORT_NAME%/initrd.img
93   }
94
95   menuentry "Boot %GRML_NAME% - enable serial console" {
96       set gfxpayload=keep
97       echo 'Loading kernel...'
98       linux   /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% "${loopback}" "${kernelopts}" nomce net.ifnames=0 video=vesafb:off console=tty1 console=ttyS0,9600n8 
99       echo 'Loading initrd...'
100       initrd  /boot/%SHORT_NAME%/initrd.img
101   }
102
103   menuentry "Boot %GRML_NAME% - debug mode" {
104       set gfxpayload=keep
105       echo 'Loading kernel...'
106       linux   /boot/%SHORT_NAME%/vmlinuz apm=power-off boot=live live-media-path=/live/%GRML_NAME%/ bootid=%BOOTID% "${loopback}" "${kernelopts}" nomce net.ifnames=0 initcall verbose debug=vc systemd.log_level=debug systemd.log_target=kmsg log_buf_len=1M 
107       echo 'Loading initrd...'
108       initrd  /boot/%SHORT_NAME%/initrd.img
109   }
110 fi