1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
set prefix=(memdisk)/boot/grub
insmod nativedisk
insmod ehci
insmod ohci
insmod uhci
insmod usb
insmod usbserial_pl2303
insmod usbserial_ftdi
insmod usbserial_usbdebug
# Serial and keyboard configuration, very important.
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
terminal_input --append serial
terminal_output --append serial
terminal_input --append at_keyboard
gfxpayload=keep
terminal_output --append gfxterm
# Default to first option, automatically boot after 1 second
set default="0"
set timeout=1
# This is useful when using 'cat' on long files on GRUB terminal
set pager=1
# # Play a beep on startup
# play 480 440 1
insmod jpeg
background_image (cbfsdisk)/background.png
loadfont (memdisk)/dejavusansmono.pf2
keymap ukqwerty
menuentry 'Load Operating System' {
insmod ahci
insmod part_msdos
insmod part_gpt
for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4); do
if [ -f "$x/grub/libreboot_grub.cfg" ] ; then
set root=$x
configfile /grub/libreboot_grub.cfg
fi
if [ -f "$x/boot/grub/libreboot_grub.cfg" ] ; then
set root=$x
configfile /boot/grub/libreboot_grub.cfg
fi
done
set root='ahci0,1'
linux /vmlinuz root=/dev/sda1 rw
if [ -f "/initrd.img" ] ; then
initrd /initrd.img
fi
}
menuentry 'Parse ISOLINUX menu (ahci0)' {
insmod ahci
insmod part_msdos
insmod part_gpt
for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4); do
set root=$x
if [ -f "/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /isolinux/isolinux.cfg
elif [ -f "/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /syslinux/syslinux.cfg
elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /boot/isolinux/isolinux.cfg
elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /boot/syslinux/syslinux.cfg
fi
done
}
menuentry 'Parse ISOLINUX menu (USB)' {
insmod usbms
insmod part_msdos
insmod part_gpt
for x in (usb0) (usb0,1) (usb0,2) (usb0,3) (usb0,4); do
set root=$x
if [ -f "/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /isolinux/isolinux.cfg
elif [ -f "/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /syslinux/syslinux.cfg
elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /boot/isolinux/isolinux.cfg
elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /boot/syslinux/syslinux.cfg
fi
done
}
menuentry 'Parse ISOLINUX menu (CD/DVD)' {
insmod ahci
insmod ata
insmod iso9660
for x in (ata0) (ahci1); do
set root=$x
if [ -f "/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /isolinux/isolinux.cfg
elif [ -f "/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /syslinux/syslinux.cfg
elif [ -f "/boot/isolinux/isolinux.cfg" ] ; then
syslinux_configfile -i /boot/isolinux/isolinux.cfg
elif [ -f "/boot/syslinux/syslinux.cfg" ] ; then
syslinux_configfile -i /boot/syslinux/syslinux.cfg
fi
done
}
menuentry 'Switch to grubtest.cfg' {
set root='cbfsdisk'
configfile (cbfsdisk)/grubtest.cfg
}
menuentry 'Search for GRUB configuration (grub.cfg) outside of CBFS' {
insmod ahci
insmod usbms
insmod part_msdos
insmod part_gpt
for x in (ahci0,1) (ahci0,2) (ahci0,3) (ahci0,4) (usb0) (usb0,1) (usb0,2) (usb0,3) (usb0,4); do
if [ -f "$x/grub/grub.cfg" ] ; then
submenu "Load Config from $x" $x {
root=$2
source /grub/grub.cfg
unset superusers
}
fi
if [ -f "$x/boot/grub/grub.cfg" ] ; then
submenu "Load Config from $x" $x {
root=$2
source /boot/grub/grub.cfg
unset superusers
}
fi
if [ -f "$x/grub2/grub.cfg" ] ; then
submenu "Load Config from $x" $x {
root=$2
source /grub2/grub.cfg
unset superusers
}
fi
if [ -f "$x/boot/grub2/grub.cfg" ] ; then
submenu "Load Config from $x" $x {
root=$2
source /boot/grub2/grub.cfg
unset superusers
}
fi
done
}
|