Update
This commit is contained in:
parent
8995317f56
commit
bf82c46fba
|
@ -0,0 +1,35 @@
|
||||||
|
menuentry "EFI {OSNAME} ({KERNEL}) on Boot volume" {
|
||||||
|
icon /EFI/refind/themes/{THEME}/icons/os_{ICON}.png
|
||||||
|
ostype Linux
|
||||||
|
graphics on
|
||||||
|
|
||||||
|
volume "Boot"
|
||||||
|
loader /{KERNEL_EFI}.efi
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) fallback" {
|
||||||
|
loader /{KERNEL_EFI}-fallback.efi
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) fallback terminal" {
|
||||||
|
loader /{KERNEL_EFI}-fallback-terminal.efi
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL})" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) fallback" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) fallback terminal" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback-terminal.img
|
||||||
|
options "{CMDLINE_TERMINAL}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,25 @@
|
||||||
|
menuentry "EFI {OSNAME} ({KERNEL}) on Boot volume" {
|
||||||
|
icon /EFI/refind/themes/{THEME}/icons/os_{ICON}.png
|
||||||
|
ostype Linux
|
||||||
|
graphics on
|
||||||
|
|
||||||
|
volume "Boot"
|
||||||
|
loader /{KERNEL_EFI}-fallback.efi
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) terminal" {
|
||||||
|
loader /{KERNEL_EFI}-fallback-terminal.efi
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL})" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) terminal" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback-terminal.img
|
||||||
|
options "{CMDLINE_TERMINAL}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
menuentry "EFI {OSNAME} ({KERNEL}) on Boot volume" {
|
||||||
|
icon /EFI/refind/themes/{THEME}/icons/os_{ICON}.png
|
||||||
|
ostype Linux
|
||||||
|
graphics on
|
||||||
|
|
||||||
|
volume "Boot"
|
||||||
|
loader /{KERNEL_EFI}-fallback.efi
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) terminal" {
|
||||||
|
loader /{KERNEL_EFI}-fallback-terminal.efi
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
menuentry "{OSNAME} ({KERNEL}) on Boot volume" {
|
||||||
|
icon /EFI/refind/themes/{THEME}/icons/os_{ICON}.png
|
||||||
|
ostype Linux
|
||||||
|
graphics on
|
||||||
|
|
||||||
|
volume "Boot"
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) terminal" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback-terminal.img
|
||||||
|
options "{CMDLINE_TERMINAL}"
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL})" {
|
||||||
|
loader /{KERNEL_EFI}-fallback.efi
|
||||||
|
initrd
|
||||||
|
options
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) terminal" {
|
||||||
|
loader /{KERNEL_EFI}-fallback-terminal.efi
|
||||||
|
initrd
|
||||||
|
options
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,17 @@
|
||||||
|
menuentry "{OSNAME} ({KERNEL}) on Boot volume" {
|
||||||
|
icon /EFI/refind/themes/{THEME}/icons/os_{ICON}.png
|
||||||
|
ostype Linux
|
||||||
|
graphics on
|
||||||
|
|
||||||
|
volume "Boot"
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) terminal" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback-terminal.img
|
||||||
|
options "{CMDLINE_TERMINAL}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,41 @@
|
||||||
|
menuentry "{OSNAME} ({KERNEL}) on Boot volume" {
|
||||||
|
icon /EFI/refind/themes/{THEME}/icons/os_{ICON}.png
|
||||||
|
ostype Linux
|
||||||
|
graphics on
|
||||||
|
|
||||||
|
volume "Boot"
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) fallback" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) fallback terminal" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback-terminal.img
|
||||||
|
options "{CMDLINE_TERMINAL}"
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL})" {
|
||||||
|
loader /{KERNEL_EFI}.efi
|
||||||
|
initrd
|
||||||
|
options
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) fallback" {
|
||||||
|
loader /{KERNEL_EFI}-fallback.efi
|
||||||
|
initrd
|
||||||
|
options
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) fallback terminal" {
|
||||||
|
loader /{KERNEL_EFI}-fallback-terminal.efi
|
||||||
|
initrd
|
||||||
|
options
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -0,0 +1,35 @@
|
||||||
|
menuentry "EFI {OSNAME} ({KERNEL}) on Boot volume" {
|
||||||
|
icon /EFI/refind/themes/{THEME}/icons/os_{ICON}.png
|
||||||
|
ostype Linux
|
||||||
|
graphics on
|
||||||
|
|
||||||
|
volume "Boot"
|
||||||
|
loader /{KERNEL_EFI}.efi
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) fallback" {
|
||||||
|
loader /{KERNEL_EFI}-fallback.efi
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "EFI {OSNAME} ({KERNEL}) fallback terminal" {
|
||||||
|
loader /{KERNEL_EFI}-fallback-terminal.efi
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL})" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) fallback" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback.img
|
||||||
|
options "{CMDLINE}"
|
||||||
|
}
|
||||||
|
|
||||||
|
submenuentry "{OSNAME} ({KERNEL}) fallback terminal" {
|
||||||
|
loader /{KERNEL_VMLINUZ}
|
||||||
|
initrd /{INITRAMFS}-fallback-terminal.img
|
||||||
|
options "{CMDLINE_TERMINAL}"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
|
@ -82,24 +82,35 @@ else
|
||||||
if [ ! -d "${ESP}/EFI/Linux" ]; then
|
if [ ! -d "${ESP}/EFI/Linux" ]; then
|
||||||
mkdir -p "${ESP}/EFI/Linux"
|
mkdir -p "${ESP}/EFI/Linux"
|
||||||
if [ -d "${ESP}/EFI/linux" ]; then
|
if [ -d "${ESP}/EFI/linux" ]; then
|
||||||
KERNEL_DIR="${ESP}/EFI/linux"
|
KERNEL_DIR_ON_EFI="${ESP}/EFI/linux"
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
KERNEL_DIR="${ESP}/EFI/Linux"
|
KERNEL_DIR_ON_EFI="${ESP}/EFI/Linux"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -d "/boot" ]; then
|
||||||
|
KERNEL_DIR_ON_BOOT="/boot"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Found $KERNEL_DIR"
|
if [ -v KERNEL_DIR_ON_EFI ]; then
|
||||||
|
echo "Found ${KERNEL_DIR_ON_EFI}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ -v KERNEL_DIR_ON_BOOT ]; then
|
||||||
|
echo "Found ${KERNEL_DIR_ON_BOOT}"
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
#theme=$(grep "themes" "/efi/EFI/refind/refind.conf" | cut -d"/" -f2)
|
#theme=$(grep "themes" "/efi/EFI/refind/refind.conf" | cut -d"/" -f2)
|
||||||
|
|
||||||
theme=$(cat "/etc/refind-menu-generator/theme.conf" | awk '{$1=$1;print}')
|
theme=$(cat "/etc/refind-menu-generator/theme.conf" | awk '{$1=$1;print}')
|
||||||
|
|
||||||
if [ -d "$KERNEL_DIR" ]; then
|
if [ -d "${KERNEL_DIR_ON_EFI}" ]; then
|
||||||
|
|
||||||
if [ -f "${ESP}/EFI/Linux/cmdline.txt" ]; then
|
if [ -f "${KERNEL_DIR_ON_EFI}/cmdline.txt" ]; then
|
||||||
cmdline=$(sed -e 's/^[[:space:]]//g' -e 's/[[:space:]]$//g' "${ESP}/EFI/Linux/cmdline.txt" | tr '[:space:]' ' ' | tr -s ' ')
|
cmdline=$(sed -e 's/^[[:space:]]//g' -e 's/[[:space:]]$//g' "${KERNEL_DIR_ON_EFI}/cmdline.txt" | tr '[:space:]' ' ' | tr -s ' ')
|
||||||
|
|
||||||
elif [ -f "/etc/kernel/cmdline" ]; then
|
elif [ -f "/etc/kernel/cmdline" ]; then
|
||||||
cmdline=$(sed -e 's/^[[:space:]]//g' -e 's/[[:space:]]$//g' "/etc/kernel/cmdline" | tr '[:space:]' ' ' | tr -s ' ')
|
cmdline=$(sed -e 's/^[[:space:]]//g' -e 's/[[:space:]]$//g' "/etc/kernel/cmdline" | tr '[:space:]' ' ' | tr -s ' ')
|
||||||
|
@ -126,26 +137,33 @@ if [ -d "$KERNEL_DIR" ]; then
|
||||||
|
|
||||||
template_choice=$(cat "/etc/refind-menu-generator/menu-template.conf" | awk '{$1=$1;print}')
|
template_choice=$(cat "/etc/refind-menu-generator/menu-template.conf" | awk '{$1=$1;print}')
|
||||||
|
|
||||||
if [ ! -f "/etc/refind-menu-generator/${template_choice}.txt" ] || [ "$(ls -l /etc/refind-menu-generator/${template_choice}.txt | awk '{print $5}')" -lt 10 ]; then
|
if [ ! -f "/etc/refind-menu-generator/efi/${template_choice}.txt" ] || [ "$(ls -l /etc/refind-menu-generator/efi/${template_choice}.txt | awk '{print $5}')" -lt 10 ]; then
|
||||||
template="/etc/refind-menu-generator/menu-template.txt"
|
template_on_efi="/etc/refind-menu-generator/efi/menu-template.txt"
|
||||||
else
|
else
|
||||||
template="/etc/refind-menu-generator/${template_choice}.txt"
|
template_on_efi="/etc/refind-menu-generator/efi/${template_choice}.txt"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [ ! -f "/etc/refind-menu-generator/boot/${template_choice}.txt" ] || [ "$(ls -l /etc/refind-menu-generator/boot/${template_choice}.txt | awk '{print $5}')" -lt 10 ]; then
|
||||||
|
template_on_boot="/etc/refind-menu-generator/boot/menu-template.txt"
|
||||||
|
else
|
||||||
|
template_on_boot="/etc/refind-menu-generator/boot/${template_choice}.txt"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
||||||
kernels_list=$(ls -1 "${ESP}/EFI/Linux/" | grep 'linux' | grep -v 'fallback' | grep '\.efi$')
|
|
||||||
if [[ -z "$kernels_list" ]]; then
|
kernels_list_on_efi=$(ls -1 "${KERNEL_DIR_ON_EFI}/" | grep 'linux' | grep -v 'fallback' | grep '\.efi$')
|
||||||
kernels_list=$(ls -1 "${ESP}/EFI/Linux/" | grep "^vmlinuz" | sed "s/vmlinuz-//")
|
if [[ -z "$kernels_list_on_efi" ]]; then
|
||||||
|
kernels_list_on_efi=$(ls -1 "${KERNEL_DIR_ON_EFI}/" | grep "^vmlinuz" | sed "s/vmlinuz-//")
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo -e "KERNELS:\n$kernels_list"
|
echo -e "KERNELS:\n$kernels_list_on_efi"
|
||||||
|
|
||||||
if [[ -z "$kernels_list" ]]; then
|
if [[ -z "$kernels_list_on_efi" ]]; then
|
||||||
echo "ERROR: list of kernels is empty"
|
echo "ERROR: list of kernels is empty"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for i in $kernels_list;
|
for i in $kernels_list_on_efi;
|
||||||
do
|
do
|
||||||
kernel=$(echo "$i" | sed 's/\.efi//g')
|
kernel=$(echo "$i" | sed 's/\.efi//g')
|
||||||
kernel_efi=$kernel
|
kernel_efi=$kernel
|
||||||
|
@ -158,9 +176,42 @@ if [ -d "$KERNEL_DIR" ]; then
|
||||||
initramfs="$initramfs_tpl"
|
initramfs="$initramfs_tpl"
|
||||||
|
|
||||||
echo "OSNAME: $osname; THEME: $theme; ICON: $icon; KERNEL: $kernel; KERNEL_EFI: $kernel_efi; KERNEL_VMLINUZ: $kernel_vmlinuz; INITRAMFS: $initramfs; CMDLINE: $cmdline"
|
echo "OSNAME: $osname; THEME: $theme; ICON: $icon; KERNEL: $kernel; KERNEL_EFI: $kernel_efi; KERNEL_VMLINUZ: $kernel_vmlinuz; INITRAMFS: $initramfs; CMDLINE: $cmdline"
|
||||||
sed -e "s|{OSNAME}|$osname|g" -e "s|{THEME}|$theme|g" -e "s|{ICON}|$icon|g" -e "s|{KERNEL}|$kernel|g" -e "s|{KERNEL_EFI}|$kernel_efi|g" -e "s|{KERNEL_VMLINUZ}|$kernel_vmlinuz|g" -e "s|{INITRAMFS}|$initramfs|g" -e "s|{CMDLINE}|$cmdline|g" -e "s|{CMDLINE_TERMINAL}|$cmdline_terminal|g" "$template" >> "$manual_conf"
|
sed -e "s|{OSNAME}|$osname|g" -e "s|{THEME}|$theme|g" -e "s|{ICON}|$icon|g" -e "s|{KERNEL}|$kernel|g" -e "s|{KERNEL_EFI}|$kernel_efi|g" -e "s|{KERNEL_VMLINUZ}|$kernel_vmlinuz|g" -e "s|{INITRAMFS}|$initramfs|g" -e "s|{CMDLINE}|$cmdline|g" -e "s|{CMDLINE_TERMINAL}|$cmdline_terminal|g" "$template_on_efi" >> "$manual_conf"
|
||||||
done
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
kernels_list_on_boot=$(ls -1 "${KERNEL_DIR_ON_BOOT}/" | grep 'linux' | grep -v 'fallback' | grep '\.efi$')
|
||||||
|
if [[ -z "$kernels_list_on_boot" ]]; then
|
||||||
|
kernels_list_on_boot=$(ls -1 "${KERNEL_DIR_ON_BOOT}/" | grep "^vmlinuz" | sed "s/vmlinuz-//")
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo -e "KERNELS:\n$kernels_list_on_boot"
|
||||||
|
|
||||||
|
if [[ -z "$kernels_list_on_boot" ]]; then
|
||||||
|
echo "ERROR: list of kernels is empty"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
for i in $kernels_list_on_boot;
|
||||||
|
do
|
||||||
|
kernel=$(echo "$i" | sed 's/\.efi//g')
|
||||||
|
kernel_efi=$kernel
|
||||||
|
kernel_vmlinuz="vmlinuz-$kernel"
|
||||||
|
|
||||||
|
osname=$(grep "^NAME=" /etc/os-release | cut -d'=' -f2 | sed -e 's/"//g')
|
||||||
|
icon=$(grep "^ID=" /etc/os-release | cut -d'=' -f2 | sed -e 's/"//g')
|
||||||
|
|
||||||
|
initramfs_tpl=$(echo "initramfs-$kernel" | sed "s/vmlinuz-//g")
|
||||||
|
initramfs="$initramfs_tpl"
|
||||||
|
|
||||||
|
echo "OSNAME: $osname; THEME: $theme; ICON: $icon; KERNEL: $kernel; KERNEL_EFI: $kernel_efi; KERNEL_VMLINUZ: $kernel_vmlinuz; INITRAMFS: $initramfs; CMDLINE: $cmdline"
|
||||||
|
sed -e "s|{OSNAME}|$osname|g" -e "s|{THEME}|$theme|g" -e "s|{ICON}|$icon|g" -e "s|{KERNEL}|$kernel|g" -e "s|{KERNEL_EFI}|$kernel_efi|g" -e "s|{KERNEL_VMLINUZ}|$kernel_vmlinuz|g" -e "s|{INITRAMFS}|$initramfs|g" -e "s|{CMDLINE}|$cmdline|g" -e "s|{CMDLINE_TERMINAL}|$cmdline_terminal|g" "$template_on_boot" >> "$manual_conf"
|
||||||
|
done
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
manual_end_conf=$(mktemp)
|
manual_end_conf=$(mktemp)
|
||||||
|
|
||||||
template_end="/etc/refind-menu-generator/menu-end.txt"
|
template_end="/etc/refind-menu-generator/menu-end.txt"
|
||||||
|
|
Loading…
Reference in New Issue