summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2005-03-18 15:21:07 +0000
committerPascal Rigaux <pixel@mandriva.com>2005-03-18 15:21:07 +0000
commit7cd16e1b1c1ddd916e09ff19c742dec1aa754389 (patch)
tree874a59e23c4932dd084d4c3d18333b0f62cb9ba1
parentd4a5720db9e6fb3d446c9906271ea77bc0e24ab1 (diff)
downloaddrakx-7cd16e1b1c1ddd916e09ff19c742dec1aa754389.tar
drakx-7cd16e1b1c1ddd916e09ff19c742dec1aa754389.tar.gz
drakx-7cd16e1b1c1ddd916e09ff19c742dec1aa754389.tar.bz2
drakx-7cd16e1b1c1ddd916e09ff19c742dec1aa754389.tar.xz
drakx-7cd16e1b1c1ddd916e09ff19c742dec1aa754389.zip
handle grub file names that do not correspond to a mounted filesystem (bugzilla #14410)
-rw-r--r--perl-install/bootloader.pm19
1 files changed, 14 insertions, 5 deletions
diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm
index 5c29cbc96..6049b7ee0 100644
--- a/perl-install/bootloader.pm
+++ b/perl-install/bootloader.pm
@@ -1200,9 +1200,13 @@ sub grub2dev {
sub grub2file {
my ($grub_file, $grub2dev, $fstab) = @_;
if (my ($device, $rel_file) = grub2dev_and_file($grub_file, $grub2dev)) {
- my $part = fs::get::device2part($device, $fstab) or log::l("ERROR: unknown device $device (computed from $grub_file)");
- my $mntpoint = $part->{mntpoint} || '';
- ($mntpoint eq '/' ? '' : $mntpoint) . '/' . $rel_file;
+ if (my $part = fs::get::device2part($device, $fstab)) {
+ my $mntpoint = $part->{mntpoint} || '';
+ ($mntpoint eq '/' ? '' : $mntpoint) . '/' . $rel_file;
+ } else {
+ log::l("ERROR: unknown device $device (computed from $grub_file)");
+ $grub_file;
+ }
} else {
$grub_file;
}
@@ -1222,8 +1226,13 @@ sub write_grub {
}
my $file2grub = sub {
- my ($part, $file) = fs::get::file2part($fstab, $_[0], 'keep_simple_symlinks');
- device2grub($part, \@sorted_hds) . $file;
+ my ($file) = @_;
+ if ($file =~ m!^\(.*\)/!) {
+ $file; #- it's already in grub format
+ } else {
+ my ($part, $rel_file) = fs::get::file2part($fstab, $_[0], 'keep_simple_symlinks');
+ device2grub($part, \@sorted_hds) . $rel_file;
+ }
};
{
my @conf;