#  -*- Mode: Fundamental -*-
#
#  $Id: Bootdisk_Contents.in,v 1.3 1998/11/16 03:32:28 fawcett Exp $
#  This is Bootdisk_Contents, for use with Yard.
#  @configure_input@
#
#  Tom Fawcett
#  May 1996
#############################################################################
#
# Format rules:
#  - Lines beginning with # or % are comments.
#
#  - Blank lines and whitespace may be used freely.
#
#  - Filenames may be either relative or absolute. 
#    Any filename not beginning with a slash is relative and
#    will be resolved relative to the current directory.
#
#  - Lines of the form "filename1 -> filename2" will create symbolic (soft)
#    links on the root fs.  Eg, if you want sh linked to bash
#    in the root fs you specify: "/bin/sh -> /bin/bash"
#    (There is no way to specify hardlinks, though hard linked files
#    that exist on the hard disk will be hard linked on the floppy.)
#
#  - Lines of the form "filename1 <= filename2"
#    will cause filename2 to be copied to filename1 on the boot disk.
#    This is useful for specifying trimmed-down replacements for
#    /etc/passwd, /etc/inittab, etc.  filename2 will be found first by
#    searching PATH, then by searching relative to the current directory.
#
#  - Glob designations (?, * and []) are generally allowed, eg /dev/hd[ab]*
#    Wildcards are not allowed in link specs or replacement specs.
#
#  - You may refer to environment variables in these specs by using
#    a dollar sign.  $RELEASE will be set to the release string of
#    $kernel.
#
#  You generally don't need to specify shared libraries or loaders.
#  make_root_fs will detect necessary libraries with ldd and include
#  them automatically.  (But see the comment below regarding RedHat's 
#  libnss libraries, whose dependencies cannot be automatically detected).
#
#  You don't need to explicitly specify intermediate directories
#  unless you just want to make sure they exist.
#
##############################################################################

#  Specify these binaries absolutely because boot scripts need them to be here.
/bin/cat
/bin/false		   	
/bin/hostname		   	
/bin/ln			   	
/bin/login		   	
/bin/ls			   	
/bin/more
/bin/mount         
/bin/mv			   	
/bin/su			   	
/bin/true		   	
/bin/umount

#####  THE DEFAULT SHELL
#  (I use bash, but it's huge and requires libncurses.so.
#  Most people grab a smaller lightweight shell, like ash or kiss,
#  and use that instead.)
#/bin/sh  -> bash
#/bin/csh -> tcsh
/bin/sh -> ash

#/sbin/halt          
/sbin/init		   	
/sbin/ldconfig		#  NECESSARY -- don't remove
/sbin/reboot
/sbin/shutdown      
/sbin/swapoff       
/sbin/swapon        
/sbin/telinit       
/sbin/update        

#####  FILES IN /etc, TAKEN FROM YOUR SETUP
#
#  The advantage of using your existing /etc/passwd file is that is has
#  all the correct UIDs and GIDs, which may be useful when restoring
#  files from tape.  On the other hand, using a trimmed-down passwd
#  allows you to use a trimmed-down shell, and avoids lots of errors
#  from check_root_fs about home directories and shells not existing.
#
/etc/group		   	
/etc/issue		   	
/etc/profile		    
/etc/shells

#  These get replaced with their pared-down versions 
#  in the Replacements subdirectory.
/etc/passwd     <= ./Replacements/etc/passwd
/etc/fstab	<= ./Replacements/etc/fstab
/etc/motd	<= ./Replacements/etc/bootdisk_motd
/etc/rc		<= ./Replacements/etc/rc
/etc/ttytype    <= ./Replacements/etc/ttytype
/etc/gettydefs  <= ./Replacements/etc/gettydefs
/etc/termcap	<= ./Replacements/etc/termcap

#  IF YOU USE PAM, uncomment the following lines:
#/etc/pam.conf	<= ./Replacements/etc/pam.conf
#/lib/security/pam_permit.so	

#  IF YOUR USE GLIBC (LIBC6), uncomment these lines, else login won't work
#  properly.
#
#/etc/nsswitch.conf <= ./Replacements/etc/nsswitch.conf
#/lib/libnss_files.so.1


