diff options
author | Scott Moser <smoser@brickies.net> | 2017-01-12 09:11:09 -0500 |
---|---|---|
committer | Scott Moser <smoser@brickies.net> | 2017-01-20 10:12:29 -0500 |
commit | 399911e07fa11a95a4c912e6f7c047033321f7d5 (patch) | |
tree | 92ef37075bb6ca1221664b697c0dcd2fc0dbe3b2 | |
parent | 3305c052862dabef40a5c7d649b6a88ca12bec6d (diff) | |
download | vyos-cloud-init-399911e07fa11a95a4c912e6f7c047033321f7d5.tar.gz vyos-cloud-init-399911e07fa11a95a4c912e6f7c047033321f7d5.zip |
fix update-grub-legacy-ec2 to check config for CONFIG_XEN=y
Instead of relying on name and version based checking,
update-grub-legacy-ec2 will now look at the config for a kernel
if it is available to determine if it should be considered a xen kernel.
LP: #1379080
-rwxr-xr-x | debian/update-grub-legacy-ec2 | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/debian/update-grub-legacy-ec2 b/debian/update-grub-legacy-ec2 index 337757b3..e48f4edb 100755 --- a/debian/update-grub-legacy-ec2 +++ b/debian/update-grub-legacy-ec2 @@ -1398,8 +1398,23 @@ fi if ! type is_xen_kernel >/dev/null 2>&1; then + check_xen_config_for_kernel() { + # input is like /boot/vmlinuz-2.6.35-13-virtual + # expected config path is /boot/config-2.6.35-13-virtual + local kernel="$1" config="" dir="" bname="" + dir=${kernel%/*} + [ "$dir" = "$kernel"] && dir="." + bname=${kernel##*/} + config="$dir/config-${bname#*-}" + [ -f "$config" ] || return 1 + grep -q CONFIG_XEN=y "$config" + } + is_xen_kernel() { # input is like /boot/vmlinuz-2.6.35-13-virtual + # return whether or not this kernel is xen bootable. + check_xen_config_for_kernel "$1" && return 0 + # get the version string out of it. local ver_flavor=""; ver_flavor="${1##*vmlinuz-}" @@ -1419,6 +1434,9 @@ if ! type is_xen_kernel >/dev/null 2>&1; then fi for kern in /boot/vmlinuz-*; do + case "$kern" in + *.signed) continue;; + esac is_xen_kernel "${kern}" && xen_verlist="${xen_verlist} ${kern#/boot/vmlinuz-}" done |