From 35896e59866acf39532b41f493697174ddeee265 Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Thu, 11 Aug 2022 10:44:13 +0100 Subject: bootloader: don't completely remove failsafe/nonfb entries on upgrade. bootloader::suggest() removes any failsafe and nonfb entries for old kernels on the assumption it will then add them for a newer kernel. This is particularly a problem when using rEFInd, where we only keep the entries for the default (unversioned) kernel, but would also eliminate the failsafe/nonfb entries when using the installer upgrade option to quickly repair the bootloader. --- perl-install/bootloader.pm | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'perl-install/bootloader.pm') diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index b3156ddff..44376db2b 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -1369,7 +1369,9 @@ sub suggest { @kernels = grep { !$old_kernels{$_->{version}} } @kernels; #- remove existing failsafe and linux-nonfb, do not care if the previous one was modified by the user? - @{$bootloader->{entries}} = grep { !member($_->{label}, qw(failsafe linux-nonfb)) } @{$bootloader->{entries}}; + #- but only if we are going to add new ones. + @{$bootloader->{entries}} = grep { !member($_->{label}, qw(failsafe linux-nonfb)) } @{$bootloader->{entries}} + if @kernels; foreach my $kernel (@kernels) { my $e = add_kernel($bootloader, $kernel, -- cgit v1.2.1