diff --git a/README.md b/README.md index 809bb35..6906a32 100644 --- a/README.md +++ b/README.md @@ -81,6 +81,8 @@ Login as the lfs user: su - lfs ``` +:point_right: Run commands below as lfs. + Create a .bash_profile file: ``` @@ -119,3 +121,104 @@ Now, run the lfs-cross.sh script, which will build the cross-toolchain and cross cd $LFS sh lfs-cross.sh | tee lfs-cross.log ``` + +Return to being root: + +``` +exit +``` + +:point_right: Run commands below as lfs. + +Make root own the entire filesystem again: + +``` +chown -R root:root $LFS/* +chown root:root $LFS +``` + +Prepare virtual kernel file systems: + +``` +mkdir -pv $LFS/{dev,proc,sys,run} +mknod -m 600 $LFS/dev/console c 5 1 +mknod -m 666 $LFS/dev/null c 1 3 +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 +if [ -h $LFS/dev/shm ]; then + mkdir -pv $LFS/$(readlink $LFS/dev/shm) +fi +``` + +Enter the chroot environment: + +``` +chroot "$LFS" /usr/bin/env -i \ + HOME=/root \ + TERM="$TERM" \ + PS1='(lfs chroot) \u:\w\$ ' \ + PATH=/bin:/usr/bin:/sbin:/usr/sbin \ + /bin/bash --login +h +``` + +Create essential directories, files and symlinks: + +``` +mkdir -pv /{boot,home,mnt,opt,srv} +mkdir -pv /etc/{opt,sysconfig} +mkdir -pv /lib/firmware +mkdir -pv /media/{floppy,cdrom} +mkdir -pv /usr/{,local/}{bin,include,lib,sbin,src} +mkdir -pv /usr/{,local/}share/{color,dict,doc,info,locale,man} +mkdir -pv /usr/{,local/}share/{misc,terminfo,zoneinfo} +mkdir -pv /usr/{,local/}share/man/man{1..8} +mkdir -pv /var/{cache,local,log,mail,opt,spool} +mkdir -pv /var/lib/{color,misc,locate} +ln -sfv /run /var/run +ln -sfv /run/lock /var/lock +install -dv -m 0750 /root +install -dv -m 1777 /tmp /var/tmp +ln -sv /proc/self/mounts /etc/mtab +echo "127.0.0.1 localhost $(hostname)" > /etc/hosts +cat > /etc/passwd << "EOF" +root:x:0:0:root:/root:/bin/bash +bin:x:1:1:bin:/dev/null:/bin/false +daemon:x:6:6:Daemon User:/dev/null:/bin/false +messagebus:x:18:18:D-Bus Message Daemon User:/var/run/dbus:/bin/false +nobody:x:99:99:Unprivileged User:/dev/null:/bin/false +EOF +cat > /etc/group << "EOF" +root:x:0: +bin:x:1:daemon +sys:x:2: +kmem:x:3: +tape:x:4: +tty:x:5: +daemon:x:6: +floppy:x:7: +disk:x:8: +lp:x:9: +dialout:x:10: +audio:x:11: +video:x:12: +utmp:x:13: +usb:x:14: +cdrom:x:15: +adm:x:16: +messagebus:x:18: +input:x:24: +mail:x:34: +kvm:x:61: +wheel:x:97: +nogroup:x:99: +users:x:999: +EOF +touch /var/log/{btmp,lastlog,faillog,wtmp} +chgrp -v utmp /var/log/lastlog +chmod -v 664 /var/log/lastlog +chmod -v 600 /var/log/btmp +exec /bin/bash --login +h +```