This lists the contents of files and directories that I keep on my hard disk to use when building boot/root and utility diskettes. It shows which files I put in the /etc and /bin directories on my diskettes.
The sample shell scripts in the next section use these directories and files as a model to build the diskettes.
The boot/root listing is of directory boot_disk:
total 226
drwxr-xr-x 2 root root 1024 Oct 8 13:40 bin/
drwxr-xr-x 2 root root 3072 Sep 8 16:37 dev/
drwxr-xr-x 2 root root 1024 Oct 8 12:38 etc/
drwxr-xr-x 2 root root 1024 Sep 10 14:58 lib/
-rw-r--r-- 1 root root 297956 Jan 25 21:55 vmlinux
boot_disk/bin:
total 366
-rwxr-xr-x 1 root root 4376 Sep 9 21:34 cat*
-rwxr-xr-x 1 root root 4112 Sep 9 21:34 chown*
-rwxr-xr-x 1 root root 12148 Sep 9 21:34 cp*
-rwxr-xr-x 1 root root 4376 Sep 9 21:34 cut*
-rwxr-xr-x 1 root root 7660 Sep 9 21:34 dd*
-rwxr-xr-x 1 root root 4696 Sep 9 21:34 df*
-rwx--x--x 1 root root 1392 Sep 10 14:13 hostname*
-rwxr-xr-x 1 root root 5252 Sep 9 21:34 ln*
-rwsr-xr-x 1 root root 6636 Sep 9 21:34 login*
-rwxr-xr-x 1 root root 13252 Sep 9 21:34 ls*
-rwxr-xr-x 1 root root 4104 Sep 9 21:34 mkdir*
-rwxr-xr-x 1 root root 21504 Sep 10 15:27 more*
-rwxr-xr-x 1 root root 6744 Sep 9 21:34 mv*
-rwxr-xr-x 1 root root 9780 Sep 9 21:34 ps*
-rwxr-xr-x 1 root root 5076 Sep 9 21:34 rm*
-r-xr-xr-x 1 root root 12604 Sep 9 21:34 sed*
-rwxr-xr-x 1 root root 222208 Sep 9 21:34 sh*
-rws--x--x 1 root root 16464 Sep 9 21:34 su*
-rwxr-xr-x 1 root root 1216 Sep 9 21:34 sync*
boot_disk/dev:
total 73
-rwxr-xr-x 1 root root 8331 Sep 8 16:31 MAKEDEV*
crw-r--r-- 1 root root 10, 3 Sep 8 16:31 bmouseatixl
crw-r--r-- 1 root root 10, 0 Sep 8 16:31 bmouselogitec
crw-r--r-- 1 root root 10, 2 Sep 8 16:31 bmousems
crw-r--r-- 1 root root 10, 1 Sep 8 16:31 bmouseps2
crw------- 1 root root 0, 0 Sep 8 16:31 boot0
crw-r--r-- 1 root root 4, 0 Sep 8 16:31 console
crw-r--r-- 1 root root 5, 64 Sep 8 16:31 cua0
crw-r--r-- 1 root root 5, 65 Sep 8 16:31 cua1
crw-r--r-- 1 root root 5, 66 Sep 8 16:31 cua2
crw-r--r-- 1 root root 5, 67 Sep 8 16:31 cua3
brw-r--r-- 1 root root 2, 0 Sep 8 16:31 fd0
brw-r--r-- 1 root root 2, 12 Sep 8 16:31 fd0D360
brw-r--r-- 1 root root 2, 16 Sep 8 16:31 fd0D720
brw-r--r-- 1 root root 2, 28 Sep 8 16:31 fd0H1440
brw-r--r-- 1 root root 2, 12 Sep 8 16:31 fd0H360
brw-r--r-- 1 root root 2, 16 Sep 8 16:31 fd0H720
brw-r--r-- 1 root root 2, 16 Sep 8 16:31 fd0Q720
brw-r--r-- 1 root root 2, 4 Sep 8 16:31 fd0d360
brw-r--r-- 1 root root 2, 8 Sep 8 16:31 fd0h1200
brw-r--r-- 1 root root 2, 20 Sep 8 16:31 fd0h360
brw-r--r-- 1 root root 2, 24 Sep 8 16:31 fd0h720
brw-r--r-- 1 root root 2, 24 Sep 8 16:31 fd0q720
brw-r--r-- 1 root root 2, 1 Sep 8 16:31 fd1
brw-r--r-- 1 root root 2, 13 Sep 8 16:31 fd1D360
brw-r--r-- 1 root root 2, 17 Sep 8 16:31 fd1D720
brw-r--r-- 1 root root 2, 29 Sep 8 16:31 fd1H1440
brw------- 1 root root 2, 31 Sep 8 16:31 fd1H1722
brw-r--r-- 1 root root 2, 13 Sep 8 16:31 fd1H360
brw-r--r-- 1 root root 2, 17 Sep 8 16:31 fd1H720
brw-r--r-- 1 root root 2, 17 Sep 8 16:31 fd1Q720
brw-r--r-- 1 root root 2, 5 Sep 8 16:31 fd1d360
brw-r--r-- 1 root root 2, 9 Sep 8 16:31 fd1h1200
brw-r--r-- 1 root root 2, 21 Sep 8 16:31 fd1h360
brw-r--r-- 1 root root 2, 25 Sep 8 16:31 fd1h720
brw-r--r-- 1 root root 2, 25 Sep 8 16:31 fd1q720
brw-r----- 1 root root 3, 0 Sep 8 16:31 hda
brw-r----- 1 root root 3, 1 Sep 8 16:31 hda1
brw-r----- 1 root root 3, 2 Sep 8 16:31 hda2
brw-r----- 1 root root 3, 3 Sep 8 16:31 hda3
brw-r----- 1 root root 3, 4 Sep 8 16:31 hda4
brw-r----- 1 root root 3, 5 Sep 8 16:31 hda5
brw-r----- 1 root root 3, 6 Sep 8 16:31 hda6
brw-r----- 1 root root 3, 7 Sep 8 16:31 hda7
brw-r----- 1 root root 3, 8 Sep 8 16:31 hda8
brw-r----- 1 root root 3, 64 Sep 8 16:31 hdb
brw-r----- 1 root root 3, 65 Sep 8 16:31 hdb1
brw-r----- 1 root root 3, 66 Sep 8 16:31 hdb2
brw-r----- 1 root root 3, 67 Sep 8 16:31 hdb3
brw-r----- 1 root root 3, 68 Sep 8 16:31 hdb4
brw-r----- 1 root root 3, 69 Sep 8 16:31 hdb5
brw-r----- 1 root root 3, 70 Sep 8 16:31 hdb6
brw-r----- 1 root root 3, 71 Sep 8 16:31 hdb7
brw-r----- 1 root root 3, 72 Sep 8 16:31 hdb8
crw-r----- 1 root root 1, 2 Sep 8 16:31 kmem
brw------- 1 root root 12, 0 Sep 8 16:31 loop0
brw------- 1 root root 12, 1 Sep 8 16:31 loop1
crw-r--r-- 1 root root 6, 0 Sep 8 16:31 lp0
crw-r--r-- 1 root root 6, 1 Sep 8 16:31 lp1
crw-r--r-- 1 root root 6, 2 Sep 8 16:31 lp2
brw-r--r-- 1 root root 12, 0 Sep 8 16:31 mcd0
crw-r----- 1 root root 1, 1 Sep 8 16:31 mem
crw-r--r-- 1 root root 5, 65 Sep 8 16:31 modem
crw-r--r-- 1 root root 5, 64 Sep 8 16:31 mouse
crw-r--r-- 1 root root 27, 4 Sep 8 16:31 nrft0
crw-r--r-- 1 root root 27, 5 Sep 8 16:31 nrft1
crw-r--r-- 1 root root 27, 6 Sep 8 16:31 nrft2
crw-r--r-- 1 root root 27, 7 Sep 8 16:31 nrft3
crw------- 1 root root 9, 128 Sep 8 16:31 nrmt0
crw-r--r-- 1 root root 1, 3 Sep 8 16:31 null
crw-r----- 1 root root 6, 0 Sep 8 16:31 par0
crw-r----- 1 root root 6, 1 Sep 8 16:31 par1
crw-r----- 1 root root 6, 2 Sep 8 16:31 par2
crw-r----- 1 root root 1, 4 Sep 8 16:31 port
crw-r--r-- 1 root root 10, 1 Sep 8 16:31 ps2aux
crw-r--r-- 1 root root 4, 128 Sep 8 16:31 ptyp0
crw-r--r-- 1 root root 4, 129 Sep 8 16:31 ptyp1
crw-r--r-- 1 root root 4, 130 Sep 8 16:31 ptyp2
crw-r--r-- 1 root root 4, 131 Sep 8 16:31 ptyp3
crw-r--r-- 1 root root 4, 132 Sep 8 16:31 ptyp4
crw-r--r-- 1 root root 4, 133 Sep 8 16:31 ptyp5
crw-r--r-- 1 root root 4, 134 Sep 8 16:31 ptyp6
crw-r--r-- 1 root root 4, 135 Sep 8 16:31 ptyp7
crw-r--r-- 1 root root 4, 136 Sep 8 16:31 ptyp8
crw-r--r-- 1 root root 4, 137 Sep 8 16:31 ptyp9
crw-r--r-- 1 root root 4, 138 Sep 8 16:31 ptypa
crw-r--r-- 1 root root 4, 139 Sep 8 16:31 ptypb
crw-r--r-- 1 root root 4, 140 Sep 8 16:31 ptypc
crw-r--r-- 1 root root 4, 141 Sep 8 16:31 ptypd
crw-r--r-- 1 root root 4, 142 Sep 8 16:31 ptype
crw-r--r-- 1 root root 4, 143 Sep 8 16:31 ptypf
brw-r----- 1 root root 1, 0 Sep 8 16:31 ram
crw-r--r-- 1 root root 27, 0 Sep 8 16:31 rft0
crw-r--r-- 1 root root 27, 1 Sep 8 16:31 rft1
crw-r--r-- 1 root root 27, 2 Sep 8 16:31 rft2
crw-r--r-- 1 root root 27, 3 Sep 8 16:31 rft3
crw------- 1 root root 9, 0 Sep 8 16:31 rmt0
brw-r----- 1 root root 8, 0 Sep 8 16:31 sda
brw-r----- 1 root root 8, 1 Sep 8 16:31 sda1
brw-r----- 1 root root 8, 2 Sep 8 16:31 sda2
brw-r----- 1 root root 8, 3 Sep 8 16:31 sda3
brw-r----- 1 root root 8, 4 Sep 8 16:31 sda4
brw-r----- 1 root root 8, 5 Sep 8 16:31 sda5
brw-r----- 1 root root 8, 6 Sep 8 16:31 sda6
brw-r----- 1 root root 8, 7 Sep 8 16:31 sda7
brw-r----- 1 root root 8, 8 Sep 8 16:31 sda8
brw-r----- 1 root root 8, 16 Sep 8 16:31 sdb
brw-r----- 1 root root 8, 17 Sep 8 16:31 sdb1
brw-r----- 1 root root 8, 18 Sep 8 16:31 sdb2
brw-r----- 1 root root 8, 19 Sep 8 16:31 sdb3
brw-r----- 1 root root 8, 20 Sep 8 16:31 sdb4
brw-r----- 1 root root 8, 21 Sep 8 16:31 sdb5
brw-r----- 1 root root 8, 22 Sep 8 16:31 sdb6
brw-r----- 1 root root 8, 23 Sep 8 16:31 sdb7
brw-r----- 1 root root 8, 24 Sep 8 16:31 sdb8
brw------- 1 root root 8, 32 Sep 8 16:31 sdc
brw------- 1 root root 8, 33 Sep 8 16:31 sdc1
brw------- 1 root root 8, 34 Sep 8 16:31 sdc2
brw------- 1 root root 8, 35 Sep 8 16:31 sdc3
brw------- 1 root root 8, 36 Sep 8 16:31 sdc4
brw------- 1 root root 8, 37 Sep 8 16:31 sdc5
brw------- 1 root root 8, 38 Sep 8 16:31 sdc6
brw------- 1 root root 8, 39 Sep 8 16:31 sdc7
brw------- 1 root root 8, 40 Sep 8 16:31 sdc8
brw------- 1 root root 8, 48 Sep 8 16:31 sdd
brw------- 1 root root 8, 49 Sep 8 16:31 sdd1
brw------- 1 root root 8, 50 Sep 8 16:31 sdd2
brw------- 1 root root 8, 51 Sep 8 16:31 sdd3
brw------- 1 root root 8, 52 Sep 8 16:31 sdd4
brw------- 1 root root 8, 53 Sep 8 16:31 sdd5
brw------- 1 root root 8, 54 Sep 8 16:31 sdd6
brw------- 1 root root 8, 55 Sep 8 16:31 sdd7
brw------- 1 root root 8, 56 Sep 8 16:31 sdd8
brw------- 1 root root 8, 64 Sep 8 16:31 sde
brw------- 1 root root 8, 65 Sep 8 16:31 sde1
brw------- 1 root root 8, 66 Sep 8 16:31 sde2
brw------- 1 root root 8, 67 Sep 8 16:31 sde3
brw------- 1 root root 8, 68 Sep 8 16:31 sde4
brw------- 1 root root 8, 69 Sep 8 16:31 sde5
brw------- 1 root root 8, 70 Sep 8 16:31 sde6
brw------- 1 root root 8, 71 Sep 8 16:31 sde7
brw------- 1 root root 8, 72 Sep 8 16:31 sde8
brw-r--r-- 1 root root 11, 0 Sep 8 16:31 sr0
brw-r----- 1 root root 11, 1 Sep 8 16:31 sr1
brw-r----- 1 root root 11, 2 Sep 8 16:31 sr2
brw-r----- 1 root root 3, 1 Sep 8 16:31 swap
crw-r--r-- 1 root root 5, 0 Sep 8 16:31 tty
crw-r--r-- 1 root root 4, 0 Sep 8 16:31 tty0
crw------- 1 root root 4, 1 Sep 8 16:31 tty1
crw-r--r-- 1 root root 4, 2 Sep 8 16:31 tty2
-rw-r--r-- 1 root root 20 Sep 8 16:31 tty21
crw-r--r-- 1 root root 4, 3 Sep 8 16:31 tty3
crw-r--r-- 1 root root 4, 4 Sep 8 16:31 tty4
crw-r--r-- 1 root root 4, 5 Sep 8 16:31 tty5
crw-r--r-- 1 root root 4, 6 Sep 8 16:31 tty6
crw------- 1 root root 4, 7 Sep 8 16:31 tty7
crw------- 1 root root 4, 8 Sep 8 16:31 tty8
crw-r--r-- 1 root root 4, 64 Sep 8 16:31 ttyS0
crw-r--r-- 1 root root 4, 65 Sep 8 16:31 ttyS1
crw-r--r-- 1 root root 4, 66 Sep 8 16:31 ttyS2
crw-r--r-- 1 root root 4, 192 Sep 8 16:31 ttyp0
crw-r--r-- 1 root root 4, 193 Sep 8 16:31 ttyp1
crw-r--r-- 1 root root 4, 194 Sep 8 16:31 ttyp2
crw-r--r-- 1 root root 4, 195 Sep 8 16:31 ttyp3
crw-r--r-- 1 root root 4, 196 Sep 8 16:31 ttyp4
crw-r--r-- 1 root root 4, 197 Sep 8 16:31 ttyp5
crw-r--r-- 1 root root 4, 198 Sep 8 16:31 ttyp6
crw-r--r-- 1 root root 4, 199 Sep 8 16:31 ttyp7
crw-r--r-- 1 root root 4, 200 Sep 8 16:31 ttyp8
crw-r--r-- 1 root root 4, 201 Sep 8 16:31 ttyp9
crw-r--r-- 1 root root 4, 202 Sep 8 16:31 ttypa
crw-r--r-- 1 root root 4, 203 Sep 8 16:31 ttypb
crw-r--r-- 1 root root 4, 204 Sep 8 16:31 ttypc
crw-r--r-- 1 root root 4, 205 Sep 8 16:31 ttypd
crw-r--r-- 1 root root 4, 206 Sep 8 16:31 ttype
crw-r--r-- 1 root root 4, 207 Sep 8 16:31 ttypf
-rw------- 1 root root 63488 Sep 8 16:31 ttys0
crw-r--r-- 1 root root 4, 67 Sep 8 16:31 ttys3
crw-r--r-- 1 root root 1, 5 Sep 8 16:31 zero
boot_disk/etc:
total 173
-rw-r--r-- 1 root root 53 Sep 8 18:48 boot.env
-rwxr-xr-x 1 root root 27408 Sep 8 18:48 e2fsck*
-rwxr-xr-x 1 root root 18540 Sep 8 18:48 fdisk*
-rw-r--r-- 1 root root 69 Oct 8 12:27 fstab
-r-x------ 1 root root 13312 Sep 8 18:48 getty*
-rw-r--r-- 1 root root 334 Sep 8 18:48 group
-rw-r--r-- 1 root root 12 Sep 8 18:48 host.conf
-rw-r--r-- 1 root root 62 Sep 8 18:48 hosts
-r-x------ 1 root root 6684 Sep 8 18:48 ifconfig*
-rwxr-xr-x 1 root root 11492 Sep 8 18:48 init*
-rw-r--r-- 1 root root 1017 Sep 9 22:12 inittab
-rw-r--r-- 1 root root 0 Oct 8 12:19 issue
-rw-r----- 1 root root 5137 Sep 8 18:48 login.defs
-rwxr-xr-x 1 root root 14028 Sep 8 18:48 mke2fs*
-rwxr-x--- 1 root root 2436 Sep 8 18:48 mkswap*
-rwxr-xr-x 1 root root 11288 Sep 8 18:48 mount*
-rw-r--r-- 1 root root 327 Sep 8 18:48 passwd
-rwxr-xr-x 1 root root 383 Sep 10 16:02 profile*
-rw-r--r-- 1 root root 94 Sep 8 18:48 protocols
-rwxr-xr-x 1 root root 334 Oct 8 12:27 rc*
-rwxr-xr-x 1 root root 9220 Sep 8 18:48 reboot*
-r-x------ 1 root root 4092 Sep 8 18:48 route*
-rw-r--r-- 1 root root 20 Sep 8 18:48 securetty
-rw-r--r-- 1 root root 9749 Sep 8 18:48 services
-rw-r--r-- 1 root root 36 Sep 8 18:48 shells
-rwxr-xr-x 1 root root 13316 Sep 8 18:48 shutdown*
-rwxr-xr-x 1 root root 2496 Sep 8 18:48 swapoff*
-rwxr-xr-x 1 root root 2496 Sep 8 18:48 swapon*
-rw-r--r-- 1 root root 5314 Sep 8 18:48 termcap
-rwxr-xr-x 1 root root 5412 Sep 8 18:48 umount*
-rw-r--r-- 1 root root 224 Sep 8 18:48 utmp
-rw-r--r-- 1 root root 280 Sep 8 18:48 wtmp
boot_disk/lib:
total 629
-rwxr-xr-x 1 root root 17412 Sep 10 14:58 ld.so*
-rwxr-xr-x 1 root root 623620 Sep 8 18:33 libc.so.4*
<sect2>Utility Disk ls-lR Directory Listing
<p>
The utility listing is of directory util_disk:
total 1
drwxr-xr-x 2 root root 1024 Sep 10 16:05 bin/
util_disk/bin:
total 897
-rwxr-xr-x 1 root root 41984 Sep 10 14:11 cpio*
-rwxr-xr-x 1 root root 504451 Sep 9 21:39 ftape.o*
-rwxr-xr-x 1 root root 63874 Sep 9 21:40 gzip*
-rwxr-xr-x 1 root root 13316 Sep 9 21:34 insmod*
-rwxr-xr-x 1 root root 58 Sep 9 21:34 lsmod*
-rwxr-xr-x 1 root root 3288 Sep 9 21:34 mknod*
-rwxr-xr-x 1 root root 9220 Sep 9 21:34 rmmod*
-rwxr-xr-x 1 root root 226308 Sep 9 22:13 tar*
There are two shell scripts:
Both are currently configured to run in the parent directory of boot_disk and util_disk, each of which contains everything to be copied to it's diskette. Note that these shell scripts will *NOT* automatically set up and copy all the files for you - you work out which files are needed, set up the directories and copy the files to those directories. The shell scripts are samples which will copy the contents of those directories. Note that they are primitive shell scripts and are not meant for the novice user.
The scripts both contain configuration variables at the start which allow them to be easily configured to run anywhere. First, set up the model directories and copy all the required files into them. Then check the configuration variables in the shell scripts and change them as required before running the scripts.
# mkroot: make a boot/boot disk - creates a boot/root diskette
# by building a file system on it, then mounting it and
# copying required files from a model.
# Note: the model to copy from from must dirst be set up,
# then change the configuration variables below to suit
# your system.
#
# usage: mkroot [nokernel]
# if the parameter is omitted, then the kernel and LILO
# are copied.
# Copyright (c) Graham Chapman 1994. All rights reserved.
# Permission is granted for this material to be freely
# used and distributed, provided the source is acknowledged.
# No warranty of any kind is provided. You use this material
# at your own risk.
# Configuration variables...
BOOTDISKDIR=./boot_disk # name of boot disk directory
MOUNTPOINT=./mnt # temporary mount point for diskette
LILODIR=/sbin # directory containing lilo
LILOBOOT=/boot/boot.b # lilo boot sector
LILOMSG=./lilo.msg # lilo message to display at boot time
LILOCONFIG=./lilo.conf # lilo parms for boot/root diskette
DISKETTEDEV=/dev/fd0 # device name of diskette drive
echo $0: create boot/root diskette
echo Warning: data on diskette will be overwritten!
echo Insert diskette in $DISKETTEDEV and and press any key...
read anything
mke2fs $DISKETTEDEV
if [ $? -ne 0 ]
then
echo mke2fs failed
exit
fi
mount -t ext2 $DISKETTEDEV $MOUNTPOINT
if [ $? -ne 0 ]
then
echo mount failed
exit
fi
# copy the directories containing files
for i in bin etc lib
do
cp -dpr $BOOTDISKDIR/$i $MOUNTPOINT
done
# copy dev *without* trying to copy the files in it
cp -dpR $BOOTDISKDIR/dev $MOUNTPOINT
# create empty directories required
mkdir $MOUNTPOINT/proc
mkdir $MOUNTPOINT/tmp
mkdir $MOUNTPOINT/mnt
mkdir $MOUNTPOINT/usr
# copy the kernel
if [ "$1" != "nokernel" ]
then
echo "Copying kernel"
cp $BOOTDISKDIR/vmlinux $MOUNTPOINT
echo kernel copied
# setup lilo
cp $LILOBOOT $MOUNTPOINT
cp $LILOMSG $MOUNTPOINT
$LILODIR/lilo -C $LILOCONFIG
echo LILO installed
fi
umount $MOUNTPOINT
echo Root diskette complete
# mkutil: make a utility diskette - creates a utility diskette
# by building a file system on it, then mounting it and
# copying required files from a model.
# Note: the model to copy from from must first be set up,
# then change the configuration variables below to suit
# your system.
# Copyright (c) Graham Chapman 1994. All rights reserved.
# Permission is granted for this material to be freely
# used and distributed, provided the source is acknowledged.
# No warranty of any kind is provided. You use this material
# at your own risk.
# Configuration variables...
UTILDISKDIR=./util_disk # name of directory containing model
MOUNTPOINT=./mnt # temporary mount point for diskette
DISKETTEDEV=/dev/fd0 # device name of diskette drive
echo $0: create utility diskette
echo Warning: data on diskette will be overwritten!
echo Insert diskette in $DISKETTEDEV and and press any key...
read anything
mke2fs $DISKETTEDEV
if [ $? -ne 0 ]
then
echo mke2fs failed
exit
fi
# Any file system type would do here
mount -t ext2 $DISKETTEDEV $MOUNTPOINT
if [ $? -ne 0 ]
then
echo mount failed
exit
fi
# copy the directories containing files
cp -dpr $UTILDISKDIR/bin $MOUNTPOINT
umount $MOUNTPOINT
echo Utility diskette complete
Next Chapter, Previous Chapter
Table of contents of this chapter, General table of contents
Top of the document, Beginning of this Chapter