OS Week 09 Assignment #3: Linux From Scratch 12.1 Ch. 6-7
Preparation (IMPORTANT!)
Check file system /mnt/lfs
df | grep lfs
If there is no "/mnt/lfs", see here.
Three (3) Accounts
- your own account, e.g., (user cbkadal)
- root account (root)
- lfs account (user lfs)
Check ALL environments for ALL accounts (cbkadal, root, lfs):
echo "LFS=\"$LFS $(df $LFS|tail -1|awk '{print $1,int($2/1000000)"G"}')\" \
ARCH=$(arch) NPROC=$(nproc) MAKEFLAGS=$MAKEFLAGS"
Follow "The Linux From Scratch version 12.1 Book" chapter 6-7
- VirtualBox (AMD64)
- The Linux From Scratch version 12.1 Book (mirror1) (mirror2) (mirror3)
- UTM/M1 (ARM64/AARCH64)
- The Linux From Scratch ARM64/AARCH64 Book
- COMPARE
LFS ARM64/AARCH64 is not an official version (KW) and changes frequently. Therefore, it is recommended to use a package similar to the official version of LFS 12.1 (ORI). Because of this, the instructions for the KW version packages often differ from those for the ORI. Since it uses the ORI package, it must sometimes be compiled using the ORI method. Please be careful, especially when working on chapter 8 and explicitly compiling GCC (chapter 8.27). - Source Code Mirrors: (source mirror1) (source mirror2) (source mirror3)
- Kernotex's YouTube LFS 12.1 PlayList
- Kernotex's Host Linux configuration for LFS Chapter 2.2 - "Host System Requirements"
- Kernotex's LFS in VirtualBox
Take Note!
You might want to combine the commands in chapter 7.2-7.4 (root)
echo "= (1) ======================================"; sleep 1
echo "LFS=$LFS NPROC=$(nproc) MAKEFLAGS=$MAKEFLAGS"
echo "= (2) ======================================"; sleep 1
chown -R root:root $LFS/{usr,lib,var,etc,bin,sbin}
[ -d $LFS/tools/ ] && chown -R root:root $LFS/tools/
case $(uname -m) in
x86_64) chown -R root:root $LFS/lib64 ;;
esac
mkdir -pv $LFS/{dev,proc,sys,run}
echo "= (3) ======================================"; sleep 1
systemctl daemon-reload
mount -v --bind /dev $LFS/dev
mount -v --bind /dev/pts $LFS/dev/pts
mount -vt proc proc $LFS/proc
mount -vt sysfs sysfs $LFS/sys
mount -vt tmpfs tmpfs $LFS/run
echo "= (4) ======================================"; sleep 1
if [ -h $LFS/dev/shm ]; then
mkdir -pv $LFS/$(readlink $LFS/dev/shm)
else
mount -t tmpfs -o nosuid,nodev tmpfs $LFS/dev/shm
fi
echo "= (5) ======================================"; sleep 1
df /
echo "= (6) ======================================"; sleep 1
chroot "$LFS" /usr/bin/env -i \
HOME=/root \
TERM="$TERM" \
PS1='(lfs chroot) \u:\w\$ ' \
PATH=/usr/bin:/usr/sbin \
MAKEFLAGS=-j$(nproc) \
/bin/bash --login
The FIRST TIME chroot RESULT
(lfs chroot) I have no name!:/#
Generate LFS Ch. 6-7 Report
- After finishing chapter 7, move (root):
mv -v $HOME/lfs-temp-tools-*.tar.xz /var/tmp/lfs-temp-tools-12.1.tar.xz
Cross Check
- Cross-check that "lfs-temp-tools-12.1.tar.xz" is in /var/tmp/ (root)
- The file size should be larger than 850 MB.
- Don't delete the lfs-temp-tools-12.1.tar.xz file until the end of the term.
- If prompted, you should be able to show that file.
date;echo $(arch; lscpu|grep -E 'Model name'|tail -1); du -s -h /var/tmp/lfs-temp-*
Last, run (user):
export LFS="/mnt/lfs/"
cd $HOME/mywork/WEEK09/
bash 09_WEEK09.sh
Result/Report
cd $HOME/RESULT/W09/
ls -al