#!@TT_BOOTSTRAP_PREFIX@/bin/bash # Creates the initial boot stucture for LFS. # First there was chaos, then the Genesis which brought some order to the universe. TT_BOOTSTRAP_PREFIX=@TT_BOOTSTRAP_PREFIX@ # /dev/null is required for redirection install -v -d /dev mknod -m 666 /dev/null c 1 3 || exit 1 # Source the functions script source `which ttPM-funcs` || exit 1 checkRoot # Create directory structure (Only create dirs that the pkg-user cannot create) install -v -d /bin install -v -d /boot install -v -d /dev/pts install -v -d /dev/shm install -v -d /etc install -v -d /home install -v -d /lib if [ "$TT_SYS_BIT" = "64" ] then ln -vnsf /lib /lib64 fi install -v -d /media install -v -d /mnt install -v -d /opt install -v -d /proc install -v -d /root -m 0750 install -v -d /sbin install -v -d /srv install -v -d /sys install -v -d /tmp -m 1777 install -v -d /usr install -v -d /usr/bin install -v -d /usr/include install -v -d /usr/j2sdk install -v -d /usr/lib if [ "$TT_SYS_BIT" = "64" ] then ln -vnsf /usr/lib /usr/lib64 fi install -v -d /usr/sbin install -v -d /usr/share install -v -d /var install -v -d /var/cache install -v -d /var/lib install -v -d /var/lib/locate install -v -d /var/lib/misc install -v -d /var/lock install -v -d /var/log install -v -d /var/run install -v -d /var/spool install -v -d /var/tmp -m 1777 # Create devices mknod -m 622 /dev/console c 5 1 || error "Error creating /dev/console" mknod -m 666 /dev/zero c 1 5 || error "Error creating /dev/zero" mknod -m 666 /dev/ptmx c 5 2 || error "Erro creating /dev/ptmx" mknod -m 666 /dev/tty c 5 0 || error "Error creating /dev/tty" mknod -m 444 /dev/random c 1 8 || error "Error creating /dev/random" mknod -m 444 /dev/urandom c 1 9 || error "Error creating /dev/urandom" # Create password and shadow files so that user name resolutions work install -v -d /etc cat > /etc/passwd << "EOF" root:x:0:0:root:/root:/bin/bash nobody:x:99:99:nobody:/dev/null:/dev/null EOF cat > /etc/group << "EOF" root:x:0: bin:x:1: sys:x:2: kmem:x:3: tty:x:4: tape: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: nobody:x:99: EOF cat > /etc/hosts << "EOF" 127.0.0.1 localhost $TT_UNIQ_ID EOF # Mount file systems mountFS # Change device permissions chown -v root:tty /dev/console chown -v root:tty /dev/ptmx chown -v root:tty /dev/tty ln -v -s /proc/self/fd /dev/fd ln -v -s /proc/self/fd/0 /dev/stdin ln -v -s /proc/self/fd/1 /dev/stdout ln -v -s /proc/self/fd/2 /dev/stderr ln -v -s /proc/kcore /dev/core # Create dirs for ttPM install -v -d $TT_ETC_DIR install -v -d $TT_HOME_DIR install -v -d $TT_LIB_DIR install -v -d $TT_VAR_DIR install -v -d $TT_STATIC_LIB_DIR install -v -d $TT_FLAGS_DIR install -v -d $TT_ROOT_DATA_DIR install -v -d $TT_TMP_DIR install -v -d $TT_LIB_FILES_DIR install -v -d $TT_TRACE_FILES_DIR install -v -d $TT_DEP_FILES_DIR # Copy ttPM config files into their final destination cp -v -a $TT_BOOTSTRAP_PREFIX/etc/ttPM/* $TT_ETC_DIR cp -v -a $TT_BOOTSTRAP_PREFIX/lib/ttPM/* $TT_LIB_DIR # Make links required in root partition touch /var/run/mtab touch /etc/ld.so.conf ln -v -s $TT_BOOTSTRAP_PREFIX/bin/bash /bin/ ln -v -s $TT_BOOTSTRAP_PREFIX/bin/cat /bin/ ln -v -s $TT_BOOTSTRAP_PREFIX/bin/pwd /bin/ ln -v -s $TT_BOOTSTRAP_PREFIX/bin/sh /bin/ ln -v -s $TT_BOOTSTRAP_PREFIX/bin/stty /bin/ ln -v -s $TT_BOOTSTRAP_PREFIX/bin/perl /usr/bin/ if [ "$TT_SYS_BIT" = "64" ] then ln -v -s $TT_BOOTSTRAP_PREFIX/lib/ld-linux-x86-64.so.2 /lib/ else ln -v -s $TT_BOOTSTRAP_PREFIX/lib/ld-linux.so.2 /lib/ fi ln -v -s $TT_BOOTSTRAP_PREFIX/lib/libc.so /usr/lib/ ln -v -s $TT_BOOTSTRAP_PREFIX/lib/libgcc_s.so /usr/lib/ ln -v -s $TT_BOOTSTRAP_PREFIX/lib/libgcc_s.so.1 /usr/lib/ ln -v -s $TT_BOOTSTRAP_PREFIX/bin/which /bin/ ln -v -s $TT_BOOTSTRAP_PREFIX/bin/ttPM-funcs /usr/bin/ # Create log files touch /var/run/utmp chgrp -v utmp /var/run/utmp chmod -v 664 /var/run/utmp touch /var/log/lastlog chgrp -v utmp /var/log/lastlog chmod -v 664 /var/log/lastlog touch /var/log/btmp touch /var/log/wtmp # Add first user newPkg none newPkg lfs # Fix directory permissions fixPermissions $TT_STATIC_LIB_DIR fixPermissions $TT_FLAGS_DIR fixPermissions $TT_ROOT_DATA_DIR fixPermissions $TT_TMP_DIR fixPermissions $TT_LIB_FILES_DIR fixPermissions $TT_TRACE_FILES_DIR fixPermissions $TT_DEP_FILES_DIR # Make all the neccessary dirs pkg user installable changePerms -f