Bug 11300
Summary: | Device major device numbers wrong on second cpqarray device during install | ||
---|---|---|---|
Product: | [Retired] Red Hat Linux | Reporter: | Chris Wood <chris> |
Component: | anaconda | Assignee: | Michael Fulbright <msf> |
Status: | CLOSED DUPLICATE | QA Contact: | |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 6.2 | CC: | msf |
Target Milestone: | --- | ||
Target Release: | --- | ||
Hardware: | i386 | ||
OS: | Linux | ||
Whiteboard: | |||
Fixed In Version: | Doc Type: | Bug Fix | |
Doc Text: | Story Points: | --- | |
Clone Of: | Environment: | ||
Last Closed: | 2000-05-10 19:33:02 UTC | Type: | --- |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Chris Wood
2000-05-08 17:44:39 UTC
More info for you - The second controller is a 3200. Both controllers and the system BIOS are patched to the latest available from compaq. The problem is also reproducible with 6.1, using the Compaq supplied boot disk (from the compaq.com server support site). If you don't use this boot disk, then the second controller is not found at all. OK, I've had a dig in the anaconda source, and I've found the problem. In the isys dir, there is a file called devnodes.c, which creates devices based on the device list it's given. The section in that file that deals with ida devices assumes that there will only ever be one controller, thus assigning major 72 regardless. I think something like this patch would fix it: --- anaconda-6.2.2/isys/devnodes.c Fri Jan 7 16:57:15 2000 +++ anaconda-6.2.2/isys/devnodes.c.new Wed May 10 16:09:11 2000 @@ -103,7 +103,11 @@ } else if (!strncmp(devName, "ida/", 4)) { /* Compaq Smart Array "ida/c0d0{p1} */ type = S_IFBLK; - major = 72; /* controller */ + if (devName[5] == '0' ) { + major = 72; /* controller 0 */ + } else { + major = 73; /* controller 1 */ + } minor = (devName[7] - '0') * 16; /* disk */ if (strlen(devName) > 8) /* partition */ minor += atoi(devName + 9); However, I'm having trouble compiling the source so haven't been able to verify as yet. Would appreciate it if you could take a look, verify and get back to me. I really need this resolving asap - I have a large number of these servers to get built as quickly as poss. Cheers, C. |