Re: [bug, 2.5.29, (not IDE)] partition table (not) corruption?

From: Marcin Dalecki (dalecki@evision.ag)
Date: Thu Aug 08 2002 - 03:42:54 EST


Uz.ytkownik Ingo Molnar napisa?:
> On Thu, 8 Aug 2002, Marcin Dalecki wrote:
>
>
>>>>LILO without "linear" or "lba32" is inherently broken: it will talk CHS
>>>>at boot time to the BIOS and hence needs a geometry and install time,
>>>>and nobody knows the geometry required. So, if LILO doesnt break, this
>>>>is pure coincidence.
>>>
>>>
>>>well, lilo without linear worked for like years on this box ...
>>
>>You have to take in to account that by creating a new kernel image
>>you are storing it sometimes after a long long time at perhaps maybe
>>another block group far away. This is becouse ext2 suddenly may feel
>>like doing so...And surprisingly you have to teach lilo about the new
>>far away sectors becouse basic C/H/S addressing can't reach them
>>anylonger. Been there seen that frequently enough.
>
>
> this particular testbox has seen *thousands* of development kernels of all
> sizes, and i often have filled up the complete /boot partition. It is very
> unlikely that this harmless (and not too big) 2.5.29 kernel would have
> been the first one to trigger a 'wrong' CHS combination. Especially since
> 2.4 kernels with exactly the *same* bzImage (and same lilo) work just
> fine.

Well well having a look at lilo-s inwards I can the the following:

     if (ioctl(fd,HDIO_GETGEO,&hdprm) < 0)
                 die("geo_query_dev HDIO_GETGEO (dev 0x%04x): %s",device,
                   strerror(errno));
             geo->heads = hdprm.heads;
             geo->cylinders = hdprm.cylinders;
             geo->sectors = hdprm.sectors;
             geo->start = hdprm.start;
             if ((geo->device = bios_device(geo, device)) < 0)
                 geo->device = 0x80 + (MINOR(device) >> 6) +
                     (MAJOR(device) == MAJOR_HD ? 0 :
last_dev(MAJOR_HD,64));

If you look at the boot messages from a kernel:

ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
  hda: 78140160 sectors, CHS=77520/16/63, UDMA(33)
  hda: hda1 hda4

You can actually see the CHS info field.
Would you care to maybe compare them between 2.4 and 2.5 on the
system in question?

If they are not different, well, taking a look at the bios_device()
in lilo you can actually see that it doesn't know *anything* about
EZ disk or similar partition table tricks and therelike - this can be
definitively considered a bug *there*.

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



This archive was generated by hypermail 2b29 : Thu Aug 15 2002 - 22:00:15 EST