mirror of
https://github.com/arjuncr/Linux-from-scratch.git
synced 2026-01-15 00:37:17 +00:00
182 lines
3.9 KiB
Bash
182 lines
3.9 KiB
Bash
#!/bin/bash
|
|
|
|
|
|
. ./build_env_0.sh
|
|
|
|
|
|
ln -svf ../proc/mounts ${LJOS}/etc/mtab
|
|
|
|
echo "mtlab created"
|
|
|
|
cat > ${LJOS}/etc/passwd << "EOF"
|
|
root::0:0:root:/root:/bin/ash
|
|
EOF
|
|
|
|
echo "created passwd"
|
|
|
|
cat > ${LJOS}/etc/group << "EOF"
|
|
root:x:0:
|
|
bin:x:1:
|
|
sys:x:2:
|
|
kmem:x:3:
|
|
tty:x:4:
|
|
daemon:x:6:
|
|
disk:x:8:
|
|
dialout:x:10:
|
|
video:x:12:
|
|
utmp:x:13:
|
|
usb:x:14:
|
|
EOF
|
|
|
|
echo "created group"
|
|
|
|
cat > ${LJOS}/etc/fstab << "EOF"
|
|
# file system mount-point type options dump fsck
|
|
# order
|
|
|
|
rootfs / auto defaults 1 1
|
|
proc /proc proc defaults 0 0
|
|
sysfs /sys sysfs defaults 0 0
|
|
devpts /dev/pts devpts gid=4,mode=620 0 0
|
|
tmpfs /dev/shm tmpfs defaults 0 0
|
|
EOF
|
|
|
|
echo "created fstab"
|
|
|
|
cat > ${LJOS}/etc/profile << "EOF"
|
|
export PATH=/bin:/usr/bin
|
|
|
|
if [ `id -u` -eq 0 ] ; then
|
|
PATH=/bin:/sbin:/usr/bin:/usr/sbin
|
|
unset HISTFILE
|
|
fi
|
|
|
|
|
|
# Set up some environment variables.
|
|
export USER=`id -un`
|
|
export LOGNAME=$USER
|
|
export HOSTNAME=`/bin/hostname`
|
|
export HISTSIZE=1000
|
|
export HISTFILESIZE=1000
|
|
export PAGER='/bin/more '
|
|
export EDITOR='/bin/vi'
|
|
EOF
|
|
|
|
echo "created profile"
|
|
|
|
echo "minimal-os" > ${LJOS}/etc/HOSTNAME
|
|
|
|
cat > ${LJOS}/etc/issue<< "EOF"
|
|
Linux baso os 1.0
|
|
Kernel \r on an \m
|
|
|
|
EOF
|
|
|
|
echo "created issue"
|
|
|
|
cat > ${LJOS}/etc/inittab<< "EOF"
|
|
::sysinit:/etc/rc.d/startup
|
|
|
|
tty1::respawn:/sbin/getty 38400 tty1
|
|
tty2::respawn:/sbin/getty 38400 tty2
|
|
tty3::respawn:/sbin/getty 38400 tty3
|
|
tty4::respawn:/sbin/getty 38400 tty4
|
|
tty5::respawn:/sbin/getty 38400 tty5
|
|
tty6::respawn:/sbin/getty 38400 tty6
|
|
|
|
::shutdown:/etc/rc.d/shutdown
|
|
::ctrlaltdel:/sbin/reboot
|
|
EOF
|
|
|
|
echo "created inittab"
|
|
|
|
cat > ${LJOS}/etc/mdev.conf<< "EOF"
|
|
# Devices:
|
|
# Syntax: %s %d:%d %s
|
|
# devices user:group mode
|
|
|
|
# null does already exist; therefore ownership has to
|
|
# be changed with command
|
|
null root:root 0666 @chmod 666 $MDEV
|
|
zero root:root 0666
|
|
grsec root:root 0660
|
|
full root:root 0666
|
|
|
|
random root:root 0666
|
|
urandom root:root 0444
|
|
hwrandom root:root 0660
|
|
|
|
# console does already exist; therefore ownership has to
|
|
# be changed with command
|
|
console root:tty 0600 @mkdir -pm 755 fd && cd fd && for x in 0 1 2 3 ; do ln -sf /proc/self/fd/$x $x; done
|
|
|
|
kmem root:root 0640
|
|
mem root:root 0640
|
|
port root:root 0640
|
|
ptmx root:tty 0666
|
|
|
|
# ram.*
|
|
ram([0-9]*) root:disk 0660 >rd/%1
|
|
loop([0-9]+) root:disk 0660 >loop/%1
|
|
sd[a-z].* root:disk 0660 */lib/mdev/usbdisk_link
|
|
hd[a-z][0-9]* root:disk 0660 */lib/mdev/ide_links
|
|
|
|
tty root:tty 0666
|
|
tty[0-9] root:root 0600
|
|
tty[0-9][0-9] root:tty 0660
|
|
ttyO[0-9]* root:tty 0660
|
|
pty.* root:tty 0660
|
|
vcs[0-9]* root:tty 0660
|
|
vcsa[0-9]* root:tty 0660
|
|
|
|
ttyLTM[0-9] root:dialout 0660 @ln -sf $MDEV modem
|
|
ttySHSF[0-9] root:dialout 0660 @ln -sf $MDEV modem
|
|
slamr root:dialout 0660 @ln -sf $MDEV slamr0
|
|
slusb root:dialout 0660 @ln -sf $MDEV slusb0
|
|
fuse root:root 0666
|
|
|
|
# misc stuff
|
|
agpgart root:root 0660 >misc/
|
|
psaux root:root 0660 >misc/
|
|
rtc root:root 0664 >misc/
|
|
|
|
# input stuff
|
|
event[0-9]+ root:root 0640 =input/
|
|
ts[0-9] root:root 0600 =input/
|
|
|
|
# v4l stuff
|
|
vbi[0-9] root:video 0660 >v4l/
|
|
video[0-9] root:video 0660 >v4l/
|
|
|
|
# load drivers for usb devices
|
|
usbdev[0-9].[0-9] root:root 0660 */lib/mdev/usbdev
|
|
usbdev[0-9].[0-9]_.* root:root 0660
|
|
EOF
|
|
|
|
echo "created mdev conf"
|
|
|
|
|
|
mkdir ${LJOS}/boot/grub
|
|
|
|
cat > ${LJOS}/boot/grub/grub.cfg<< "EOF"
|
|
set default=0
|
|
set timeout=5
|
|
|
|
set root=(hd0,1)
|
|
|
|
menuentry "Linux minimal" {
|
|
linux /boot/vmlinuz-4.16.3 root=/dev/sda1 ro quiet
|
|
}
|
|
EOF
|
|
|
|
echo "created grup.cfg"
|
|
|
|
touch ${LJOS}/var/run/utmp ${LJOS}/var/log/{btmp,lastlog,wtmp}
|
|
|
|
chmod -v 664 ${LJOS}/var/run/utmp ${LJOS}/var/log/lastlog
|
|
|
|
|
|
echo "basic file creation done"
|
|
|
|
|