more information on my trouble reading CDROM's with hdc=ide-cd. Anybody else?

David Zeuthen david at fubar.dk
Thu Nov 18 15:54:49 UTC 2004


On Thu, 2004-11-18 at 07:55 -0500, Alan Cox wrote:
> Perhaps. The problem is that some of the other file system code looks
> at the _end_ of the disk. Unfortunately CD-R doesn't have an "end" it 
> sort of tails out into no-mans land. 

Really? Because using the BLKGETSIZE64 ioctl() on the device file we get

 667502592 for FC3-i386-gold-disc3
 668524544 for FC3-i386-gold-disc2

Hmm; the ISO files are this size

-rw-r--r--    3 root     root     668520448 Nov  3 17:07 FC3-i386-disc2.iso
-rw-r--r--    3 root     root     667498496 Nov  3 17:08 FC3-i386-disc3.iso

which, respectively, is exactly 4096 bytes (two blocks of 2k) less than
what the ioctl() gives. I wonder why that is; maybe it's just a wild
goose chase, just curious.

> Most drives politely handle such
> requests, some don't. The ide-scsi driver has the needed magic to work 
> around some of this, ide-cd lacks it.
> 
>
> The HAL fix I guess would be to only try iso9660/udf on CD-R/CD-RW media,

Yeah, that would screw some other users though, e.g. people actually put
HFS/HFS+ (Apple install media) and ext2 (e.g. DVD-RAM) on optical discs.

I suppose a better fix is to only look for filesystems that doesn't
require looking at the end of the disk. That would indeed also include
HFS/HFS+ (superblock is at 0x0200 offset like ext3).

Reason we look at the end of the disk is that it's smart to probe for
RAID/LVM1/LVM2 (which has the superblock at the end of the disk) before
anything else as we otherwise might have a false positive. Just think of
the havoc that adding /dev/sda1 being a RAID mirror member and g-v-m
mounting that because it was added to the /etc/fstab. That would not be
nice.

> but it might ultimately be better if we can fix it kernel side.
> 

Yah. Is that hard, e.g. can it be done within a reasonable time frame?
I'd hate to put yet another special case into hal to work around a
kernel bug.

Cheers,
David




More information about the fedora-test-list mailing list