display | more...
A directory that most modern linux distributions use to store kernel images, and their associated files. Earlier distributions put kernel images in the root directory ('/', not '/root'). The reason that /boot exists (aside from tidiness), is the inability of older x86 bioses to cope with large hard drives.

Most linux loaders (LILO, for instance) depend on the bios for hard disk access, and can only read data the bios can see. Older bioses often have problems reading data beyond the 1024th cylinder, and even older bioses don't do LBA translation, and can't read past 8.5Gb, sometimes not detecting the drive at all, or even hanging1. Once the linux kernel is loaded, it drives the hard disk controller(s) directly, and is not subject to any of these limitations. The challenge is to get it loaded.

Putting the kernel (and supporting files) in the /boot directory allows it to be kept on a different partition to the root directory, at the very front of the drive, where it will be readable even if the bios gets the geometry of the drive wrong (or can't even see 90 percent of the drive).

A further issue is that there are two ways for bootloaders to locate the kernel image: by storing the physical address of the image on the hard disk (eg LILO), or by navigating the filesystem on which the kernel is stored (eg GRUB, windows). The physical method will get tripped up if the kernel image moves, for instance if a new image is copied over (despite having the same filename), or the partition is defragmented without the address being updated. The filesystem method will get tripped up by the filesystem becoming damaged, for instance in a crash (ext2 is notoriously fragile3). Locating /boot on a separate partition allows filesystem utilities to mess with the root partition without the risk of moving any kernel images, and prevents damage to the root filesystem from rendering the kernel images unfindable (Random hard disk problems tend to affect areas of the disk being accessed; under normal use the /boot partition is accessed only at boot time).

1 - Most hard disks have an option marked 2.1Gb clip, which makes the drive return a capacity of only 2.1Gb (below most of the silly BIOS limits), in a geometry the BIOS will understand, to an older BIOS that doesn't do LBA. When the drive is addressed using LBA it reports its capacity as normal2
2 - Apart from some braindead fujitsu drives which seem to have missed the point, and report their capacity as 2.1Gb in LBA as well.
3 - ext2 is very easy to repair, but that's no help if you can't boot. (Ext3 journalling won't help either).

Log in or register to write something here or to contact authors.