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/fs/any.pm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) (limited to 'perl-install/fs') 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