home *** CD-ROM | disk | FTP | other *** search
/ PC Plus SuperCD (UK) 1999 May / pcp151c.iso / misc / src / trees / mkboot < prev    next >
Encoding:
Text File  |  1998-10-12  |  896 b   |  54 lines

  1. #!/bin/sh
  2.  
  3. PATH=/sbin:$PATH
  4. export PATH
  5.  
  6. IMAGE=../../../images/boot.img
  7. DIR=boot
  8. SIZE=1440
  9. SYSLINUXVER=1.40
  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. fi
  19.  
  20. ./mkinitrd $1
  21.  
  22. rm -f $IMAGE
  23. dd if=/dev/zero of=$IMAGE bs=1k count=$SIZE 2> /dev/null
  24.  
  25. for devnum in 0 1 2 3 4 5 6 7 8; do
  26.     if losetup /dev/loop$devnum $IMAGE 2>/dev/null ; then break; fi
  27. done
  28.  
  29. if [ "$devnum" = "8" ]; then
  30.     rm -rf $MNTPOINT $IMAGE
  31.     echo "All of your loopback devices are in use!" >&2
  32.     exit 1
  33. fi
  34.  
  35. LODEV=/dev/loop$devnum
  36.  
  37. gunzip < syslinux-$SYSLINUXVER/img1440k.gz | dd of=$LODEV
  38.  
  39. # install new syslinux
  40. syslinux-$SYSLINUXVER/syslinux $LODEV
  41.  
  42. mkdir $MNTPOINT
  43. mount -t msdos $LODEV $MNTPOINT
  44.  
  45. (cd $DIR; find . | cpio -pv $MNTPOINT)
  46. cp initrd.img $MNTPOINT
  47.  
  48. df $MNTPOINT
  49.  
  50. umount $MNTPOINT
  51. losetup -d $LODEV
  52.  
  53. rm -rf $MNTPOINT 
  54.