home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 November / VPR9911B.ISO / misc / src / trees / mkinitrd < prev    next >
Text File  |  1999-03-16  |  1KB  |  80 lines

  1. #!/bin/sh
  2.  
  3. PATH=/sbin:$PATH
  4. export PATH
  5.  
  6. BASEDIR=initrd
  7. SIZE=2000
  8.  
  9. while [ -n "$1" ] ; do
  10.     case "$1" in
  11.     "local")
  12.         IMAGES="$IMAGES local"
  13.         shift
  14.         ;;
  15.     "network")
  16.         IMAGES="$IMAGES network"
  17.         shift;
  18.         ;;
  19.     -f)
  20.         FORCE=-f
  21.         shift;
  22.         ;;
  23.     *)
  24.         echo "Useage:" >&2
  25.         echo "$0 [-f] [network] [local]" >&2
  26.         exit
  27.         ;;
  28.     esac
  29. done
  30.  
  31. if [ -z "$IMAGES" ]; then
  32.     IMAGES="local network"
  33. fi
  34.  
  35.  
  36. MNTPOINT=/tmp/mkimage.mnt-$$
  37.  
  38. for TARGET in $IMAGES; do
  39.  
  40.     IMAGE=initrd-$TARGET.img
  41.  
  42.     if [ "$FORCE" != "-f" ]; then
  43.     if [ -f $IMAGE ]; then
  44.         echo "$IMAGE already exists." >&2
  45.         continue;
  46.     fi
  47.     fi
  48.  
  49.     rm -f /tmp/$IMAGE
  50.     dd if=/dev/zero of=/tmp/$IMAGE bs=1k count=$SIZE
  51.     mke2fs -i 8096 -q /tmp/$IMAGE $SIZE <<EOF
  52. y
  53. EOF
  54.  
  55.     mkdir -p $MNTPOINT
  56.  
  57.     mount -o loop -t ext2 /tmp/$IMAGE $MNTPOINT
  58.  
  59.     (cd $BASEDIR; find . | cpio -vp $MNTPOINT)
  60.     (cd $TARGET; find . | cpio -vpud $MNTPOINT)
  61.  
  62.     df $MNTPOINT
  63.  
  64.     umount $MNTPOINT
  65.     mv -f /tmp/$IMAGE .
  66.     echo -n "gzipping image..."
  67.     mv $IMAGE $IMAGE.nogz
  68.     gzip -9 < $IMAGE.nogz > $IMAGE
  69.     echo " done."
  70.  
  71.     rm -rf $MNTPOINT 
  72.  
  73.     size=`cat $IMAGE | wc -c`
  74.     filler=`expr 1474560 - $size`
  75.  
  76.     if [ $TARGET = "local" ]; then
  77.     cp $IMAGE ../../../dosutils/autoboot/initrd.img
  78.     fi
  79. done
  80.