##### INITTAB and GETTY
# Use one of these pairs, based on your distribution:
#
#==== REDHAT(5.1) uses getty:
#/etc/inittab	<= Replacements/etc/inittab
#/sbin/getty
#
#
#==== SLACKWARE	uses agetty:
#/etc/inittab	<= Replacements/etc/inittab.agetty
#/sbin/agetty
#
#
#==== DEBIAN (1.1) uses a program called "getty" which is actually 
#                  agetty in disguise:
#/etc/inittab	<= Replacements/etc/inittab.debian
#/sbin/getty
#
#
#==== SUSE	uses mingetty:
#/etc/inittab    <= Replacements/etc/inittab.mingetty     
#/sbin/mingetty
#
#
# If in doubt, check your /etc/inittab.
#
# In any case, check to make sure the *getty* calls in the inittab match
# the executable you're using.  Yard can't check this and *getty* will
# hang if the arguments are wrong.


#####  DEVICES
#  Remove/prune these if you're sure you won't need them
/dev/*tape*                 #  Tape device links
/dev/*rft0                  #  Floppy tape devices
/dev/st?                    #  SCSI tape drives
/dev/mem	/dev/kmem
/dev/null       /dev/zero
/dev/ram*
/dev/console
/dev/tty[0-9]
/dev/cu*
/dev/hd[ab]*                # Hard disks
/dev/sd*                    # SCSI disks
/dev/fd0*                   # Floppy disk drives
/dev/cdrom /dev/modem       # Links to real devices, which will be copied
/dev/mouse                  # In case you want to use a mouse...

#####  utmp and wtmp.  
#  Set up links for any old-style programs that expect them in /etc.  
/etc/utmp     -> /var/run/utmp
/var/run/utmp <= /dev/null        # This clears utmp on the floppy
/etc/wtmp     -> /var/log/wtmp
/var/log/wtmp <= /dev/null

/usr/lib/terminfo/v/vt100   
/usr/lib/terminfo/v/vt100-am
/usr/lib/terminfo/l/linux
/usr/lib/terminfo/l/linux-m
/usr/lib/terminfo/l/linux-nic

# If you want to load a special keytable, add the filename here:
#/usr/lib/kbd/keytables/defkeymap.map

#####  Empty directories
/mnt/*           # all mount points
/proc               
/tmp                
/usr/tmp
/usr/spool/uucp     

#####  MODULES and support programs for them.
insmod
rmmod
lsmod
depmod
modprobe
/sbin/kerneld
/etc/modules.conf	/etc/conf.modules   #  Whichever you use
#
#       You probably want to be more selective than this:
/lib/modules/$RELEASE/*/*.o
#
#       If you use Redhat's kernel-modules package, you'll have directories
#       like /lib/modules/2.0.35-7.  In this case, use a glob expression
#       like this instead:
#/lib/modules/$RELEASE-*/*/*.o


#####  ESSENTIAL SYSTEM UTILITIES
# (your rescue disk may not boot if these are not present.)
chmod		   	
chown		   	
chroot
cp			   	
date		   	
df			   	
id
mkdir		   	
pwd
rm
shutdown
stty		   	
sync          
uname

#####  NON-ESSENTIAL BUT USEFUL UTILITIES
cut
diff       
dd			   	
du			   	
egrep	fgrep	grep
find       
free
fuser         
gunzip	gzip
head	tail
mkswap        
mknod		   	
mt   # indispensable tape utility.  For floppy tapes, use ftmt.
ps			   	
passwd		   	
reboot		   	
tar
touch		   	
tr
whoami
wc
zcat		   	


#####  DISK AND FILE SYSTEM UTILITIES
fdisk         
e2fsck	fsck	fsck.ext2     
mke2fs	mkfs	mkfs.ext2     
tune2fs       
mklost+found  


#####  FILES FOR RESTORING BACKUPS
#  I use the tob package for backups, so I include everything to do
#  restorations.  You might want to include man pages or help files.
#tob
#afio	#  Needed by tob
#/usr/etc/tob.rc
#/usr/etc/tob/*
#/usr/etc/tob/lists/
#/usr/etc/tob/volumes/*


#####  A basic text editor.  I use jove, a light-weight emacs clone
#####  which is small and requires only libc and libtermcap.
#jove
#/usr/lib/jove/jove.rc

#####  For user "root".
#/root/.profile
#  A generic .profile:
/root/.profile <= ./Replacements/root/.profile
/root/.*shrc


#####  End of Bootdisk_Contents
