This fixes selecting kernels for manual inclusion in the ESP which do
not come with a "-pve" in name.
It fixes listing, by just printing out the whole list as is. refresh
complains already if there's a kernel selected but no respective
vmlinuz got found. Additionally, we already plainly add the "manual
kernel list" in kernel_keep_versions, but filter then out any kernel
not containing a "-pve" in boot_kernel_list.

But boot_kernel_list should actually only filter out the kernel meta
packages.

So, use a inverse match and check for a /\d+\.\d+/ pattern, this
seems to work well enough.

Note that kernel_keep_versions doesn't picks up non-pve kernels
anyway, so this only really alters manual selection.

Signed-off-by: Thomas Lamprecht <t.lampre...@proxmox.com>
---
 bin/pve-efiboot-tool | 2 +-
 efiboot/functions    | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/bin/pve-efiboot-tool b/bin/pve-efiboot-tool
index 97015f3..eab01d7 100755
--- a/bin/pve-efiboot-tool
+++ b/bin/pve-efiboot-tool
@@ -256,7 +256,7 @@ list_kernels() {
        boot_kernels="$(boot_kernel_list)"
 
        if [ -e "$MANUAL_KERNEL_LIST" ]; then
-               manual_kernels="$(echo "$boot_kernels" | grep -Fx -f 
"$MANUAL_KERNEL_LIST" || true)"
+               manual_kernels="$(cat "$MANUAL_KERNEL_LIST" || true)"
                boot_kernels="$(echo "$boot_kernels" | grep -Fxv -f 
"$MANUAL_KERNEL_LIST" || true)"
        fi
 
diff --git a/efiboot/functions b/efiboot/functions
index b804fb9..72fe15d 100755
--- a/efiboot/functions
+++ b/efiboot/functions
@@ -72,7 +72,7 @@ kernel_keep_versions() {
 boot_kernel_list() {
        list="$(kernel_keep_versions "$@")"
 
-       echo "$list" | grep -E '^[^ ]+-pve' || true
+       echo "$list" | grep -vE '^[0-9]+\.[0-9]+$' || true
 }
 
 warn() {
-- 
2.20.1


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to