A directory that most modern linux distribution
s use to store kernel image
s, 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 bios
es 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 bootloader
s 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
). 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 defragment
ed 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).