mirror of https://github.com/fspc/gbootroot.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
296 lines
9.4 KiB
296 lines
9.4 KiB
# $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 slightly larger than the actual size shown in Space Left 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 users only needs
|
|
# to specify the configuration files in the template, and don'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
|
|
/etc/init.d/rcS <= Replacements/etc/rcS.example
|
|
|
|
# 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
|
|
/usr/bin/find
|
|
|
|
##### 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
|
|
# /etc/pam.conf
|
|
|
|
# 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.
|
|
# Made by rcS if they don't exist.
|
|
|
|
##### terminfo entries for programs which need terminal capabilities like vi and nano.
|
|
/usr/share/terminfo/v/vt100
|
|
/usr/share/terminfo/l/linux
|
|
# The old way
|
|
#/etc/termcap <= Replacements/etc/termcap
|
|
reset
|
|
|
|
# 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
|
|
w
|
|
last
|
|
date
|
|
|
|
# Editors
|
|
vi
|
|
# Small, free, pico replacement.
|
|
nano
|
|
|
|
##### DISK AND FILE SYSTEM UTILITIES
|
|
fdisk
|
|
e2fsck
|
|
mke2fs
|
|
tune2fs
|
|
dumpe2fs
|
|
debugfs
|
|
e2image
|
|
badblocks
|