Not kernel related this time!
Device inodes are not being created properly by anaconda, instead of:
/dev/i2o/hda 80, 0 /dev/i2o/hda1 80, 1 ... /dev/i2o/hda9 80, 9
I'm seeing:
/dev/i2o/hda 80, 0 /dev/i2o/hdap1 80, 0 ... /dev/i2o/hdap9 80, 0
causing the install to fail with no hard drives found. Creating the devices manually allows the install to proceed as normal:
mknod /dev/i2o/hda1 b 80 1 mknod /dev/i2o/hda2 b 80 2 ... mknod /dev/i2o/hda9 b 80 9
Technical discussion below - should I take this across to anaconda-devel and/or bugzilla, or is a relevant party listening in?
isys/devnodes.c, devMakeInode() cannot determine minor device number since devName[7] is always 'p' - Assuming fsset.py formatDevice() is correct, I believe (UNTESTED!) the bug is in loader2/getparts.c, isPartitionName():
(1) Either do this:
--- loader2/getparts.c 2004-09-23 01:48:30.000000000 +0100 +++ loader2/getparts.c 2004-09-23 01:48:53.000000000 +0100 @@ -32,7 +32,7 @@ return 0;
/* if it has a '/' in it then treat it specially */ - if (strchr(pname, '/') && !strstr(pname, "iseries")) { + if (strchr(pname, '/') && !strstr(pname, "iseries") && !strstr(pname, "i2o")) { /* assume its either a /dev/ida/ or /dev/cciss device */ /* these have form of c?d?p? if its a partition */ return strchr(pname, 'p') != NULL;
(2) Or instead of excluding devices that don't have the form c?d?p?, why not just include those that do?:
--- loader2/getparts.c 2004-09-23 01:48:30.000000000 +0100 +++ loader2/getparts.c 2004-09-23 01:53:40.000000000 +0100 @@ -32,7 +32,7 @@ return 0;
/* if it has a '/' in it then treat it specially */ - if (strchr(pname, '/') && !strstr(pname, "iseries")) { + if (strstr(pname, "ida/") || strstr(pname, "cciss/")) { /* assume its either a /dev/ida/ or /dev/cciss device */ /* these have form of c?d?p? if its a partition */ return strchr(pname, 'p') != NULL;
(1) is less likely to break existing behaviour, (2) seems more sensible (but still ugly in the long term) - take your pick. NB - I've not had a chance to rebuild anaconda to test this yet since I'm currently without a suitable build platform.