7.14. Cleaning up and Saving the Temporary System

7.14.1. Cleaning

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

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

Second, the libtool .la files are only useful when linking with static libraries. They are unneeded and potentially harmful when using dynamic shared libraries, especially when using non-autotools build systems. While still on the target machine, 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.14.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 option to recover. Unfortunately, all the temporary files will be removed, too. To avoid spending extra time to redo something which has been built 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 have decided to make 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.

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 resonably fast system.

cd /
tar -cJpf /mnt/lfs-temp-tools-cross-la-r11.0-228-systemd.tar.xz . \
    --exclude="dev/*" --exclude="proc/*"
    --exclude="sys/*" --exclude="run/*"
    --exclude="mnt/*"

Unmount the partition containing the backup:

umount /mnt

7.14.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 a fully functional init process is not running, 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 extremly 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-la-r11.0-228-systemd.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.