Large Disk mini-HOWTO Andries Brouwer, aeb@cwi.nl v1.0, 960626
1. The problem
Suppose you have a disk with more than 1024 cylinders. Suppose moreover that you have an operating system that uses the BIOS. Then you have a problem, because the usual INT13 BIOS interface to disk I/O uses a 10-bit field for the cylinder on which the I/O is done, so that cylinders 1024 and past are inaccessible. Fortunately, Linux does not use the BIOS, so there is no problem.
Well, except for two things:
(1) When you boot your system, Linux isn't running yet and cannot save you from
BIOS problems.This has some consequences for LILO and similar boot loaders.
(2) It is necessary for …show more content…
If the BIOS converts the 24-bit (c,h,s) to LBA and feeds that to a controller that understands LBA, then again 7.875 GB is addressable. Not enough for all disks, but still an improvement.Note that here CHS, as used by the BIOS, no longer has any relation to `reality'.
Something similar works when the controller doesn't speak LBA but the BIOS knows about translation.(In the setup this is often indicated as `Large'.)Now the BIOS will present a geometry (C',H',S') to the operating system, and use (C,H,S) while talking to the disk controller.Usually S = S', C' = C/N and H' = H*N, where N is the smallest power of two that will ensure C' <= 1024 (so that least capacity is wasted by the rounding down in C' = C/N).Again, this allows access of up to 7.875 GB.
If a BIOS does not know about `Large' or `LBA', then there are software solutions around.Disk Managers like OnTrack or EZ-Drive replace the BIOS disk handling routines by their own.Often this is accomplished by having the disk manager code live in the MBR and subsequent sectors (OnTrack calls this code
DDO: Dynamic Drive Overlay), so that it is booted before any other operating system. That is why one may have problems when booting from a floppy when a …show more content…
5.5.PTBL
Finally, there is a test that tries to deduce a translation from the start and end values of the primary partitions: If some partition has start and end cylinder less than 256, and start and end sector number 1 and 63, respectively, and end heads 31, 63 or 127, then, since it is customary to end partitions on a cylinder boundary, and since moreover the IDE interface uses at most 16 heads, it is conjectured that a BIOS translation is active, and the geometry is remapped to use 32, 64 or 128 heads, respectively.(Maybe there is a flaw here, and genhd.c should not have tested the high order two bits of the cylinder number?)However, no remapping is done when the current idea of the geometry already has 63 sectors per track and at least as many heads (since this probably means that a remapping was done already).
6.Consequences
What does all of this mean?For Linux users only one thing: that they must make sure that LILO and fdisk use the right geometry where `right' is defined