#!/bin/csh -f

## Script file to Install some packages from the RedHat 5.0
## CD into a hard drive disk image file for use with bochs
## by KPL, Bochs Software Company

# Note: this script file used about 102Meg of disk space,
#       on the disk image file

#############################
# User Configurable Section #
#############################

## Name of actual image file to create with dd
## The parent directory should have enough disk
## space available to hold the size file you are
## creating.
set ddfile = /mnt/oldroot/linux.image

## a unix directory (mountpoint) where you will mount
## the loopback drive image.  Make this with mkdir
## before running this script.
set root = /mnt/loopback

## Where your RedHat CD is mounted
## Please mount this ahead of time
set redhat_cd_mountpoint = /mnt/cdrom

## 504Meg drive image
#set cylinders = 1024
#set heads     =   16
#set spt       =   63

## 126Meg drive image
set cylinders =  256
set heads     =   16
set spt       =   63

####################################
# End of User Configurable Section #
####################################

set sectors = 0
set kbytes  = 0
set mbytes  = 0
@ sectors = $cylinders * $heads * $spt
@ kbytes  = $sectors / 2
@ mbytes  = $kbytes /  1024
echo "number of 512 byte sectors on disk image is" $sectors
echo "number of KBytes is" $kbytes
echo "number of MBytes is" $mbytes

echo "creating blank disk image file with dd"
dd if=/dev/zero of=$ddfile bs=512 count=$sectors

echo "attaching disk image file to loopback device"
losetup /dev/loop0 $ddfile

echo "creating ext2 filesystem on disk image"
mkfs -t ext2 /dev/loop0 $kbytes

echo "mounting ext2 filesystem"
mount -t ext2 /dev/loop0 $root


echo "creating /var/lib/rpm directory on new filesystem"
mkdir $root/var
mkdir $root/var/lib
mkdir $root/var/lib/rpm

echo "changing directory to RedHat 5.0 CD"
pushd $redhat_cd_mountpoint/RedHat/RPMS

