Linux From Scratch

Version 4.1

Gerard Beekmans

This book describes the process of creating a Linux system from scratch, using nothing but the sources of the required software.


Dedication

This book is dedicated to my loving and supportive wife Beverly Beekmans.

Table of Contents
Preface
Foreword
Who would want to read this book
Who would not want to read this book
Prerequisites
Organization
Part I - Introduction
Part II - Preparing for the build
Part III - Building the LFS system
Part IV - Appendix
I. Part I - Introduction
1. Introduction
Acknowledgments
How things are going to be done
Conventions used in this book
Book version
Mirror sites
Changelog
Mailing lists and archives
News server
FAQ
Contact information
2. Important information
About $LFS
About SBUs
How to ask for help
II. Part II - Preparing for the build
3. Preparing a new partition
Introduction
Creating a new partition
Creating a file system on the new partition
Mounting the new partition
4. Packages that need to be downloaded
Introduction
Packages that need to be downloaded
5. Preparing the LFS system
Introduction
Why we use static linking
Creating the $LFS/static directory
Adding the user lfs
Setting up the environment
Installing Bash-2.05a
Installing Binutils-2.13.2
Installing Bzip2-1.0.2
Installing Diffutils-2.8.1
Installing Fileutils-4.1
Installing Findutils-4.1
Installing Gawk-3.1.1
Installing GCC-3.2.1
Installing Grep-2.5
Installing Gzip-1.2.4a
Installing Make-3.80
Installing Patch-2.5.4
Installing Sed-4.0.5
Installing Sh-utils-2.0
Installing Tar-1.13
Installing Texinfo-4.3
Installing Textutils-2.1
Installing Util-linux-2.11y
III. Part III - Building the LFS system
6. Installing basic system software
Introduction
About debugging symbols
Entering the chroot environment
Changing ownership
Creating directories
Mounting the proc file system
Creating the mtab file
Creating the bash and sh symlinks
Creating the passwd and group files
Creating devices (Makedev-1.7)
Installing Linux-2.4.20 headers
Installing Man-pages-1.54
Installing Glibc-2.3.1
Installing GCC-3.2.1
Installing Zlib-1.1.4
Installing Findutils-4.1
Installing Gawk-3.1.1
Installing Ncurses-5.3
Installing Vim-6.1
Installing M4-1.4
Installing Bison-1.875
Installing Less-378
Installing Groff-1.18.1
Installing Textutils-2.1
Installing Sed-4.0.5
Installing Flex-2.5.4a
Installing Binutils-2.13.2
Installing Fileutils-4.1
Installing Sh-utils-2.0
Installing Gettext-0.11.5
Installing Net-tools-1.60
Installing Perl-5.8.0
Installing Texinfo-4.3
Installing Autoconf-2.57
Installing Automake-1.7.2
Installing Bash-2.05a
Installing File-3.39
Installing Libtool-1.4.3
Installing Bin86-0.16.3
Installing Bzip2-1.0.2
Installing Ed-0.2
Installing Kbd-1.08
Installing Diffutils-2.8.1
Installing E2fsprogs-1.32
Installing Grep-2.5
Installing Gzip-1.2.4a
Installing Man-1.5k
Installing Lilo-22.2
Installing Make-3.80
Installing Modutils-2.4.22
Installing Netkit-base-0.17
Installing Patch-2.5.4
Installing Procinfo-18
Installing Procps-3.1.5
Installing Psmisc-21.2
Installing Shadow-4.0.3
Installing Sysklogd-1.4.1
Installing Sysvinit-2.84
Installing Tar-1.13
Installing Util-linux-2.11y
Installing Linux-2.4.20 man pages
Installing Glibc-2.3.1
Revised chroot command
Installing LFS-Bootscripts-1.11
Configuring system components
7. Setting up system boot scripts
Introduction
How does the booting process with these scripts work?
Configuring the setclock script
Do I need the loadkeys script?
Configuring the sysklogd script
Configuring the localnet script
Creating the /etc/hosts file
Configuring the network script
8. Making the LFS system bootable
Introduction
Creating the /etc/fstab file
Installing Linux-2.4.20
Making the LFS system bootable
9. The End
The End
Get Counted
Rebooting the system
What now?
IV. Part IV - Appendices
A. Package descriptions and dependencies
Introduction
Autoconf
Automake
Bash
Bin86
Binutils
Bison
Bzip2
Diffutils
E2fsprogs
Ed
File
Fileutils
Findutils
Flex
Gawk
GCC
Gettext
Glibc
Grep
Groff
Gzip
Kbd
Less
LFS-Bootscripts
Libtool
Lilo
Linux (the kernel)
M4
Make
MAKEDEV
Man
Man-pages
Modutils
Ncurses
Netkit-base
Net-tools
Patch
Perl
Procinfo
Procps
Psmisc
Sed
Shadow
Sh-utils
Sysklogd
Sysvinit
Tar
Texinfo
Textutils
Util-linux
Vim
Zlib