From ca5c66da34ab81f01d93fa91db1431da71a34991 Mon Sep 17 00:00:00 2001 From: Thierry Vignaud Date: Thu, 19 Apr 2012 18:31:48 +0000 Subject: (detect_during_install) stop all inactive raids before initializing RAIDs (thus fixing installer not offering to upgrade RAID installs) rationale: udev starts raids early but fails because modules (especially personality ones) are not yet loaded; thus raids remains inactive ("md: personality for level 1 is not loaded!") regression introduced when swtiching to udev and including its rules since it works smoothly with rescue, I suspect the cause is in 60-persistent-storage.rules which is included in installer but not in rescue --- perl-install/install/NEWS | 3 +++ perl-install/raid.pm | 5 +++++ 2 files changed, 8 insertions(+) diff --git a/perl-install/install/NEWS b/perl-install/install/NEWS index 6f2ea446e..d88e0b542 100644 --- a/perl-install/install/NEWS +++ b/perl-install/install/NEWS @@ -1,4 +1,7 @@ - fix a crash when package state is empty (mga#5487) +- fix not offering to upgrade RAID installs + (udev was enabling RAIDs early but leaved them in inactive mode + due to not yet loaded personality modules) - when selecting where ro install bootloader, display mountpoint if available, and size+fs_type if we have nothing (mga#5460) diff --git a/perl-install/raid.pm b/perl-install/raid.pm index 8e551a888..cc06411e1 100644 --- a/perl-install/raid.pm +++ b/perl-install/raid.pm @@ -189,6 +189,11 @@ sub detect_during_install { foreach (@{allmodules()}) { eval { modules::load($_) }; } + + # udev may have started raids but failed due to not yet loaded modules and + # they remains inactive ("md: personality for level 1 is not loaded!") + stop_inactive_mds(); + detect_during_install_once(@parts); detect_during_install_once(@parts) if active_mds(); #- try again to detect RAID 10 stop_inactive_mds(); -- cgit v1.2.1