7.13. Cleaning up and Saving the Temporary System

7.13.1. Cleaning

First, remove the currently installed documentation files to prevent them from ending up in the final system, and to save about 35 MB:

rm -rf /usr/share/{info,man,doc}/*

Second, on a modern Linux system, the libtool .la files are only useful for libltdl. No libraries in LFS are loaded by libltdl, and it's known that some .la files can cause BLFS package failures. Remove those files now:

find /usr/{lib,libexec} -name \*.la -delete

The current system size is now about 3 GB, however the /tools directory is no longer needed. It uses about 1 GB of disk space. Delete it now:

rm -rf /tools

7.13.2. Backup

At this point the essential programs and libraries have been created and your current LFS system is in a good state. Your system can now be backed up for later reuse. In case of fatal failures in the subsequent chapters, it often turns out that removing everything and starting over (more carefully) is the best way to recover. Unfortunately, all the temporary files will be removed, too. To avoid spending extra time to redo something which has been done successfully, creating a backup of the current LFS system may prove useful.

[Note]

Note

All the remaining steps in this section are optional. Nevertheless, as soon as you begin installing packages in Chapter 8, the temporary files will be overwritten. So it may be a good idea to do a backup of the current system as described below.

If you are making a backup, mount the partition for backup:

mount -v /dev/sda4 /mnt

Make sure you have at least 1 GB free disk space (the source tarballs will be included in the backup archive) in the partition prepared for backup.

Note that the instructions below specify the home directory of the host system's root user, which is typically found on the root file system. Replace $HOME by a directory of your choice if you do not want to have the backup stored in root's home directory.

Create the backup archive by running the following command:

[Note]

Note

Because the backup archive is compressed, it takes a relatively long time (over 10 minutes) even on a reasonably fast system.

cd /
tar -cJpf /mnt/lfs-temp-tools-cross-r12.0-499.tar.xz . \
    --exclude="dev/*" --exclude="proc/*"
    --exclude="sys/*" --exclude="run/*"
    --exclude="mnt/*"

Unmount the partition containing the backup:

umount /mnt

7.13.3. Restore

In case some mistakes have been made and you need to start over, you can use this backup to restore the system and save some recovery time. Since the sources are included in the backup archive as well, so they do not need to be downloaded again.

[Warning]

Warning

Power off the target system and reconnect the disk containing LFS temporary system to the host for restoring the backup. It's necessary to avoid overwriting some binaries being used. Because the package providing shutdown command is not built yet, the system can't be shut down cleanly. Issue sync to ensure all filesystem writes cached in memory to be really written into the disk, then power off the system physically (for example, unplug the AC cord).

Mount the LFS partition and the backup partition on the host system:

mkdir -pv /mnt/lfs-{target,backup}
mount -v -t ext4 /dev/sdx3 /mnt/lfs-target
mount -v -t ext4 /dev/sdx4 /mnt/lfs-backup
[Warning]

Warning

The following commands are extremely dangerous. If you run rm -rf ./* as the root user and you do not change to the lfs-target directory, it will destroy your entire host system. YOU ARE WARNED.

cd /mnt/lfs-target
rm -rf ./*
tar -xpf /mnt/lfs-backup/lfs-temp-tools-cross-r12.0-499.tar.xz

Again, unmount the two partitions, reconnect the device to the target machine, boot it and continue building the rest of system:

umount /mnt/lfs-{target,backup}
[Important]

Important

If you reboot your target machine and restart building using a restore, remount the virtual filesystems now as described in Section 7.2, “Preparing Virtual Kernel File Systems” and re-enter the build environment (see Section 7.3, “Setting up the Environment”) before continuing.