#!/bin/sh # This script populates the root file system for a diskless NetBSD system # Transform named parameters to environment variables for x ; do export ${x%=*}="${x#*=}"; done # First, create the basic directory structure mkdir $DST/bin mkdir $DST/cdrom mkdir $DST/dev mkdir $DST/etc mkdir $DST/floppy mkdir $DST/lib mkdir $DST/libexec mkdir $DST/sbin mkdir $DST/tmp mkdir $DST/usr mkdir $DST/var mkdir $DST/var/db mkdir $DST/var/run # Copy files /bin install -csm 0555 /bin/[ $DST/bin install -csm 0555 /bin/cat $DST/bin install -csm 0555 /bin/chmod $DST/bin install -csm 0555 /bin/cp $DST/bin install -csm 0555 /bin/date $DST/bin install -csm 0555 /bin/dd $DST/bin install -csm 0555 /bin/df $DST/bin install -csm 0555 /bin/echo $DST/bin install -csm 0555 /bin/ed $DST/bin install -csm 0555 /bin/expr $DST/bin install -csm 0555 /bin/hostname $DST/bin install -csm 0555 /bin/kill $DST/bin install -csm 0555 /bin/ln $DST/bin install -csm 0555 /bin/ls $DST/bin install -csm 0555 /bin/mkdir $DST/bin install -csm 0555 /bin/mv $DST/bin install -csm 0555 /bin/ps $DST/bin install -csm 0555 /bin/pwd $DST/bin install -csm 0555 /bin/rm $DST/bin install -csm 0555 /bin/rmdir $DST/bin install -csm 0555 /bin/sh $DST/bin ln -s sh $DST/bin/-sh install -csm 0555 /bin/sleep $DST/bin install -csm 0555 /bin/stty $DST/bin install -csm 0555 /bin/sync $DST/bin install -csm 0555 /bin/tar $DST/bin install -csm 0555 /bin/test $DST/bin install -csm 0555 /usr/bin/cksum $DST/bin install -csm 0555 /usr/bin/diff $DST/bin install -csm 0555 /usr/bin/du $DST/bin install -csm 0555 /usr/bin/eject $DST/bin install -csm 0555 /usr/bin/env $DST/bin install -csm 0555 /usr/bin/ftp $DST/bin install -csm 0555 /usr/bin/grep $DST/bin install -csm 0555 /usr/bin/gzip $DST/bin ln -s gzip $DST/bin/gunzip install -cm 0555 /usr/bin/false $DST/bin install -csm 0555 /usr/bin/hexdump $DST/bin install -csm 0555 /usr/bin/more $DST/bin install -csm 0555 /usr/bin/netstat $DST/bin install -csm 0555 /usr/bin/nslookup $DST/bin install -csm 0555 /usr/bin/rpcinfo $DST/bin install -csm 0555 /usr/bin/sed $DST/bin install -csm 0555 /usr/bin/showmount $DST/bin install -csm 0555 /usr/bin/sort $DST/bin install -csm 0555 /usr/bin/tail $DST/bin install -csm 0555 /usr/bin/touch $DST/bin install -cm 0555 /usr/bin/true $DST/bin install -csm 0555 /usr/bin/tftp $DST/bin install -csm 0555 /usr/bin/uname $DST/bin install -csm 0555 /usr/bin/uniq $DST/bin install -csm 0555 /usr/bin/which $DST/bin install -csm 0555 /usr/pkg/bin/gmd5sum $DST/bin/md5sum # Copy files to /dev install -cm 0555 /dev/MAKE* $DST/dev # Make devices in dev cd $DST/dev ./MAKEDEV std ./MAKEDEV cd0 ./MAKEDEV fd0 ./MAKEDEV md0 ./MAKEDEV wd0 ./MAKEDEV bpf cd ${SRC} # Copy files to /etc install -cm 0444 /etc/netconfig $DST/etc install -cm 0444 /etc/services $DST/etc install -cm 0444 fstab $DST/etc install -cm 0444 motd $DST/etc install -cm 0444 profile $DST/etc install -cm 0555 rc $DST/etc # Copy files to /lib install -csm 0555 /lib/libc.so.12 $DST/lib install -csm 0555 /lib/libcrypt.so.0 $DST/lib install -csm 0555 /lib/libcrypto.so.3 $DST/lib install -csm 0555 /lib/libedit.so.2 $DST/lib install -csm 0555 /lib/libipsec.so.2 $DST/lib install -csm 0555 /lib/libkvm.so.5 $DST/lib install -csm 0555 /lib/libm.so.0 $DST/lib install -csm 0555 /lib/libm387.so.0 $DST/lib install -csm 0555 /lib/libtermcap.so.0 $DST/lib install -csm 0555 /lib/libutil.so.7 $DST/lib install -csm 0555 /usr/lib/libbz2.so.1 $DST/lib install -csm 0555 /usr/lib/libintl.so.0 $DST/lib install -csm 0555 /usr/lib/libpthread.so.0 $DST/lib install -csm 0555 /usr/lib/libz.so.1 $DST/lib # Copy files /libexec install -csm 0555 /libexec/ld.elf_so $DST/libexec # Copy files /sbin install -csm 0555 /sbin/dhclient $DST/sbin install -cm 0555 /sbin/dhclient-script $DST/sbin install -csm 0555 /sbin/disklabel $DST/sbin install -csm 0555 /sbin/dmesg $DST/sbin install -csm 0555 /sbin/dump $DST/sbin install -cm 0555 /sbin/fastboot $DST/sbin install -cm 0555 /sbin/fasthalt $DST/sbin install -csm 0555 /sbin/fdisk $DST/sbin install -csm 0555 /sbin/fsck $DST/sbin install -csm 0555 /sbin/fsck_ffs $DST/sbin install -csm 0555 /sbin/fsck_msdos $DST/sbin install -csm 0555 /sbin/halt $DST/sbin install -csm 0555 /sbin/ifconfig $DST/sbin install -csm 0555 /sbin/ldconfig $DST/sbin install -csm 0555 /sbin/mknod $DST/sbin install -csm 0555 /sbin/mount $DST/sbin install -csm 0555 /sbin/mount_cd9660 $DST/sbin install -csm 0555 /sbin/mount_ffs $DST/sbin install -csm 0555 /sbin/mount_msdos $DST/sbin install -csm 0555 /sbin/mount_nfs $DST/sbin install -csm 0555 /sbin/newfs $DST/sbin install -csm 0555 /sbin/newfs_msdos $DST/sbin install -csm 0555 /sbin/ping $DST/sbin install -csm 0555 /sbin/reboot $DST/sbin install -csm 0555 /sbin/restore $DST/sbin install -csm 0555 /sbin/rndctl $DST/sbin install -csm 0555 /sbin/shutdown $DST/sbin install -csm 0555 /sbin/route $DST/sbin install -csm 0555 /sbin/sysctl $DST/sbin install -csm 0555 /sbin/tunefs $DST/sbin install -csm 0555 /sbin/umount $DST/sbin install -csm 0555 /usr/sbin/arp $DST/sbin # Compile custom /sbin/init gcc -Wall -o $DST/sbin/init init.c -lutil -static # Create some important soft links ln -s /bin $DST/usr/bin ln -s /lib $DST/usr/lib ln -s /libexec $DST/usr/libexec ln -s /sbin $DST/usr/sbin # Create some placeholder files touch $DST/var/db/dhclient.leases touch $DST/var/run/dev.db # Fixup ownership chown -P -R root.wheel $DST # Now touch everything to set the timestamp touch $DST/* $DST/*/* $DST/*/*/*