summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--perl-install/Makefile.config2
-rw-r--r--perl-install/NEWS4
-rw-r--r--perl-install/fs/any.pm16
3 files changed, 18 insertions, 4 deletions
diff --git a/perl-install/Makefile.config b/perl-install/Makefile.config
index cb490ffb4..7e07a7086 100644
--- a/perl-install/Makefile.config
+++ b/perl-install/Makefile.config
@@ -1,5 +1,5 @@
# -*- Makefile -*-
-VERSION:=13.23
+VERSION:=13.24
SUDO = sudo
TMPDIR = /tmp
diff --git a/perl-install/NEWS b/perl-install/NEWS
index 75e32c91f..d027b26f9 100644
--- a/perl-install/NEWS
+++ b/perl-install/NEWS
@@ -1,5 +1,9 @@
+Version 13.24 - 9 May 2010
+
- devices:
o get major/minor of device mapper correctly now that they are links
+- fix creation of device mapper devices in fs::any::prepare_minimal_root
+ (this fixes initrd creation from one if using lvm)
Version 13.23 - 30 April 2010
diff --git a/perl-install/fs/any.pm b/perl-install/fs/any.pm
index 0d8b3ba7d..25784ea98 100644
--- a/perl-install/fs/any.pm
+++ b/perl-install/fs/any.pm
@@ -97,10 +97,20 @@ sub prepare_minimal_root {
eval { fs::mount::mount('none', "$::prefix/sys", 'sysfs') };
eval { fs::mount::usbfs($::prefix) };
- #- needed by lilo
- if (-d '/dev/mapper' && !$::local_install) {
+ #- needed by lilo and mkinitrd
+ if (-d '/dev/mapper') {
my @vgs = map { $_->{VG_name} } @{$all_hds->{lvms}};
- -e "/dev/$_" and cp_af("/dev/$_", "$::prefix/dev") foreach 'mapper', @vgs;
+ foreach my $dev ('mapper', @vgs) {
+ -e "/dev/$dev" or next;
+ cp_af("/dev/$dev", "$::prefix/dev");
+ foreach (all("/dev/$dev")) {
+ -l "/dev/$dev/$_" or next;
+ my $target = readlink "$::prefix/dev/$dev/$_";
+ $target =~ /^\// or $target="/dev/$dev/$target";
+ -e "$::prefix$target" and next;
+ cp_af($target, "$::prefix$target");
+ }
+ }
}
}