Linux From Scratch - Version 20161203-systemd

Chapter 2. Preparing the Host System

2.4. Creating a New Partition

Like most other operating systems, LFS is usually installed on a
dedicated partition. The recommended approach to building an LFS
system is to use an available empty partition or, if you have enough
unpartitioned space, to create one.

A minimal system requires a partition of around 6 gigabytes (GB).
This is enough to store all the source tarballs and compile the
packages. However, if the LFS system is intended to be the primary
Linux system, additional software will probably be installed which
will require additional space. A 20 GB partition is a reasonable size
to provide for growth. The LFS system itself will not take up this
much room. A large portion of this requirement is to provide
sufficient free temporary storage as well as for adding additional
capabilities after LFS is complete. Additionally, compiling packages
can require a lot of disk space which will be reclaimed after the
package is installed.

Because there is not always enough Random Access Memory (RAM)
available for compilation processes, it is a good idea to use a small
disk partition as swap space. This is
used by the kernel to store seldom-used data and leave more memory
available for active processes. The swap partition for an LFS system can be the same
as the one used by the host system, in which case it is not necessary
to create another one.

Start a disk partitioning program such as cfdisk or fdisk with a command line option
naming the hard disk on which the new partition will be
created—for example /dev/sda for
the primary Integrated Drive Electronics (IDE) disk. Create a Linux
native partition and a swap
partition, if needed. Please refer to cfdisk(8) or fdisk(8)
if you do not yet know how to use the programs.

Note

For experienced users, other partitioning schemes are possible. The
new LFS system can be on a software RAID
array or an
LVM logical volume. However, some of these options require an
initramfs, which is an advanced topic. These partitioning
methodologies are not recommended for first time LFS users.

Remember the designation of the new partition (e.g., sda5). This book will refer to this as the LFS
partition. Also remember the designation of the swap partition. These names will be needed later
for the /etc/fstab file.

2.4.1. Other Partition Issues

Requests for advice on system partitioning are often posted on the
LFS mailing lists. This is a highly subjective topic. The default
for most distributions is to use the entire drive with the
exception of one small swap partition. This is not optimal for LFS
for several reasons. It reduces flexibility, makes sharing of data
across multiple distributions or LFS builds more difficult, makes
backups more time consuming, and can waste disk space through
inefficient allocation of file system structures.

2.4.1.1. The Root Partition

A root LFS partition (not to be confused with the /root directory) of ten gigabytes is a good
compromise for most systems. It provides enough space to build
LFS and most of BLFS, but is small enough so that multiple
partitions can be easily created for experimentation.

2.4.1.2. The Swap Partition

Most distributions automatically create a swap partition.
Generally the recommended size of the swap partition is about
twice the amount of physical RAM, however this is rarely needed.
If disk space is limited, hold the swap partition to two
gigabytes and monitor the amount of disk swapping.

Swapping is never good. Generally you can tell if a system is
swapping by just listening to disk activity and observing how the
system reacts to commands. The first reaction to swapping should
be to check for an unreasonable command such as trying to edit a
five gigabyte file. If swapping becomes a normal occurrence, the
best solution is to purchase more RAM for your system.

2.4.1.3. The Grub Bios Partition

If the boot disk has been
partitioned with a GUID Partition Table (GPT), then a small,
typically 1 MB, partition must be created if it does not already
exist. This partition is not formatted, but must be available for
GRUB to use during installation of the boot loader. This
partition will normally be labeled 'BIOS Boot' if using
fdisk or have a
code of EF02 if using
gdisk.

Note

The Grub Bios partition must be on the drive that the BIOS uses
to boot the system. This is not necessarily the same drive
where the LFS root partition is located. Disks on a system may
use different partition table types. The requirment for this
partition depends only on the partition table type of the boot
disk.

2.4.1.4. Convenience Partitions

There are several other partitions that are not required, but
should be considered when designing a disk layout. The following
list is not comprehensive, but is meant as a guide.

/boot – Highly recommended. Use this partition to
store kernels and other booting information. To minimize
potential boot problems with larger disks, make this the
first physical partition on your first disk drive. A
partition size of 100 megabytes is quite adequate.

/home – Highly recommended. Share your home directory
and user customization across multiple distributions or LFS
builds. The size is generally fairly large and depends on
available disk space.

/usr – A separate /usr partition is generally used if
providing a server for a thin client or diskless
workstation. It is normally not needed for LFS. A size of
five gigabytes will handle most installations.

/opt – This directory is most useful for BLFS where
multiple installations of large packages like Gnome or KDE
can be installed without embedding the files in the /usr
hierarchy. If used, 5 to 10 gigabytes is generally
adequate.

/tmp – A separate /tmp directory is rare, but useful
if configuring a thin client. This partition, if used, will
usually not need to exceed a couple of gigabytes.

/usr/src – This partition is very useful for
providing a location to store BLFS source files and share
them across LFS builds. It can also be used as a location
for building BLFS packages. A reasonably large partition of
30-50 gigabytes allows plenty of room.

Any separate partition that you want automatically mounted upon
boot needs to be specified in the /etc/fstab. Details about how to specify
partitions will be discussed in Section 8.2,
“Creating the /etc/fstab File”.