home *** CD-ROM | disk | FTP | other *** search
/ CD Actual 13 / CDA13.ISO / MISC / SRC / TREES / MKBOOT2 < prev    next >
Encoding:
Text File  |  1996-11-14  |  1.1 KB  |  61 lines

  1. #!/bin/sh
  2.  
  3. PATH=/sbin:$PATH
  4. export PATH
  5.  
  6. IMAGE=boot2.img
  7. FINALIMAGE=../../../images/boot.img
  8. DIR=boot2
  9. SIZE=2000
  10.  
  11. MNTPOINT=/tmp/mkimage.mnt-$$
  12.  
  13. if [ "$1" != "-f" ]; then
  14.     if [ -f $IMAGE ]; then
  15.     echo "$IMAGE already exists." >&2
  16.     exit 1
  17.     fi
  18.     if [ -f $FINALIMAGE ]; then
  19.     echo "$FINALIMAGE already exists." >&2
  20.     exit 1
  21.     fi
  22. fi
  23.  
  24. dd if=/dev/zero of=$IMAGE bs=1k count=$SIZE 2> /dev/null
  25.  
  26. for devnum in 0 1 2 3 4 5 6 7 8; do
  27.     if losetup /dev/loop$devnum $IMAGE 2>/dev/null ; then break; fi
  28. done
  29.  
  30. if [ "$devnum" = "8" ]; then
  31.     rm -rf $MNTPOINT $IMAGE
  32.     echo "All of your loopback devices are in use!" >&2
  33.     exit 1
  34. fi
  35.  
  36. LODEV=/dev/loop$devnum
  37.  
  38. mke2fs $LODEV $SIZE >/dev/null 2>/dev/null
  39.  
  40. mkdir $MNTPOINT
  41. mount -t ext2 $LODEV $MNTPOINT
  42.  
  43. (cd $DIR; find . | cpio -pv $MNTPOINT)
  44.  
  45. umount $MNTPOINT
  46. losetup -d $LODEV
  47. echo -n "gzipping image..."
  48. mv $IMAGE $IMAGE.nogz
  49. gzip -9 < $IMAGE.nogz > $IMAGE
  50. echo " done."
  51.  
  52. rm -rf $MNTPOINT 
  53.  
  54. size=`cat boot1.img boot2.img | wc -c`
  55. filler=`expr 1474560 - $size`
  56.  
  57. cat boot1.img boot2.img > $FINALIMAGE
  58. dd if=/dev/zero bs=$filler count=1 >> $FINALIMAGE
  59.  
  60. cp $IMAGE /mnt/intel/dosutils/autoboot/initrd.img
  61.