Description of problem:
anaconda appears to be unable to find existing root partitions if the root partition exists on a degraded RAID1 array. While all kinds of partitioning scenarios are possible, the simplest use case would be 2 identically sized hard drives configured with RAID1 for hardware redundancy. If one of the hard drives is removed or fails, the following two issues manifest themselves:
1. The "rescue" mode will fail to find the root partition, limiting its usefulness.
2. Choosing "Install or upgrade" from the boot prompt will proceed without informing the user that the currently installed system is "upgradeable", because anaconda does not detect the root partition.
All the members must be present or else the whole array is not considered (in storage/devicetree.py:2028):
# remove md array devices for which we did not find all members
for array in self.getDevicesByType("mdarray"):
if array.memberDevices > len(array.parents):
Perhaps the above logic could be made optional, could log a warning stating that the array is degraded, or could compare members found with the minimum required to construct the array (using memberDevices-1 in the above comparison perhaps).
Version-Release number of selected component (if applicable):
Originally detected on CentOS 6.2 x86 with anaconda 13.21.149.
Verified on Red Hat Enterprise Linux 6.3 BETA x86 with anaconda 13.21.167.
Steps to Reproduce:
1. Install Red Hat Enterprise Linux 6 on a physical or virtual server with 2 hard drives, using RAID1 for the root partition.
2. Remove one of the RAID1 member drives.
3a. Boot from the Red Hat Enterprise Linux 6 DVD, and use the "rescue" mode.
3b. Boot from the Red Hat Enterprise Linux 6 DVD, and attempt an upgrade.
No root partition is found. System is not upgradeable using anaconda.
Rescue mode should discover the root partition (even though it's degraded), and mount the filesystem(s) under /mnt/sysimage.
The anaconda upgrade should detect the currently installed system (with the product version), and confirm whether a fresh install or upgrade is desired.
Created attachment 580034 [details]
Proposed patch to detect degraded RAID1 arrays in anaconda
A quick patch to devicetree.py to handle the simple degraded RAID1 case.
Since RHEL 6.3 External Beta has begun, and this bug remains
unresolved, it has been rejected as it is not proposed as
exception or blocker.
Red Hat invites you to ask your support representative to
propose this request, if appropriate and relevant, in the
next release of Red Hat Enterprise Linux.
*** This bug has been marked as a duplicate of bug 129306 ***
(In reply to comment #4)
> *** This bug has been marked as a duplicate of bug 129306 ***
This is not a duplicate. Bug 129306 is a feature request asking for one disk RAID install. This is a bug report, saying that upgrade does not work correctly if one disk has failed.
Bug 129306 does not address the case of "rescue mode" failing to detect a degraded RAID1 installation -- a more severe limitation, in my opinion.
Degraded RAID is not supported under any installation use cases.
Rescue Mode is a different situation. Rescue Mode uses firstaidkit, which is a separate project from anaconda that can be extended via other plugins. If you want to write a degraded RAID plugin for firstaidkit and submit that in Fedora, we won't stop you.