The big motivation for a separate /boot
partition
In a recent comment on my entry on how there's no point in multiple system filesystems any more, I was asked:
What about old(er) computers stuck with BIOS booting? Wasn't the whole seperate /boot/ partially there to appease those systems?
There have been two historical motivations for a separate /boot
filesystem in Linux. The lesser motivation is mismatches between
what GRUB understands versus what your system does;
with a separate /boot
you can still have a root filesystem that
is, say, the latest BTRFS format, without requiring a bootloader
that understands the latest BTRFS. Instead you make a small /boot
that uses whatever basic filesystem your bootloader is happy with,
possibly all the way down to ext2.
The bigger motivation has been machines where the BIOS couldn't
read data from the entire hard disk. All the stages of the
bootloader read data using BIOS services,
so all of the data they need had to be within a portion of the disk
that the BIOS could reach; in fact, they all had to be within the
area reachable by whatever (old and basic) BIOS service the bootloader
was using. The first stage of the bootloader is at the start of the
disk, so that's no problem, and the second stage is usually embedded
shortly after it, which is also no problem. The real problem is
things that fully live in the filesystem, like the GRUB grub.cfg
menu and especially the kernel and initramfs that the bootloader
needed to load into memory in order to boot.
(There have been various BIOS limits over the years (see also), and some of the early ones are rather small.)
If your /boot
was part of the root filesystem, you had to make
sure that your entire root filesystem was inside the area that the
BIOS could read. On old machines with limited BIOSes, this could
drastically constrain both the size and position of your entire
root filesystem. If you had a (small) separate /boot
filesystem,
only the /boot
filesystem had to be within this limited area of
BIOS readable disk space; your root filesystem could spill outside
of it without problems. You could make /
as big as you wanted and
put it wherever you wanted.
(If you care about this, it's not enough to have a separate /boot
and to make it small; you need to put it as close to the start of
the disk as possible, and it's been traditional to make it a
primary partition instead of an extended one.
Linux installers may or may not do this for you if you tell them
to make a separate /boot
filesystem.)
Today this concern is mostly obsolete and has been for some time. Even BIOS MBR only machines can generally boot from anywhere on the disk, or at least anywhere on the disk that the MBR partitions can address (which is anything up to 2 TB). In theory you could get into trouble if you had a HD larger than 2 TB, used GPT partitioning, put your root filesystem partly or completely after the 2 TB boundary, and your bootloader and BIOS didn't use LBA48 sector addressing. However I think that even this is relatively unlikely, given that LBA48 is pretty old by now.
(This was once common knowledge in the Linux world, but that was back in the days when it was actually necessary to know this because you might run into such a machine. Those days are probably at least half a decade ago, and probably more than that.)
Comments on this page:
|
|