Linux From Scratch - Version 6.4

Chapter 1. Introduction

1.1. How to Build an LFS
System

The LFS system will be built by using a previously installed Linux
distribution (such as Debian, Mandriva, Red Hat, or SUSE). This
existing Linux system (the host) will be used as a starting point to
provide necessary programs, including a compiler, linker, and shell,
to build the new system. Select the “development” option during the distribution
installation to be able to access these tools.

As an alternative to installing a separate distribution onto your
machine, you may wish to use the Linux From Scratch LiveCD or a
LiveCD from a commercial distribution. The LFS LiveCD works well as a
host system, providing all the tools you need to successfully follow
the instructions in this book. Unfortunately, development of the
LiveCD has not progressed recently and it only contains older
versions of the source packages and patches (for those ISOs not
labels -nosrc or -min), and this book. For more information about the
LFS LiveCD or to download a copy, visit http://www.linuxfromscratch.org/livecd/.

Note

The LFS LiveCD might not work on newer hardware configurations,
failing to boot or failing to detect some devices such as some SATA
hard drives.

Chapter 2 of
this book describes how to create a new Linux native partition and
file system, the place where the new LFS system will be compiled and
installed. Chapter 3 explains
which packages and patches need to be downloaded to build an LFS
system and how to store them on the new file system. Chapter 4 discusses the
setup of an appropriate working environment. Please read Chapter 4 carefully as
it explains several important issues the reader should be aware of
before beginning to work through Chapter 5
and beyond.

Chapter 5
explains the installation of a number of packages that will form the
basic development suite (or toolchain) which is used to build the
actual system in Chapter
6. Some of these packages are needed to resolve circular
dependencies—for example, to compile a compiler, you need a
compiler.

Chapter 5
also shows the user how to build a first pass of the toolchain,
including Binutils and GCC (first pass basically means these two core
packages will be reinstalled). The next step is to build Glibc, the C
library. Glibc will be compiled by the toolchain programs built in
the first pass. Then, a second pass of the toolchain will be built.
This time, the toolchain will be dynamically linked against the newly
built Glibc. The remaining Chapter 5
packages are built using this second pass toolchain. When this is
done, the LFS installation process will no longer depend on the host
distribution, with the exception of the running kernel.

In Chapter
6, the full LFS system is built. The chroot (change root) program is
used to enter a virtual environment and start a new shell whose root
directory will be set to the LFS partition. This is very similar to
rebooting and instructing the kernel to mount the LFS partition as
the root partition. The system does not actually reboot, but instead
chroot's because
creating a bootable system requires additional work which is not
necessary just yet. The major advantage is that “chrooting” allows the builder to continue using
the host while LFS is being built. While waiting for package
compilation to complete, a user can switch to a different virtual
console (VC) or X desktop and continue using the computer as normal.

To finish the installation, the LFS-Bootscripts are set up in
Chapter 7,
and the kernel and boot loader are set up in Chapter 8.
Chapter 9 contains information on
furthering the LFS experience beyond this book. After the steps in
this book have been implemented, the computer will be ready to reboot
into the new LFS system.

This is the process in a nutshell. Detailed information on each step
is discussed in the following chapters and package descriptions.
Items that may seem complicated will be clarified, and everything
will fall into place as the reader embarks on the LFS adventure.