Browse Source

This is the replacement template for Sample.yard and Sample-pruned.yard which really haven't

been updated since 1996.  The new template is uptodate, and provides instructions inline
with the new features found in gbootroot's Yard.
master
freesource 23 years ago
parent
commit
60bf0b8d05
  1. 287
      yard/templates/Example.yard

287
yard/templates/Example.yard

@ -0,0 +1,287 @@
# $Id$
# Example.yard
#
# Creates a minimalistic runlevel 2 root filesystem with getty.
# Tested on Debian unstable/testing, but should work on other distributions
# (Mandrake, RedHat, etc.) by using the proper inittab (edit) and getty.
#
# Create either as a normal user or root. When using genext2fs it's necessary to specify a
# root filesystem size larger than the actual size because genext2fs uses different accounting
# information than mke2fs.
#
# Works both with and without devfs, i.e devfs=nomount.
#############################################################################
#
# Format rules:
# - Lines beginning with # or % are comments.
#
# - Blank lines and whitespace are ignored.
#
# - Lines of the form "filename1 -> filename2" will create symbolic (soft)
# links on the root fs. For example, if you want sh linked to ash
# in the root fs you could specify: "/bin/sh -> /bin/ash".
# The literal output from the last column found when using `ls -s`
# may be used, or fictional links may be created, for instance, ashsa -> bash
# (In this case if /bin/bash exists on the system the link would be
# /bin/ashsa -> /bin/bash, otherwise /asha -> /bash)
# (There is no way to specify hardlinks, though hard linked files
# that exist on the hard disk will be hard linked.)
#
# - Lines of the form "filename1 <= Replacements/pathto_filename2"
# will cause filename2 to be copied to filename1 on the root fs.
# This is useful for specifying trimmed-down replacements for
# /etc/passwd, /etc/inittab, etc. For the above example, filename2
# is found in its real path below the Replacements directory which is
# found in the default Replacements path of $HOME/yard/Replacements.
# Replacements may be specified in their absolute or relative paths
# (found using $PATH).
#
# - User defined paths may be specified in the Path Box (Edit->Settings->Path). These paths
# may be used to search for the relative paths for Replacements, links and files.
#
# - Glob designations (?, * and []) are generally allowed, eg /dev/hd[ab]*
# Wildcards are not allowed in link specs or replacement specs.
#
# - The $RELEASE variable which may be used to locate the modules directory can come from
# one of three sources, the kernel version returned from a selected kernel in the main section,
# a user defined kernel version in the ABS, or the value of `uname -r` returned automatically
# when the other two sources aren't specified.
#
# You don't need to specify shared libraries or loaders because
# necessary libraries are detected automatically.
# You may choose between two behaviors for the treatment of NSS and PAM
# libraries. The old Yard behavior assumes that only the user knows which
# service modules they want to include in the file set, and tests (see Tests menu)
# may be run on the configuration files to show what isn't provided,
# so that the user can include the missing modules manually by editing the template,
# but the user still needs to figure out any dependencies since the modules are dynamically
# loaded.
#
# The new Yard behavior (default) assumes that the user does know what they want
# based on what the user puts in the NSS (nsswitch.conf) and PAM (pam.conf or pam.d/*)
# configuration files. The configuration files are then parsed and the corresponding
# service modules are included in the file set if they exist on the host system, tests
# (see Tests menu) can be run to find out which ones don't exist. The service modules are
# checked for library dependencies. What this means is that the user only needs
# to specify the configuration files in the template, and doesn't need to concern themselves
# with the service modules or libraries involved. The new behavior is recommended,
# but if the old behavior is desired switch off Edit->Settings->"NSS Conf" and
# Edit->Settings->"PAM Conf".
#
# You don't need to explicitly specify intermediate directories unless you
# just want to make sure they exist.
#
##############################################################################
# init - parent of all processes
## Consider being creative with init, for instance use ash, sash, or busybox as an init replacement.
# Choose an inittab to compliment the traditional init in the page below.
/sbin/init
/sbin/telinit
/sbin/shutdown
/sbin/halt
/etc/init.d/halt # make this into a replacement
/sbin/swapon
/sbin/reboot
/etc/init.d/reboot # make this into a replacement
/etc/rc <= Replacements/etc/rc.debian-min # need two of these and put them in init.d
# Login stuff .. password not used.
/bin/login
/sbin/sulogin # used by inittab.debian-min
/etc/securetty <= Replacements/etc/securetty.debian-min
/root/.bashrc <= Replacements/root/.bashrc.debian
/root/.profile <= Replacements/root/.profile.debian
/home/user/.bashrc <= Replacements/home/user/.bashrc.debian
/home/user/.bash_profile <= Replacements/home/user/.bash_profile.debian
/etc/hostname <= Replacements/etc/hostname
/etc/motd <= Replacements/etc/motd
# Important stuff
#
# Create->Replacements-> fstab. Edit file to use /dev/ubd/0 or /dev/ram
/etc/fstab <= ./Replacements/etc/fstab.new
#
/etc/issue # nice to have
#
# No password for anyone.
#/etc/group <= Replacements/etc/group.debian-min
#/etc/passwd <= Replacements/etc/passwd.debian-min
#
# Shadow password root=root user=user
/etc/group <= Replacements/etc/group.debian
/etc/passwd <= Replacements/etc/passwd.debian
/etc/shadow <= Replacements/etc/shadow.debian
/etc/login.defs
# Specify these binaries absolutely because boot scripts need them to be here.
/bin/echo # for inittab.debian.sample
/bin/mount
/bin/umount
/bin/cat
/bin/hostname
/bin/ln
/bin/ls
/bin/more
/bin/mv
##### SHELLS
# Bash is huge and requires libncurses.so.
# Most people use a smaller lightweight shell, like ash or kiss,
# and use that instead.
/bin/sh -> bash
# This could be made the init=sash
/bin/sash
#
/etc/profile
/etc/shells # Make sure ash is listed if it is used.
# PROVISIONS FOR PAM:
/etc/pam.d/login
# PROVISIONS FOR NSS
# If you use the old libc5, or uClibc you don't need this. Comment out this line.
#
/etc/nsswitch.conf <= ./Replacements/etc/nsswitch.conf.sample
##### INITTAB and GETTY
# Use one of these pairs, based on your distribution:
# Remember these aren't absolutely necessary.
#
#===== DEBIAN (1.1) uses a program called "getty" which is actually
# agetty in disguise:
/etc/inittab <= Replacements/etc/inittab.debian-min
/sbin/getty
#
#
#===== REDHAT (5.x, 6.0) uses getty
#/etc/inittab <= Replacements/etc/inittab
#/sbin/getty
#
#
#===== MANDRAKE (7.0, 8.0) uses mingetty
#/etc/inittab <= Replacements/etc/inittab.mingetty
#/sbin/mingetty
#
#
#===== SLACKWARE uses agetty:
#/etc/inittab <= Replacements/etc/inittab.agetty
#/sbin/agetty
#
#
#===== 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 - for devfs=nomount the bare minimum required is an inital console, otherwise
# nothing is required.
/dev/console
/dev/ram*
/dev/mem
/dev/kmem
/dev/null
/dev/zero
/dev/tty[0-9] # nice for getty
## /dev/ubd0 <= Replacements/dev/ubd0
##/dev/mem /dev/kmem
##/dev/null /dev/zero
##/dev/ram*
##/dev/hd[abcd]* # Hard disks
##/dev/ttyS[0-9] # Serial ports (new style)
# Optional devices. Uncomment the ones you want, but
# keep in mind that each device file consumes an inode.
##/dev/fd0* # Floppy disk drives
#/dev/*tape* # Tape device links
#/dev/*rft0 # Floppy tape devices
#/dev/st? # SCSI tape drives
#/dev/sd* # SCSI disks
##/dev/cdrom /dev/modem # Links to real devices, which will be copied
#/dev/mouse
##### utmp and wtmp.
# No need for this.
##### terminfo entries for programs which need terminal capabilities like vi and nano.
/usr/share/terminfo/v/vt100 # make these replacements
/usr/share/terminfo/l/linux # this too
# If you want to load a special keytable, add the filename here:
#/usr/lib/kbd/keytables/defkeymap.map
##### Empty directories
/proc
/tmp
/var/tmp
/var/log
/var/run
##### Special links
/etc/mtab -> /proc/mounts
##### MODULES and support programs for them.
insmod
rmmod
lsmod
depmod
modprobe
/etc/modules.conf
#
# The actual modules. You probably want to be more selective than this.
# Do an "lsmod" and include the modules you use.
#/lib/modules/$RELEASE/*/*.o
##### ESSENTIAL SYSTEM UTILITIES
# (your rescue disk may not boot if these are not present.)
chmod
chown
chroot
cp
df
id
mkdir
pwd
rm
stty
sync
uname
##### NON-ESSENTIAL BUT USEFUL UTILITIES
which
ldd
du
rmdir
less
dircolors
grep
tail
mknod
ps
touch
whoami
diff
wc
# Editors
vi
# Small, free, pico replacement.
nano
##### DISK AND FILE SYSTEM UTILITIES
fdisk
e2fsck
mke2fs
tune2fs
dumpe2fs
debugfs
e2image
badblocks
Loading…
Cancel
Save