This repo contains software to build linux from scratch and package it into rpm files.
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Chris Cromer 726e6c5fc8 Merge pull request '9.1' (#1) from 9.1 into master 3 years ago
BOOK update book to 9.1 3 years ago
SOURCES update specs for 9.1 3 years ago
SPECS fix missing folder 3 years ago
.gitignore update gitignore 3 years ago
LICENSE 2019-05-24 4 years ago
README.MD fix case of examples in readme 3 years ago
TODO 2019-05-25 4 years ago remove python 2 3 years ago update scripts for 9.1 3 years ago
cromer-todo update todo 3 years ago update scripts for 9.1 3 years ago update scripts for 9.1 3 years ago fix spacing 3 years ago remove openmp since lfs doesn't have it 3 years ago 2019-05-24 4 years ago



This build tracks linux from scratch version 9.1


1. git installed on the host
2. wget on host system
3. Directory for build, mounted at /mnt/lfs

	There will need to be a partition mounted there.
	You will be responsible for that.
	This build system uses whatever filesystem that is present at ${LFS}

4. run and install required packages if needed


This build system is designed in such a way to not be
able to trash your host system.  Mistakes can happen.
I am not responsible for trashed host systems.  You
bear all responsibilities for any failures.


This system was designed and debugged on an AMD64 {x86_64} system
and does not support i686.

The build system installs/work directory:

This build has a mkinitramfs step (which requires cpio) this step
creates an initrd so cpu updates and firmware is loaded.
Your lfs kernel should be configured to use this.

This build has linux-firmware to provide firmware for various
See BLFS book for more information.

I have installed rpm macro files in:
This makes the rpm environment correct so it builds
the base system correctly.


  • rpm
    • the package manager
  • mkinitramfs
    • to create initramfs
  • cpio
    • needed for mkinitramfs
  • popt
    • needed for rpm
  • python2
    • needed for rpm
  • wget
    • needed to fetch packages
  • linux-firmware
    • needed to boot under certain hardware


login as root user
fdisk /dev/sdx				partition drive, you need to do this
mkfs.ext4 /dev/sdxx			create ext4 filesystem

install -vdm 755 /mnt/lfs		create lfs directory
mount /dev/sdxx /mnt/lfs		mount partition to work directory
install -vdm 755 /mnt/lfs/usr/src	create build directory
cd /mnt/lfs/usr/src			goto build directory

Now fetch the build system it will go into /mnt/lfs/usr/src/LFS-RPM by default
git clone

cd LFS-RPM				Lets do this
./				setup environment and fetches source tarballs
./				build it
./				cleanup host

Build at this point is complete.
All that is needed is to install grub and/or add a menu item in the
the grub configuration file /boot/grub.cfg

This completes the build.


GPT partitioned drive
menuentry 'Linux From Scratch (9.1) (on /dev/sdxx)' {
	insmod part_gpt
	insmod ext2
	set root='hdx,gptx'
	linux /boot/vmlinuz-5.5.3 root=/dev/sdxx
	initrd /boot/initrd.img-5.5.3

MSDOS/BIOS partitioned drive
	menuentry 'Linux From Scratch (9.1) (on /dev/sdxx)' {
	insmod part_msdos
	insmod ext2
	set root='hdx,msdosx'
	linux /boot/vmlinuz-5.5.3 root=/dev/sdxx
	initrd /boot/initrd.img-5.5.3
Change the x's to the proper drives and partition


The script will take the binary rpms (chapter 6) and
install them into a partition that YOU mounted on /mnt. If you want
to install else where then change ROOTPATH="/mnt" to the installation
partition mounted by YOU.


    • builds chapter 6
    • cleanup host system after build
    • install rpm binaries to mounted partition
    • builds the whole thing
    • configure for build
    • builds chapter 5
    • checks host system for requirements