-
Notifications
You must be signed in to change notification settings - Fork 0
/
grub.cfg
executable file
·187 lines (161 loc) · 4.25 KB
/
grub.cfg
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
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
### BEGIN /etc/grub.d/00_header ###
insmod part_gpt
insmod part_msdos
if [ -s $prefix/grubenv ]; then
load_env
fi
if [ "${next_entry}" ] ; then
set default="${next_entry}"
set next_entry=
save_env next_entry
set boot_once=true
else
set default="0"
fi
if [ x"${feature_menuentry_id}" = xy ]; then
menuentry_id_option="--id"
else
menuentry_id_option=""
fi
export menuentry_id_option
if [ "${prev_saved_entry}" ]; then
set saved_entry="${prev_saved_entry}"
save_env saved_entry
set prev_saved_entry=
save_env prev_saved_entry
set boot_once=true
fi
function savedefault {
if [ -z "${boot_once}" ]; then
saved_entry="${chosen}"
save_env saved_entry
fi
}
function load_video {
if [ x$feature_all_video_module = xy ]; then
insmod all_video
else
insmod efi_gop
insmod efi_uga
insmod ieee1275_fb
insmod vbe
insmod vga
insmod video_bochs
insmod video_cirrus
fi
}
if loadfont unicode ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=en_US
insmod gettext
fi
terminal_input console
terminal_output gfxterm
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
set timeout=5
# Fallback normal timeout code in case the timeout_style feature is
# unavailable.
else
set timeout=5
fi
### END /etc/grub.d/00_header ###
### Start of customization for archiso
set archiso_uuid="9BCE-B32C"
set windows_uuid="4617-D0E9"
set archiso_label="ARCH_201803"
set archiso_basedir="arch"
export archiso_basedir
insmod search_fs_uuid
search --no-floppy --fs-uuid --set=archiso_partition "$archiso_uuid"
export archiso_partition
set cmdline="archisobasedir=${archiso_basedir} archisolabel=${archiso_label}"
export cmdline
if [ "${grub_platform}" == "efi" ]; then
set bootmode="EFI-MBR"
else
set bootmode="BIOS-MBR"
fi
export bootmode
menuentry "Archiso x86_64 $bootmode" --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'archiso' {
load_video
set gfxpayload=keep
insmod gzio
insmod fat
set root="$archiso_partition"
echo 'Loading Linux ...'
linux "/$archiso_basedir/boot/x86_64/vmlinuz" $cmdline
echo 'Loading initial ramdisk ...'
initrd "/$archiso_basedir/boot/intel_ucode.img" "/$archiso_basedir/boot/x86_64/archiso.img"
}
submenu "Advanced archiso options" $menuentry_id_option 'archiso-advanced' {
menuentry "Archiso x86_64 $bootmode, with peristent storage" --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'archiso-persistent' {
load_video
set gfxpayload=keep
insmod gzio
insmod fat
set root="$archiso_partition"
echo 'Loading Linux ...'
linux "/$archiso_basedir/boot/x86_64/vmlinuz" $cmdline cow_label=ARCHISO_COW
echo 'Loading initial ramdisk ...'
initrd "/$archiso_basedir/boot/intel_ucode.img" "/$archiso_basedir/boot/x86_64/archiso.img"
}
menuentry "Archiso x86_64 $bootmode, with copy-to-RAM" --class arch --class gnu-linux --class gnu --class os $menuentry_id_option 'archiso-copytoram' {
load_video
set gfxpayload=keep
insmod gzio
insmod fat
set root="$archiso_partition"
echo 'Loading Linux ...'
linux "/$archiso_basedir/boot/x86_64/vmlinuz" $cmdline copytoram
echo 'Loading initial ramdisk ...'
initrd "/$archiso_basedir/boot/intel_ucode.img" "/$archiso_basedir/boot/x86_64/archiso.img"
}
}
if [ "${grub_platform}" == "efi" ]; then
insmod chain
menuentry "Windows repair, $bootmode" {
insmod ntfs
search --fs-uuid --set=root "$windows_uuid"
chainloader /efi/boot/windows.efi
}
menuentry "Memtest" {
chainloader /EFI/memtest.efi
}
menuentry "UEFI Shell v1" {
chainloader /EFI/shellx64_v1.efi
}
menuentry "UEFI Shell v2" {
chainloader /EFI/shellx64_v2.efi
}
menuentry "Reboot to firmware interface" {
fwsetup
}
elif [ "${grub_platform}" == "pc" ]; then
menuentry "Windows repair, $bootmode" {
insmod ntfs
insmod ntldr
search --fs-uuid --set=root "$windows_uuid"
ntldr /bootmgr
}
menuentry "Memtest" {
set root="$archiso_partition"
linux16 "/$archiso_basedir/boot/memtest"
}
menuentry "Boot to stock syslinux" {
insmod chain
search --no-floppy --fs-uuid --set=root "$archiso_uuid"
chainloader +1
}
else
echo "Unsupported boot mode: ${grub_platform}"
fi
menuentry "Shutdown" {
halt
}
menuentry "Reboot" {
reboot
}