summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2004-02-13 15:42:53 +0000
committerPascal Rigaux <pixel@mandriva.com>2004-02-13 15:42:53 +0000
commit67daf811e1f9a77affe5531c5dc2f0f08d3695c9 (patch)
treedd4ffff91a7de48973130fa37652283a68c426b5
parent195c6659105c86fd51969377d607e76b4e0b0423 (diff)
downloaddrakx-67daf811e1f9a77affe5531c5dc2f0f08d3695c9.tar
drakx-67daf811e1f9a77affe5531c5dc2f0f08d3695c9.tar.gz
drakx-67daf811e1f9a77affe5531c5dc2f0f08d3695c9.tar.bz2
drakx-67daf811e1f9a77affe5531c5dc2f0f08d3695c9.tar.xz
drakx-67daf811e1f9a77affe5531c5dc2f0f08d3695c9.zip
create read_grub_device_map()
-rw-r--r--perl-install/bootloader.pm7
1 files changed, 6 insertions, 1 deletions
diff --git a/perl-install/bootloader.pm b/perl-install/bootloader.pm
index 5d5356a96..3b741825f 100644
--- a/perl-install/bootloader.pm
+++ b/perl-install/bootloader.pm
@@ -1045,13 +1045,18 @@ sub dev2grub {
"($grub" . ($3 && "," . ($3 - 1)) . ")";
}
+sub read_grub_device_map() {
+ my %grub2dev = map { m!\((.*)\) /dev/(.*)$! } cat_("$::prefix/boot/grub/device.map");
+ \%grub2dev;
+}
+
sub grub2dev {
my ($device, $o_block_device) = @_;
my ($dev, $part) = ($1 . ")", $2) if $device =~ s/(\([^,]*?)(?:,(.*))?\)//;
undef $part if $o_block_device;
$part++ if defined $part; # grub wants "(hdX,Y)" where lilo just want "hdY+1"
$dev =~ s/,[^)]*//;
- my $new_dev = +{ map { chomp; s/()//g; split(/\s+/, $_, 2) } cat_("$::prefix/boot/grub/device.map") }->{$dev} . $part;
+ my $new_dev = '/dev/' . read_grub_device_map()->{$dev} . $part;
wantarray() ? ($device, $new_dev) : $new_dev;
}