From cb1a0048f0f4d967705afdd4f2d78f0a8977bb22 Mon Sep 17 00:00:00 2001 From: Pascal Terjan Date: Sun, 9 May 2010 21:09:29 +0000 Subject: fix creation of device mapper devices in fs::any::prepare_minimal_root (this fixes initrd creation from one if using lvm) --- perl-install/Makefile.config | 2 +- perl-install/NEWS | 4 ++++ perl-install/fs/any.pm | 16 +++++++++++++--- 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"); + } + } } } -- cgit v1.2.1