Skip to content

Instantly share code, notes, and snippets.

@playday3008
Last active June 30, 2021 13:36
Show Gist options
  • Select an option

  • Save playday3008/acfdcecfadeb35b4989e87afdddcf2dd to your computer and use it in GitHub Desktop.

Select an option

Save playday3008/acfdcecfadeb35b4989e87afdddcf2dd to your computer and use it in GitHub Desktop.
rEFInd best configuration for dualboot Ubuntu 20.04 (kernel/GRUB) and Windows 10

You need to replace volume token with your PARTUUID

  • Use this command to find PARTUUID blkid -s PARTUUID -o value /dev/sdXY Where sdXX is your partition where located efi/kernel file

  • Replace here, here, and here

You need to replace "options" token with your options located in /boot/grub/grub.cfg

grub.cfg here only for example, use your own /boot/grub/grub.cfg instead

Also you can uncomment line here to hide about and hidden_tags menu entries

But before we need to hide unused entries, such as

  1. Autodetected boot entries (GRUB, kernels, Windows Bootloader)
  2. MOK Manager
  3. etc.

Don't forget to include this configuration in refind.conf

# Load custom config
include _manual.conf

Icon from Regular theme

timeout 15
use_nvram true
use_graphics_for windows,linux,grub
# Which non-bootloader tools to show on the tools line, and in what
# order to display them:
# shell - the EFI shell (requires external program; see rEFInd
# documentation for details)
# memtest - the memtest86 program, in EFI/tools, EFI/memtest86,
# EFI/memtest, EFI/tools/memtest86, or EFI/tools/memtest
# gptsync - the (dangerous) gptsync.efi utility (requires external
# program; see rEFInd documentation for details)
# gdisk - the gdisk partitioning program
# apple_recovery - boots the Apple Recovery HD partition, if present
# windows_recovery - boots an OEM Windows recovery tool, if present
# (see also the windows_recovery_files option)
# mok_tool - makes available the Machine Owner Key (MOK) maintenance
# tool, MokManager.efi, used on Secure Boot systems
# csr_rotate - adjusts Apple System Integrity Protection (SIP)
# policy. Requires "csr_values" to be set.
# about - an "about this program" option
# hidden_tags - manage hidden tags
# exit - a tag to exit from rEFInd
# shutdown - shuts down the computer (a bug causes this to reboot
# many UEFI systems)
# reboot - a tag to reboot the computer
# firmware - a tag to reboot the computer into the firmware's
# user interface (ignored on older computers)
# fwupdate - a tag to update the firmware; launches the fwupx64.efi
# (or similar) program
# netboot - launch the ipxe.efi tool for network (PXE) booting
# Default is shell,memtest,gdisk,apple_recovery,windows_recovery,mok_tool,about,hidden_tags,shutdown,reboot,firmware,fwupdate
#
#showtools shell, gdisk, memtest, mok_tool, windows_recovery, reboot, exit, firmware, fwupdate
menuentry Ubuntu {
icon /EFI/refind/refind-theme-regular/icons/256-96/os_ubuntu.png
volume 2313a5a5-0492-468e-82ea-c315807a2767
loader @/boot/vmlinuz
initrd @/boot/initrd.img
options "root=UUID=34debc55-8458-4ee8-9f7f-88cc8974f972 ro rootflags=subvol=@ quiet splash vt.handoff=7"
ostype Linux
submenuentry "Recovery mode" {
options "root=UUID=34debc55-8458-4ee8-9f7f-88cc8974f972 ro recovery nomodeset dis_ucode_ldr rootflags=subvol=@"
}
submenuentry "Previous kernel" {
loader @/boot/vmlinuz.old
initrd @/boot/initrd.img.old
}
submenuentry "Previous kernel (Recovery mode)" {
loader @/boot/vmlinuz.old
initrd @/boot/initrd.img.old
options "root=UUID=34debc55-8458-4ee8-9f7f-88cc8974f972 ro recovery nomodeset dis_ucode_ldr rootflags=subvol=@"
}
submenuentry "GRUB" {
volume 5a06f9df-bffc-4c2f-b0fa-5a20c51c82c0
loader /EFI/ubuntu/grubx64.efi
}
}
menuentry "Windows 10" {
volume c6f37e99-5364-4503-8583-1ed000dd6150
loader \EFI\Microsoft\Boot\bootmgfw.efi
ostype Windows
}
#
# DO NOT EDIT THIS FILE
#
# It is automatically generated by grub-mkconfig using templates
# from /etc/grub.d and settings from /etc/default/grub
#
### BEGIN /etc/grub.d/00_header ###
if [ -s $prefix/grubenv ]; then
set have_grubenv=true
load_env
fi
if [ "${initrdfail}" = 2 ]; then
set initrdfail=
elif [ "${initrdfail}" = 1 ]; then
set next_entry="${prev_entry}"
set prev_entry=
save_env prev_entry
if [ "${next_entry}" ]; then
set initrdfail=2
fi
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 initrdfail {
if [ -n "${have_grubenv}" ]; then if [ -n "${partuuid}" ]; then
if [ -z "${initrdfail}" ]; then
set initrdfail=1
if [ -n "${boot_once}" ]; then
set prev_entry="${default}"
save_env prev_entry
fi
fi
save_env initrdfail
fi; fi
}
function recordfail {
set recordfail=1
# GRUB lacks write support for btrfs, so recordfail support is disabled.
}
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 [ x$feature_default_font_path = xy ] ; then
font=unicode
else
insmod part_gpt
insmod btrfs
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 34debc55-8458-4ee8-9f7f-88cc8974f972
else
search --no-floppy --fs-uuid --set=root 34debc55-8458-4ee8-9f7f-88cc8974f972
fi
font="/@/usr/share/grub/unicode.pf2"
fi
if loadfont $font ; then
set gfxmode=auto
load_video
insmod gfxterm
set locale_dir=$prefix/locale
set lang=uk_UA
insmod gettext
fi
terminal_output gfxterm
if [ "${recordfail}" = 1 ] ; then
set timeout=30
else
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=hidden
set timeout=10
# Fallback hidden-timeout code in case the timeout_style feature is
# unavailable.
elif sleep --interruptible 10 ; then
set timeout=0
fi
fi
if [ $grub_platform = efi ]; then
set timeout=30
if [ x$feature_timeout_style = xy ] ; then
set timeout_style=menu
fi
fi
### END /etc/grub.d/00_header ###
### BEGIN /etc/grub.d/05_debian_theme ###
set menu_color_normal=white/black
set menu_color_highlight=black/light-gray
### END /etc/grub.d/05_debian_theme ###
### BEGIN /etc/grub.d/10_linux ###
function gfxmode {
set gfxpayload="${1}"
if [ "${1}" = "keep" ]; then
set vt_handoff=vt.handoff=7
else
set vt_handoff=
fi
}
if [ "${recordfail}" != 1 ]; then
if [ -e ${prefix}/gfxblacklist.txt ]; then
if hwmatch ${prefix}/gfxblacklist.txt 3; then
if [ ${match} = 0 ]; then
set linux_gfx_mode=keep
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=text
fi
else
set linux_gfx_mode=keep
fi
else
set linux_gfx_mode=text
fi
export linux_gfx_mode
menuentry 'Ubuntu' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-simple-34debc55-8458-4ee8-9f7f-88cc8974f972' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 34debc55-8458-4ee8-9f7f-88cc8974f972
else
search --no-floppy --fs-uuid --set=root 34debc55-8458-4ee8-9f7f-88cc8974f972
fi
linux /@/boot/vmlinuz-5.8.0-48-generic root=UUID=34debc55-8458-4ee8-9f7f-88cc8974f972 ro rootflags=subvol=@ quiet splash $vt_handoff
initrd /@/boot/initrd.img-5.8.0-48-generic
}
submenu 'Додаткові параметри для Ubuntu' $menuentry_id_option 'gnulinux-advanced-34debc55-8458-4ee8-9f7f-88cc8974f972' {
menuentry 'Ubuntu, з Linux 5.8.0-48-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-48-generic-advanced-34debc55-8458-4ee8-9f7f-88cc8974f972' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 34debc55-8458-4ee8-9f7f-88cc8974f972
else
search --no-floppy --fs-uuid --set=root 34debc55-8458-4ee8-9f7f-88cc8974f972
fi
echo 'Завантаження Linux 5.8.0-48-generic…'
linux /@/boot/vmlinuz-5.8.0-48-generic root=UUID=34debc55-8458-4ee8-9f7f-88cc8974f972 ro rootflags=subvol=@ quiet splash $vt_handoff
echo 'Завантаження початкового диску даних оперативної пам'\''яті…'
initrd /@/boot/initrd.img-5.8.0-48-generic
}
menuentry 'Ubuntu, з Linux 5.8.0-48-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-48-generic-recovery-34debc55-8458-4ee8-9f7f-88cc8974f972' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 34debc55-8458-4ee8-9f7f-88cc8974f972
else
search --no-floppy --fs-uuid --set=root 34debc55-8458-4ee8-9f7f-88cc8974f972
fi
echo 'Завантаження Linux 5.8.0-48-generic…'
linux /@/boot/vmlinuz-5.8.0-48-generic root=UUID=34debc55-8458-4ee8-9f7f-88cc8974f972 ro recovery nomodeset dis_ucode_ldr rootflags=subvol=@
echo 'Завантаження початкового диску даних оперативної пам'\''яті…'
initrd /@/boot/initrd.img-5.8.0-48-generic
}
menuentry 'Ubuntu, з Linux 5.8.0-45-generic' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-45-generic-advanced-34debc55-8458-4ee8-9f7f-88cc8974f972' {
recordfail
load_video
gfxmode $linux_gfx_mode
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 34debc55-8458-4ee8-9f7f-88cc8974f972
else
search --no-floppy --fs-uuid --set=root 34debc55-8458-4ee8-9f7f-88cc8974f972
fi
echo 'Завантаження Linux 5.8.0-45-generic…'
linux /@/boot/vmlinuz-5.8.0-45-generic root=UUID=34debc55-8458-4ee8-9f7f-88cc8974f972 ro rootflags=subvol=@ quiet splash $vt_handoff
echo 'Завантаження початкового диску даних оперативної пам'\''яті…'
initrd /@/boot/initrd.img-5.8.0-45-generic
}
menuentry 'Ubuntu, з Linux 5.8.0-45-generic (recovery mode)' --class ubuntu --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-5.8.0-45-generic-recovery-34debc55-8458-4ee8-9f7f-88cc8974f972' {
recordfail
load_video
insmod gzio
if [ x$grub_platform = xxen ]; then insmod xzio; insmod lzopio; fi
insmod part_gpt
insmod btrfs
set root='hd0,gpt3'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd0,gpt3 --hint-efi=hd0,gpt3 --hint-baremetal=ahci0,gpt3 34debc55-8458-4ee8-9f7f-88cc8974f972
else
search --no-floppy --fs-uuid --set=root 34debc55-8458-4ee8-9f7f-88cc8974f972
fi
echo 'Завантаження Linux 5.8.0-45-generic…'
linux /@/boot/vmlinuz-5.8.0-45-generic root=UUID=34debc55-8458-4ee8-9f7f-88cc8974f972 ro recovery nomodeset dis_ucode_ldr rootflags=subvol=@
echo 'Завантаження початкового диску даних оперативної пам'\''яті…'
initrd /@/boot/initrd.img-5.8.0-45-generic
}
}
### END /etc/grub.d/10_linux ###
### BEGIN /etc/grub.d/10_linux_zfs ###
### END /etc/grub.d/10_linux_zfs ###
### BEGIN /etc/grub.d/20_linux_xen ###
### END /etc/grub.d/20_linux_xen ###
### BEGIN /etc/grub.d/20_memtest86+ ###
### END /etc/grub.d/20_memtest86+ ###
### BEGIN /etc/grub.d/30_os-prober ###
menuentry 'Windows Boot Manager (на /dev/sdb1)' --class windows --class os $menuentry_id_option 'osprober-efi-C26D-4E81' {
insmod part_gpt
insmod fat
set root='hd1,gpt1'
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root --hint-bios=hd1,gpt1 --hint-efi=hd1,gpt1 --hint-baremetal=ahci1,gpt1 C26D-4E81
else
search --no-floppy --fs-uuid --set=root C26D-4E81
fi
chainloader /efi/Microsoft/Boot/bootmgfw.efi
}
set timeout_style=menu
if [ "${timeout}" = 0 ]; then
set timeout=10
fi
### END /etc/grub.d/30_os-prober ###
### BEGIN /etc/grub.d/30_uefi-firmware ###
menuentry 'UEFI Firmware Settings' $menuentry_id_option 'uefi-firmware' {
fwsetup
}
### END /etc/grub.d/30_uefi-firmware ###
### BEGIN /etc/grub.d/40_custom ###
# This file provides an easy way to add custom menu entries. Simply type the
# menu entries you want to add after this comment. Be careful not to change
# the 'exec tail' line above.
### END /etc/grub.d/40_custom ###
### BEGIN /etc/grub.d/41_custom ###
if [ -f ${config_directory}/custom.cfg ]; then
source ${config_directory}/custom.cfg
elif [ -z "${config_directory}" -a -f $prefix/custom.cfg ]; then
source $prefix/custom.cfg;
fi
### END /etc/grub.d/41_custom ###
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment