#!/bin/sh

PATH=/sbin:$PATH
export PATH

IMAGE=images/rescue.img
TMPIMAGE=/tmp/rescue.img
DIR=rescue
SIZE=3500

MNTPOINT=/tmp/mkimage.mnt-$$

if [ "$1" != "-f" ]; then
    if [ -f $IMAGE ]; then
	echo "$IMAGE already exists." >&2
	exit 1
    fi
fi

rm -f $TMPIMAGE
dd if=/dev/zero of=$TMPIMAGE bs=1k count=$SIZE
mke2fs -q $TMPIMAGE $SIZE <<EOF
y
EOF

mkdir -p $MNTPOINT

mount -o loop -t ext2 $TMPIMAGE $MNTPOINT

(cd $DIR; find . -name CVS -prune -o -name TRANS.TBL -prune -o -print | cpio -pvm --no-preserve-owner $MNTPOINT)
mknod $MNTPOINT/dev/console c 4 0
mknod $MNTPOINT/dev/hda b 3 0
mknod $MNTPOINT/dev/hda1 b 3 1
mknod $MNTPOINT/dev/hda2 b 3 2
mknod $MNTPOINT/dev/hda3 b 3 3
mknod $MNTPOINT/dev/hda4 b 3 4
mknod $MNTPOINT/dev/hda5 b 3 5
mknod $MNTPOINT/dev/hda6 b 3 6
mknod $MNTPOINT/dev/hda7 b 3 7
mknod $MNTPOINT/dev/hda8 b 3 8
mknod $MNTPOINT/dev/hda9 b 3 9
mknod $MNTPOINT/dev/hda10 b 3 10
mknod $MNTPOINT/dev/hda11 b 3 11
mknod $MNTPOINT/dev/hda12 b 3 12
mknod $MNTPOINT/dev/hda13 b 3 13
mknod $MNTPOINT/dev/hda14 b 3 14
mknod $MNTPOINT/dev/hda15 b 3 15
mknod $MNTPOINT/dev/hda16 b 3 16
mknod $MNTPOINT/dev/hdb b 3 64
mknod $MNTPOINT/dev/hdb1 b 3 65
mknod $MNTPOINT/dev/hdb2 b 3 66
mknod $MNTPOINT/dev/hdb3 b 3 67
mknod $MNTPOINT/dev/hdb4 b 3 68
mknod $MNTPOINT/dev/hdb5 b 3 69
mknod $MNTPOINT/dev/hdb6 b 3 70
mknod $MNTPOINT/dev/hdb7 b 3 71
mknod $MNTPOINT/dev/hdb8 b 3 72
mknod $MNTPOINT/dev/hdb9 b 3 73
mknod $MNTPOINT/dev/hdb10 b 3 74
mknod $MNTPOINT/dev/hdb11 b 3 75
mknod $MNTPOINT/dev/hdb12 b 3 76
mknod $MNTPOINT/dev/hdb13 b 3 77
mknod $MNTPOINT/dev/hdb14 b 3 78
mknod $MNTPOINT/dev/hdb15 b 3 79
mknod $MNTPOINT/dev/hdb16 b 3 80
mknod $MNTPOINT/dev/hdc b 22 0
mknod $MNTPOINT/dev/hdc1 b 22 1
mknod $MNTPOINT/dev/hdc2 b 22 2
mknod $MNTPOINT/dev/hdc3 b 22 3
mknod $MNTPOINT/dev/hdc4 b 22 4
mknod $MNTPOINT/dev/hdc5 b 22 5
mknod $MNTPOINT/dev/hdc6 b 22 6
mknod $MNTPOINT/dev/hdc7 b 22 7
mknod $MNTPOINT/dev/hdc8 b 22 8
mknod $MNTPOINT/dev/hdc9 b 22 9
mknod $MNTPOINT/dev/hdc10 b 22 10
mknod $MNTPOINT/dev/hdc11 b 22 11
mknod $MNTPOINT/dev/hdc12 b 22 12
mknod $MNTPOINT/dev/hdc13 b 22 13
mknod $MNTPOINT/dev/hdc14 b 22 14
mknod $MNTPOINT/dev/hdc15 b 22 15
mknod $MNTPOINT/dev/hdc16 b 22 16
mknod $MNTPOINT/dev/hdd b 22 64
mknod $MNTPOINT/dev/hdd1 b 22 65
mknod $MNTPOINT/dev/hdd2 b 22 66
mknod $MNTPOINT/dev/hdd3 b 22 67
mknod $MNTPOINT/dev/hdd4 b 22 68
mknod $MNTPOINT/dev/hdd5 b 22 69
mknod $MNTPOINT/dev/hdd6 b 22 70
mknod $MNTPOINT/dev/hdd7 b 22 71
mknod $MNTPOINT/dev/hdd8 b 22 72
mknod $MNTPOINT/dev/hdd9 b 22 73
mknod $MNTPOINT/dev/hdd10 b 22 74
mknod $MNTPOINT/dev/hdd11 b 22 75
mknod $MNTPOINT/dev/hdd12 b 22 76
mknod $MNTPOINT/dev/hdd13 b 22 77
mknod $MNTPOINT/dev/hdd14 b 22 78
mknod $MNTPOINT/dev/hdd15 b 22 79
mknod $MNTPOINT/dev/hdd16 b 22 80
mknod $MNTPOINT/dev/null c 1 3
mknod $MNTPOINT/dev/ram b 1 1
mknod $MNTPOINT/dev/ram1 b 1 1
mknod $MNTPOINT/dev/ram2 b 1 2
mknod $MNTPOINT/dev/ram3 b 1 3
mknod $MNTPOINT/dev/ram4 b 1 4
mknod $MNTPOINT/dev/ram5 b 1 5
mknod $MNTPOINT/dev/ram6 b 1 6
mknod $MNTPOINT/dev/ram7 b 1 7
mknod $MNTPOINT/dev/ram8 b 1 8
mknod $MNTPOINT/dev/scd0 b 11 0
mknod $MNTPOINT/dev/scd1 b 11 1
mknod $MNTPOINT/dev/scd2 b 11 2
mknod $MNTPOINT/dev/scd3 b 11 3
mknod $MNTPOINT/dev/scd4 b 11 4
mknod $MNTPOINT/dev/scd5 b 11 5
mknod $MNTPOINT/dev/scd6 b 11 6
mknod $MNTPOINT/dev/scd7 b 11 7
mknod $MNTPOINT/dev/sda b 8 0
mknod $MNTPOINT/dev/sda1 b 8 1
mknod $MNTPOINT/dev/sda2 b 8 2
mknod $MNTPOINT/dev/sda3 b 8 3
mknod $MNTPOINT/dev/sda4 b 8 4
mknod $MNTPOINT/dev/sda5 b 8 5
mknod $MNTPOINT/dev/sda6 b 8 6
mknod $MNTPOINT/dev/sda7 b 8 7
mknod $MNTPOINT/dev/sda8 b 8 8
mknod $MNTPOINT/dev/sda9 b 8 9
mknod $MNTPOINT/dev/sda10 b 8 10
mknod $MNTPOINT/dev/sda11 b 8 11
mknod $MNTPOINT/dev/sda12 b 8 12
mknod $MNTPOINT/dev/sda13 b 8 13
mknod $MNTPOINT/dev/sda14 b 8 14
mknod $MNTPOINT/dev/sda15 b 8 15
mknod $MNTPOINT/dev/sdb b 8 16
mknod $MNTPOINT/dev/sdb1 b 8 17
mknod $MNTPOINT/dev/sdb2 b 8 18
mknod $MNTPOINT/dev/sdb3 b 8 19
mknod $MNTPOINT/dev/sdb4 b 8 20
mknod $MNTPOINT/dev/sdb5 b 8 21
mknod $MNTPOINT/dev/sdb6 b 8 22
mknod $MNTPOINT/dev/sdb7 b 8 23
mknod $MNTPOINT/dev/sdb8 b 8 24
mknod $MNTPOINT/dev/sdb9 b 8 25
mknod $MNTPOINT/dev/sdb10 b 8 26
mknod $MNTPOINT/dev/sdb11 b 8 27
mknod $MNTPOINT/dev/sdb12 b 8 28
mknod $MNTPOINT/dev/sdb13 b 8 29
mknod $MNTPOINT/dev/sdb14 b 8 30
mknod $MNTPOINT/dev/sdb15 b 8 31
mknod $MNTPOINT/dev/sdc b 8 32
mknod $MNTPOINT/dev/sdc1 b 8 33
mknod $MNTPOINT/dev/sdc2 b 8 34
mknod $MNTPOINT/dev/sdc3 b 8 35
mknod $MNTPOINT/dev/sdc4 b 8 36
mknod $MNTPOINT/dev/sdc5 b 8 37
mknod $MNTPOINT/dev/sdc6 b 8 38
mknod $MNTPOINT/dev/sdc7 b 8 39
mknod $MNTPOINT/dev/sdc8 b 8 40
mknod $MNTPOINT/dev/sdc9 b 8 41
mknod $MNTPOINT/dev/sdc10 b 8 42
mknod $MNTPOINT/dev/sdc11 b 8 43
mknod $MNTPOINT/dev/sdc12 b 8 44
mknod $MNTPOINT/dev/sdc13 b 8 45
mknod $MNTPOINT/dev/sdc14 b 8 46
mknod $MNTPOINT/dev/sdc15 b 8 47
mknod $MNTPOINT/dev/sde b 8 64
mknod $MNTPOINT/dev/sde1 b 8 65
mknod $MNTPOINT/dev/sde2 b 8 66
mknod $MNTPOINT/dev/sde3 b 8 67
mknod $MNTPOINT/dev/sde4 b 8 68
mknod $MNTPOINT/dev/sde5 b 8 69
mknod $MNTPOINT/dev/sde6 b 8 70
mknod $MNTPOINT/dev/sde7 b 8 71
mknod $MNTPOINT/dev/sde8 b 8 72
mknod $MNTPOINT/dev/sde9 b 8 73
mknod $MNTPOINT/dev/sde10 b 8 74
mknod $MNTPOINT/dev/sde11 b 8 75
mknod $MNTPOINT/dev/sde12 b 8 76
mknod $MNTPOINT/dev/sde13 b 8 77
mknod $MNTPOINT/dev/sde14 b 8 78
mknod $MNTPOINT/dev/sde15 b 8 79
mknod $MNTPOINT/dev/sdf b 8 80
mknod $MNTPOINT/dev/sdf1 b 8 81
mknod $MNTPOINT/dev/sdf2 b 8 82
mknod $MNTPOINT/dev/sdf3 b 8 83
mknod $MNTPOINT/dev/sdf4 b 8 84
mknod $MNTPOINT/dev/sdf5 b 8 85
mknod $MNTPOINT/dev/sdf6 b 8 86
mknod $MNTPOINT/dev/sdf7 b 8 87
mknod $MNTPOINT/dev/sdf8 b 8 88
mknod $MNTPOINT/dev/sdf9 b 8 89
mknod $MNTPOINT/dev/sdf10 b 8 90
mknod $MNTPOINT/dev/sdf11 b 8 91
mknod $MNTPOINT/dev/sdf12 b 8 92
mknod $MNTPOINT/dev/sdf13 b 8 93
mknod $MNTPOINT/dev/sdf14 b 8 94
mknod $MNTPOINT/dev/sdf15 b 8 95
mknod $MNTPOINT/dev/sdg b 8 96
mknod $MNTPOINT/dev/sdg1 b 8 97
mknod $MNTPOINT/dev/sdg2 b 8 98
mknod $MNTPOINT/dev/sdg3 b 8 99
mknod $MNTPOINT/dev/sdg4 b 8 100
mknod $MNTPOINT/dev/sdg5 b 8 101
mknod $MNTPOINT/dev/sdg6 b 8 102
mknod $MNTPOINT/dev/sdg7 b 8 103
mknod $MNTPOINT/dev/sdg8 b 8 104
mknod $MNTPOINT/dev/systty c 4 0
mknod $MNTPOINT/dev/tty1 c 4 1
mknod $MNTPOINT/dev/tty2 c 4 2
mknod $MNTPOINT/dev/tty10 c 4 10
mknod $MNTPOINT/dev/tty11 c 4 11
mknod $MNTPOINT/dev/tty12 c 4 12
mknod $MNTPOINT/dev/zero c 1 5
chmod a+r $MNTPOINT/dev/null
chmod a+r $MNTPOINT/dev/zero
chmod u+s $MNTPOINT/bin/mount
chmod u+s $MNTPOINT/bin/ping
chmod ug+s $MNTPOINT/bin/restore
chmod u+s $MNTPOINT/bin/traceroute
chmod u+s $MNTPOINT/bin/umount

df $MNTPOINT

umount $MNTPOINT
echo -n "gzipping image..."
gzip -9 < $TMPIMAGE > $IMAGE
echo " done."

rm -rf $MNTPOINT 

size=`cat $IMAGE | wc -c`
echo "Rescue disk $size bytes"
filler=`expr 1474560 - $size`
dd if=/dev/zero bs=1 count=$filler >> $IMAGE
