18
18
fi
19
19
20
20
if [[ ${KERNEL_INSTALL_LAYOUT} == " uki" ]]; then
21
- # UKI layout contains only UKIs
22
21
UKI=" ${KERNEL_INSTALL_BOOT_ROOT} /EFI/Linux/${KERNEL_INSTALL_ENTRY_TOKEN} -${KERNEL_VERSION} .efi"
23
22
24
23
if [[ ${COMMAND} == add ]]; then
@@ -41,79 +40,61 @@ if [[ ${KERNEL_INSTALL_LAYOUT} == "uki" ]]; then
41
40
kernel-bootcfg ${LOGLEVEL} --remove-uki " ${UKI} " || exit 1
42
41
fi
43
42
elif [[ ${KERNEL_INSTALL_LAYOUT} == " efistub" ]]; then
44
- KERNEL_IMAGE=" ${KERNEL_INSTALL_BOOT_ROOT} /EFI/Gentoo/kernel-${KERNEL_VERSION} -plain.efi"
45
- UKI=" ${KERNEL_INSTALL_BOOT_ROOT} /EFI/Gentoo/kernel-${KERNEL_VERSION} .efi"
43
+ KERNEL_IMAGE=" ${KERNEL_INSTALL_BOOT_ROOT} /EFI/Gentoo/kernel-${KERNEL_VERSION} .efi"
46
44
INITRD=" ${KERNEL_INSTALL_BOOT_ROOT} /EFI/Gentoo/initramfs-${KERNEL_VERSION} .img"
47
45
48
46
if [[ ${COMMAND} == add ]]; then
47
+ if [[ -f ${KERNEL_IMAGE} ]]; then
48
+ echo " Kernel image not found, exiting"
49
+ exit 1
50
+ fi
51
+
49
52
KERNEL_BOOTCFG_ARGS=(
50
53
${LOGLEVEL}
51
54
--once
52
55
)
53
56
54
- if [[ -f ${UKI} ]]; then
55
- PARTLABEL=" $( df ${UKI} --output=source | tail -1 | xargs -r lsblk --output=PARTLABEL --noheadings) "
56
- if [[ -n ${PARTLABEL} ]]; then
57
- TITLE=" ${KERNEL_VERSION} (UKI) on ${PARTLABEL} "
58
- else
59
- TITLE=" ${KERNEL_VERSION} (UKI)"
60
- fi
61
-
62
- KERNEL_BOOTCFG_ARGS+=(
63
- --add-uki " ${UKI} "
64
- --title " ${TITLE} "
65
- )
66
-
67
- [[ " ${KERNEL_INSTALL_VERBOSE} " -gt 0 ]] && echo " Adding ${UKI} to UEFI boot entries"
68
- elif [[ -f ${KERNEL_IMAGE} ]]; then
69
- # From 90-loadentry.install
70
- if [[ -n " ${KERNEL_INSTALL_CONF_ROOT} " ]]; then
71
- if [[ -f " ${KERNEL_INSTALL_CONF_ROOT} /cmdline" ]]; then
72
- BOOT_OPTIONS=" $( tr -s " ${IFS} " ' ' < " ${KERNEL_INSTALL_CONF_ROOT} /cmdline" ) "
73
- fi
74
- elif [[ -f /etc/kernel/cmdline ]]; then
75
- BOOT_OPTIONS=" $( tr -s " ${IFS} " ' ' < /etc/kernel/cmdline) "
76
- elif [[ -f /usr/lib/kernel/cmdline ]]; then
77
- BOOT_OPTIONS=" $( tr -s " ${IFS} " ' ' < /usr/lib/kernel/cmdline) "
78
- else
79
- BOOT_OPTIONS=" $( tr -s " ${IFS} " ' \n' < /proc/cmdline | grep -ve ' ^BOOT_IMAGE=' -e ' ^initrd=' | tr ' \n' ' ' ) "
80
- fi
81
-
82
- # Append initramfs to cmdline if it exists
83
- if [[ -f ${INITRD} ]]; then
84
- INITRD_EFI_PATH=" ${INITRD# ${KERNEL_INSTALL_BOOT_ROOT} } "
85
- INITRD_EFI_PATH_DOS=" ${INITRD_EFI_PATH// \/ / \\ } "
86
- BOOT_OPTIONS=" ${BOOT_OPTIONS} initrd=${INITRD_EFI_PATH_DOS} "
87
- fi
88
-
89
- if [[ -n ${BOOT_OPTIONS} ]]; then
90
- KERNEL_BOOTCFG_ARGS+=( --cmdline " ${BOOT_OPTIONS} " )
57
+ # From 90-loadentry.install
58
+ if [[ -n " ${KERNEL_INSTALL_CONF_ROOT} " ]]; then
59
+ if [[ -f " ${KERNEL_INSTALL_CONF_ROOT} /cmdline" ]]; then
60
+ BOOT_OPTIONS=" $( tr -s " ${IFS} " ' ' < " ${KERNEL_INSTALL_CONF_ROOT} /cmdline" ) "
91
61
fi
62
+ elif [[ -f /etc/kernel/cmdline ]]; then
63
+ BOOT_OPTIONS=" $( tr -s " ${IFS} " ' ' < /etc/kernel/cmdline) "
64
+ elif [[ -f /usr/lib/kernel/cmdline ]]; then
65
+ BOOT_OPTIONS=" $( tr -s " ${IFS} " ' ' < /usr/lib/kernel/cmdline) "
66
+ else
67
+ BOOT_OPTIONS=" $( tr -s " ${IFS} " ' \n' < /proc/cmdline | grep -ve ' ^BOOT_IMAGE=' -e ' ^initrd=' | tr ' \n' ' ' ) "
68
+ fi
92
69
93
- PARTLABEL= " $( df ${KERNEL_IMAGE} --output=source | tail -1 | xargs -r lsblk --output=PARTLABEL --noheadings ) "
94
- if [[ -n ${PARTLABEL } ]]; then
95
- TITLE =" ${KERNEL_VERSION} (plain) on ${PARTLABEL }"
96
- else
97
- TITLE =" ${KERNEL_VERSION} (plain) "
98
- fi
70
+ # Append initramfs to cmdline if it exists
71
+ if [[ -f ${INITRD } ]]; then
72
+ INITRD_EFI_PATH =" ${INITRD # ${KERNEL_INSTALL_BOOT_ROOT} } "
73
+ INITRD_EFI_PATH_DOS= " ${INITRD_EFI_PATH // \/ / \\ } "
74
+ BOOT_OPTIONS =" ${BOOT_OPTIONS} initrd= ${INITRD_EFI_PATH_DOS} "
75
+ fi
99
76
100
- KERNEL_BOOTCFG_ARGS+=(
101
- --add-uki " ${KERNEL_IMAGE} "
102
- --title " ${TITLE} "
103
- )
77
+ if [[ -n ${BOOT_OPTIONS} ]]; then
78
+ KERNEL_BOOTCFG_ARGS+=( --cmdline " ${BOOT_OPTIONS} " )
79
+ fi
104
80
105
- [[ " ${KERNEL_INSTALL_VERBOSE} " -gt 0 ]] && echo " Adding ${KERNEL_IMAGE} to UEFI boot entries with cmdline ${BOOT_OPTIONS} "
81
+ PARTLABEL=" $( df ${KERNEL_IMAGE} --output=source | tail -1 | xargs -r lsblk --output=PARTLABEL --noheadings) "
82
+ if [[ -n ${PARTLABEL} ]]; then
83
+ TITLE=" ${KERNEL_VERSION} (plain) on ${PARTLABEL} "
106
84
else
107
- echo " No kernel image found, exiting"
108
- exit 1
85
+ TITLE=" ${KERNEL_VERSION} (plain)"
109
86
fi
110
87
88
+ KERNEL_BOOTCFG_ARGS+=(
89
+ --add-uki " ${KERNEL_IMAGE} "
90
+ --title " ${TITLE} "
91
+ )
92
+
93
+ [[ " ${KERNEL_INSTALL_VERBOSE} " -gt 0 ]] && echo " Adding ${KERNEL_IMAGE} to UEFI boot entries with cmdline ${BOOT_OPTIONS} "
111
94
kernel-bootcfg " ${KERNEL_BOOTCFG_ARGS[@]} " || exit 1
112
95
elif [[ ${COMMAND} == remove ]]; then
113
- [[ " ${KERNEL_INSTALL_VERBOSE} " -gt 0 ]] && echo " Removing ${UKI} from UEFI boot entries"
114
- kernel-bootcfg ${LOGLEVEL} --remove-uki " ${UKI} "
115
96
[[ " ${KERNEL_INSTALL_VERBOSE} " -gt 0 ]] && echo " Removing ${KERNEL_IMAGE} from UEFI boot entries"
116
- kernel-bootcfg ${LOGLEVEL} --remove-uki " ${KERNEL_IMAGE} "
97
+ kernel-bootcfg ${LOGLEVEL} --remove-uki " ${KERNEL_IMAGE} " || exit 1
117
98
fi
118
99
else
119
100
exit 0
0 commit comments