echo "installing some basic and useful packages to new filesystem"
rpm -i --root $root setup-1.9-2.noarch.rpm
rpm -i --root $root filesystem-1.3.1-2.noarch.rpm
rpm -i --root $root basesystem-4.9-1.noarch.rpm
rpm -i --root $root ldconfig-1.9.5-2.i386.rpm
rpm -i --root $root ld.so-1.9.5-3.i386.rpm
rpm -i --root $root redhat-release-5.0-1.noarch.rpm
rpm -i --root $root termcap-9.12.6-7.noarch.rpm
rpm -i --root $root libtermcap-2.0.8-6.i386.rpm
rpm -i --root $root --nodeps glibc-2.0.5c-10.i386.rpm
rpm -i --root $root fileutils-3.16-6.i386.rpm
rpm -i --root $root grep-2.1-1.i386.rpm
rpm -i --root $root bash-1.14.7-6.i386.rpm
rpm -i --root $root shadow-utils-970616-9.i386.rpm
rpm -i --root $root dev-2.5.4-1.i386.rpm
rpm -i --root $root MAKEDEV-2.3.1-1.noarch.rpm
rpm -i --root $root libc-5.3.12-24.i386.rpm
rpm -i --root $root SysVinit-2.71-3.i386.rpm
rpm -i --root $root rootfiles-1.5-3.noarch.rpm
rpm -i --root $root slang-0.99.38-2.i386.rpm
rpm -i --root $root newt-0.21-1.i386.rpm
rpm -i --root $root chkconfig-0.9-2.i386.rpm
rpm -i --root $root mktemp-1.4-2.i386.rpm
rpm -i --root $root mingetty-0.9.4-5.i386.rpm
rpm -i --root $root initscripts-3.25-1.i386.rpm
rpm -i --root $root adjtimex-1.3-2.i386.rpm
rpm -i --root $root aout-libs-1.4-8.i386.rpm
rpm -i --root $root at-3.1.7-2.i386.rpm
rpm -i --root $root gawk-3.0.2-2.i386.rpm
rpm -i --root $root ncurses-1.9.9e-6.i386.rpm
rpm -i --root $root zlib-1.0.4-2.i386.rpm
rpm -i --root $root info-3.9-7.i386.rpm
rpm -i --root $root m4-1.4-8.i386.rpm
rpm -i --root $root gdbm-1.7.3-14.i386.rpm
rpm -i --root $root tcsh-6.07-1.i386.rpm
rpm -i --root $root perl-5.004-1.i386.rpm
rpm -i --root $root autoconf-2.12-3.noarch.rpm
rpm -i --root $root bdflush-1.5-7.i386.rpm
rpm -i --root $root bin86-0.4-3.i386.rpm
rpm -i --root $root binutils-2.8.1.0.1-1.i386.rpm
rpm -i --root $root bison-1.25-3.i386.rpm
rpm -i --root $root byacc-1.9-6.i386.rpm
rpm -i --root $root cpio-2.4.2-6.i386.rpm
rpm -i --root $root tmpwatch-1.4-1.i386.rpm
rpm -i --root $root crontabs-1.6-1.noarch.rpm
rpm -i --root $root diffutils-2.7-8.i386.rpm
rpm -i --root $root e2fsprogs-1.10-4.i386.rpm
rpm -i --root $root etcskel-1.3-4.noarch.rpm
rpm -i --root $root file-3.22-6.i386.rpm
rpm -i --root $root findutils-4.1-20.i386.rpm
rpm -i --root $root flex-2.5.4a-2.i386.rpm
rpm -i --root $root gcc-2.7.2.3-8.i386.rpm
rpm -i --root $root gcc-c++-2.7.2.3-8.i386.rpm
rpm -i --root $root gdb-4.16-9.i386.rpm
rpm -i --root $root glibc-debug-2.0.5c-10.i386.rpm
rpm -i --root $root kernel-headers-2.0.31-7.i386.rpm
rpm -i --root $root glibc-devel-2.0.5c-10.i386.rpm
rpm -i --root $root gzip-1.2.4-9.i386.rpm
rpm -i --root $root iBCS-2.0-10.i386.rpm
rpm -i --root $root kbd-0.94-5.i386.rpm
rpm -i --root $root kbdconfig-1.5-1.i386.rpm
rpm -i --root $root kernel-2.0.31-7.i386.rpm
rpm -i --root $root kernel-modules-2.0.31-7.i386.rpm
rpm -i --root $root kernel-source-2.0.31-7.i386.rpm
rpm -i --root $root libelf-0.6.4-1.i386.rpm
rpm -i --root $root lilo-0.20-1.i386.rpm
rpm -i --root $root losetup-2.7f-1.i386.rpm
rpm -i --root $root make-3.76.1-2.i386.rpm
rpm -i --root $root mkdosfs-ygg-0.3b-5.i386.rpm
rpm -i --root $root modutils-2.1.55-4.i386.rpm
rpm -i --root $root mount-2.7f-1.i386.rpm
rpm -i --root $root mouseconfig-2.21-1.i386.rpm
rpm -i --root $root mtools-3.6-4.i386.rpm
rpm -i --root $root ncompress-4.2.4-9.i386.rpm
rpm -i --root $root net-tools-1.33-4.i386.rpm
rpm -i --root $root patch-2.1-5.i386.rpm
rpm -i --root $root portmap-4.0-7.i386.rpm
rpm -i --root $root procinfo-0.11-1.i386.rpm
rpm -i --root $root procps-1.2.4-1.i386.rpm
rpm -i --root $root psacct-6.3-2.i386.rpm
rpm -i --root $root psmisc-16-1.i386.rpm
rpm -i --root $root pwdb-0.54-6.i386.rpm
rpm -i --root $root rgrep-0.98.4-2.i386.rpm
rpm -i --root $root screen-3.7.4-1.i386.rpm
rpm -i --root $root sed-2.05-9.i386.rpm
rpm -i --root $root stat-1.5-6.i386.rpm
rpm -i --root $root strace-3.1-3.i386.rpm
rpm -i --root $root tar-1.12-1.i386.rpm
rpm -i --root $root textutils-1.22-4.i386.rpm
rpm -i --root $root time-1.7-4.i386.rpm
rpm -i --root $root timeconfig-2.1-3.i386.rpm
rpm -i --root $root unzip-5.31-1.i386.rpm
rpm -i --root $root which-1.0-7.i386.rpm
rpm -i --root $root zip-2.1-2.i386.rpm
rpm -i --root $root setconsole-1.0-3.noarch.rpm
rpm -i --root $root cracklib-2.5-4.i386.rpm
rpm -i --root $root cracklib-dicts-2.5-4.i386.rpm
rpm -i --nodeps --root $root pam-0.59-5.i386.rpm
rpm -i --root $root sh-utils-1.16-8.i386.rpm
rpm -i --root $root util-linux-2.7-11.i386.rpm
rpm -i --root $root vim-4.6-4.i386.rpm
echo "done with packages"
echo " "

## create a few basic setup files
echo "creating /etc/lilo.conf /etc/fstab /etc/sysconfig/network /etc/mtab"
echo "  on new filesystem"
popd
/bin/cp ./lilo.conf $root/etc/
/bin/cp ./fstab     $root/etc/
/bin/cp ./network   $root/etc/sysconfig/
touch               $root/etc/mtab
/bin/cp ./hello.cc  $root/root/

## we're done, unmount and detach loop device
echo "unmounting filesystem"
umount $root

echo "detaching loopback device from image file"
losetup -d /dev/loop0
