FC3Test2 I2O install problem (anaconda)

Dave dave at alfar.co.uk
Thu Sep 23 07:42:04 UTC 2004


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.

-- 
David Zambonini





More information about the fedora-test-list mailing list