From 1ebb964fd5969adc53f26f5b8a12a728fc3027cf Mon Sep 17 00:00:00 2001 From: Pascal Rigaux Date: Mon, 5 Jul 2004 02:23:37 +0000 Subject: drop "other" entries in grub conf when the device is unknown --- perl-install/bootloader.pm | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'perl-install/bootloader.pm') diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm index e0cc41c2a..db9030ad1 100644 --- a/perl-install/bootloader.pm +++ b/perl-install/bootloader.pm @@ -1140,11 +1140,11 @@ sub write_grub { }; foreach (@{$bootloader->{entries}}) { - push @conf, "\ntitle $_->{label}"; + my $title = "\ntitle $_->{label}"; if ($_->{type} eq "image") { my $vga = $_->{vga} || $bootloader->{vga}; - push @conf, + push @conf, $title, join(' ', 'kernel', $file2grub->($_->{kernel_or_dev}), if_($_->{root}, $_->{root} =~ /loop7/ ? "root=707" : "root=$_->{root}"), #- special to workaround bug in kernel (see #ifdef CONFIG_BLK_DEV_LOOP) $_->{append}, @@ -1152,7 +1152,12 @@ sub write_grub { if_($vga && $vga ne "normal", "vga=$vga")); push @conf, "initrd " . $file2grub->($_->{initrd}) if $_->{initrd}; } else { - push @conf, "root " . device_string2grub($_->{kernel_or_dev}, \@legacy_floppies, \@sorted_hds); + my $dev = eval { device_string2grub($_->{kernel_or_dev}, \@legacy_floppies, \@sorted_hds) }; + if (!$dev) { + log::l("dropping bad entry $_->{label} for unknown device $_->{kernel_or_dev}"); + next; + } + push @conf, $title, "root $dev"; if ($_->{table}) { if (my $hd = fs::device2part($_->{table}, \@sorted_hds)) { -- cgit v1.2.1