Re: [PATCH] make kernel ignore bogus partitions

From: Phillip Susi
Date: Mon Oct 30 2006 - 14:45:16 EST


It looks like this patch got merged in to only warn about partitions going beyond the end of the device. What still concerns me is that I ( and others ) get a lot of IO error kernel messages during boot because we boot from a raid0 and the first disk in the set appears to contain a valid partition table that lists partitions larger than the single disk ( since the partitions span both disks ). This causes the kernel to complain when it probes the partitions as it tries to read beyond the end of the device.

The arguments in this thread for not discarding such partitions out of hand make sense to me, but I wonder: why does the kernel complain about IO errors to the disk when it KNOWS it is making an invalid request ( to sectors beyond the end of the device )? Attempting the IO anyhow makes sense in a way if sometimes the kernel can detect the size wrongly, but if the IO fails, maybe the error message should be suppressed if it is beyond the detected end of device?


Jan Engelhardt wrote:
Perhaps the kernel should try reading beyond the ends of disks when it detects them, so that it can determine if there's actually available storage there, and automatically increase the size if there is? Or, at least, it could check whether the medium actually goes out to the point the partition table implies, and suppress the I/O error if the disk actually ends where it claims to.

Sounds like a good idea. In fact, I had miscreated a sun disklabel on a disk because it has a slightly different notion of cylinders that I am used to from x86; IOW:

dmesg:
SCSI device sdb: 35378533 512-byte hdwr sectors (18114 MB)

fdisk:
Disk /dev/sdb (Sun disk label): 19 heads, 248 sectors, 7200 rpm
7508 cylinders, 2 alternate cylinders, 7510 physical cylinders
0 extra sects/cyl, interleave 1:1
(should have been 7506 cyl, 2 alt, 7508 phys)

And Solaris rightfully barfs about it when scanning disks,
because 7510*19*248 > 35378533. Linux keeps silent,
and I am not sure if I have a silent data corruption there (currently not as it seems).
(Since it's just a test box ATM, it's not critical.)


Jan Engelhardt

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/