Bug 123249

Summary: Does not include cciss devices in device.map
Product: [Fedora] Fedora Reporter: Mark Seger <mjseger>
Component: grubAssignee: Peter Jones <pjones>
Status: CLOSED CURRENTRELEASE QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: rawhideCC: wtogami
Target Milestone: ---   
Target Release: ---   
Hardware: i686   
OS: Linux   
Whiteboard: FC3
Fixed In Version: 0.95-4 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2005-10-05 15:10:36 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 Mark Seger 2004-05-14 19:45:45 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.6)
Gecko/20040113

Description of problem:
If one requests grub to generate a new device.map file and the machine
has a SmartArray Controller, which names its devices in /dev/cciss/c0d0,
the resultant file only contains
(fd0) /dev/fd0


Version-Release number of selected component (if applicable):
grub-0.94-4

How reproducible:
Always

Steps to Reproduce:
1.grub --device-file=/tmp/foo  (where foo does not exist)
2.
3.
    

Actual Results:  file only contains
(fd0)  /dev/fd0


Expected Results:  (fd0)  /dev/fd0
(hd0)  /dev/cciss/c0d0


Additional info:

whatever anaconda does, it DOES populate /boot/grub/device.map
correctly as can be seen on any successfully installed system.

Comment 1 Mark Seger 2004-05-18 13:18:20 UTC
I found the source of the problem...

In the module lib/device.c, the section of code that checks for SCSI
disks, calls the function get_scsi_disk_name(), which in turn tries to
find all the scsi devices with the name of /dev/sda-p and therefore
never sees the cciss devices, which is why nothing ever gets written
to the device.map file.

To test my theory I changed get_scsi_disk_name to look for SCSI
devices with the name format from:

  sprintf (name, "/dev/sd%c", unit + 'a');

to:

  sprintf (name, "/dev/cciss/c0d%c", unit + '0');

The first time I tried this my system crashed because it couldn't
handle 16 device names, so I changed the look calling this to only
look at devices 0,1 and it created the following device map:

(fd0)   /dev/fd0
(hd0)   /dev/cciss/c0d0
(hd1)   /dev/cciss/c0d1

It feels like the thing to do is build a new function called something
like get_cciss_disk_name and call it in addition to the
get_scsi_disk_name with the appropriate look counter.

If there is anything more I can provide, let me know...

Comment 2 Warren Togami 2004-10-30 11:21:21 UTC
http://testing.fedora.redhat.com/tree/
Is this report still an issue in RHEL4 beta1 or beta2, or FC3?  Try
the FC3 RC install from the URL above.

Is Bug #125808 related to this issue?

Comment 3 Jeremy Katz 2004-11-30 22:40:45 UTC
Fixed in grub-0.95-4 and later 

Comment 8 Johnray Fuller 2005-10-08 01:12:40 UTC
I believe this bug correlates to the following in the changelog:

* Mon Aug 01 2005 Peter Jones <pjones> - 0.93-4.8

- minor fix to the --recheck fix.

So if this is the case, this bug should be closed.

J