On Tue, 25 Apr 2000, Raghavendra R wrote:
Hi,
My BIOS recognises the 17 GB hard drive as one with 33416 cylinders, 16 heads and 63 sectors. So, this comes to approx. 512 MB for the 1024 cylinder limit. But, i was able to install linux 6.3 after the 4 GB partition (i,e from E:, C: and D: each taking 2 GB) and the linux kernel reported the hard drive configuration as one with 2096 cylinders, 255 heads and 63 sectors. So, according to the kernel the 1024 cylinder limit falls at 8 GB. Is it true?? I read in one of the HOWTO docs. (i think it is Large-Disk), that the specs. for large disk (i,e above 8 GB) will be reported as C/H/S = 16383/16/63. I think there is some kind of translation between the kernel and the BIOS.
It looks like your BIOS is recognising a "large" configuration, while Linux is recognising an "lba" configuration. LBA is much more friendly to old operating systems, because the combination of BIOS and IDE allows 1024/255/63 which is 8 meg per cylinder - over 8 gig within the 1024 cylinders. Software which thinks it is talking to old-style BIOS (e.g. the FAT16 file system in Win95, or lilo) can thus use the first 8 gig of the disk, rather than the first 512M. LBA must be supported by the drive *and* by whatever BIOS-level software is being used on the computer, in order to be used. This is because the drive actually does the translation, but only if the BIOS-level software gives it permission to do so. Most modern BIOSes support it, as does the BIOS-replacement code in the Linux kernel. I think the Windows NT BIOS-replacement code does too. (Any true, stable multitasking OS *must* replace the BIOS disk IO routines, because they aren't reliable in multitasking.) Lilo uses the BIOS, not replacement code. For situations where the BIOS does not recognise LBA but the Linux kernel does - and therefore the geometries do not agree - lilo internally will translate between either LBA or whatever the BIOS says, and a special internal mode called "linear" - one head, one cylinder, up to 16-million-plus sectors per track. Any given sector will always get the same address in this system, no matter how the geometries differ. You enable this by putting the word "linear" (without quotes) in the global section of lilo.conf. A "large" format is what the drive is actually doing, but is not compatible with old-style BIOSes and software which expects to talk to them. (What idiots picked the BIOS specs in the first place? They put a great deal of effort into making sure that an absolute sector address could fit in 3 bytes, on a 16-bit processor. They didn't bother to check the IDE specs. If they had simply been lazy, the BIOS would support 65,536 cylinders, 256 heads, and 256 sectors per track - 2 terabytes, with 512-byte sectors. Instead we get some restrictions that are entirely different from those of IDE, causing all sorts of complications: a celing at 512M, and another at 8-point-something gig, in addition to whatever the limit of IDE is and the limits of the actual drive in consideration at the moment.) (But, the history of standards can be interesting. The standard for the distance between railroad tracks, for example, is what it is because of a couple of horse's asses. Literally.) -- To unsubscribe send e-mail to suse-linux-e-unsubscribe@suse.com For additional commands send e-mail to suse-linux-e-help@suse.com Also check the FAQ at http://www.suse.com/Support/Doku/FAQ/