]> git.proxmox.com Git - pve-kernel-meta.git/blobdiff - efiboot/functions
efiboot: add manual kernel list
[pve-kernel-meta.git] / efiboot / functions
index 293d4c0f3c1183a25b7fc93ff062e72d05a77d69..34a70426f8a0a2a1fa3d3fe336e1a0e15d384326 100755 (executable)
@@ -4,6 +4,8 @@ set -e
 ESP_LIST="/etc/kernel/pve-efiboot-uuids"
 ESPTYPE='c12a7328-f81f-11d2-ba4b-00a0c93ec93b'
 
+MANUAL_KERNEL_LIST="/etc/kernel/pve-efiboot-manual-kernels"
+
 # relative to the ESP mountpoint
 PMX_ESP_DIR="EFI/proxmox"
 PMX_LOADER_CONF="loader/loader.conf"
@@ -44,9 +46,14 @@ kernel_keep_versions() {
        oldseries="$(echo "$series_metapackages" | head -n2 | tail -n1)"
        oldseries_latest_kernel="$(echo "$sorted_list" | grep -E "^${oldseries}\.[^ ]+-pve" | head -n1 )"
 
+       if [ -e "$MANUAL_KERNEL_LIST" ]; then
+               manual_kernels="$(cat "$MANUAL_KERNEL_LIST")"
+       fi
+
        kernels="$(cat <<-EOF
                $running_version
                $install_version
+               $manual_kernels
                $latest_2_versions
                $series_metapackages
                $oldseries_latest_kernel
@@ -76,3 +83,16 @@ reexec_in_mountns() {
                exit 0
        fi
 }
+
+loop_esp_list() {
+       if [ ! -e ${ESP_LIST} ]; then
+               return 2
+       fi
+
+       cat "${ESP_LIST}" | while IFS= read -r curr_uuid; do
+               if [ -z "$curr_uuid" ]; then
+                       continue
+               fi
+               "$@"
+       done
+}