This page can be found at the URL: http://sun0.cs.uca.edu/Linux/static/lfs/
Remember that Linux is just the kernel. You, in fact, mostly interact with the user land of the system. How the kernel and user land are related is a complex issue, the two are so inseparable that the term Linux has come to mean Linux kernel + GNU user land. To get a deeper understanding of what exactly goes into a Linux distribution, we are going to build a Linux from Scratch (LFS) system. As you build the system you will quickly come to appreciate how complex a system Linux really is.
Ideally you would install LFS on an actual computer. This can be a problematic since you will have work to do in other classes and you don't want your computer to be down for several weeks. With this in mind, we are going to install our system on a virtual machine (VM).
There are several advantages to using VMs for an LFS install. First, you can perform the installation without corrupting your current operating system. In other words, messing up will not trash your system. This allows us to experiment more freely with less penalty for failure. Another advantage of using a virtual machine system is that you can backup the machine using snapshots. That way if you badly corrupt your LFS installation, you can restore back to a functioning system. Finally, by using a VM I know exactly what hardware you are using. This makes it much easier to diagnose problems if you encounter them. Many of these notes are predicated on the idea you are using the VM's virtual hardware.
There is a major drawback to using a VM, the installation can be much slower compared to installing LFS on an actual machine. Running even a cut-down Linux distribution smoothly in a VM can take a fairly hefty machine. In other words, what would normally be a very responsive install on an actual machine may crawl on a VM. Worse, because you may be communicating with the virtual hard-drive through USB things will slow down quite a lot. We will discuss these issues in quite a bit of depth as we go along.
Please note that these notes are updated frequently. As people run into problems, I update the notes to help others avoid those problems. That means you should always view the "live" notes from the class's website.
Due Dates
- Chapters 1-4: Friday, February 21st
- Chapter 5, Friday March 7th (chapter check script)
- Chapter 6, Monday March 31st (chapter check script, download it to /mnt/lfs, and run it in the chroot environment)
- Finished, April 18th
Table of Contents
- Preface — This is a helpful guide to understanding how to effectively use these notes. (This chapter is not part of the LFS book)
- Getting Started — This chapter contains the steps needed for getting started using the VM. (This chapter is not part of the LFS book)
- Chapter 1: Introduction — There are no notes for this chapter, but you should still read it.
- Chapter 2: Preparing the Filesystem — You should follow these notes in lieu of reading the chapter. Here we will create our filesystems on the hard drive.
- Chapter 3: Packages and Patches — In this chapter we will get the packages and patches we need for our system onto our hard drive. You should follow these notes instead of the chapter in the book.
- Chapter 4: Final Preparation — There are a couple of alterations necessary for this chapter.
- Chapter 5: Constructing a Temporary System — This set of notes contains some helpful hints to help you succeed in finishing chapter five.
- Chapter 6: Installing Basic System Software — Much like chapter five's notes, this page will help you sucessfully install your basic system.
- Chapter 7: Setting Up System Bootscripts — These notes contain additional and substitute information for chapter seven.
- Chapter 8: Making the LFS System Bootable — These notes give additional information for what is often the hardest chapter in the book.
- Chapter 9: The End — These notes help you determine if you were successful in building your LFS system or not.
- Grading!!!! — The directions and notes for earning a grade for your hard work.