home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 1999 November / VPR9911B.ISO / misc / src / trees / mkmodules < prev    next >
Text File  |  1999-08-30  |  2KB  |  92 lines

  1. #!/bin/sh
  2.  
  3. PATH=/sbin:$PATH
  4. export PATH
  5.  
  6. DIR=../../../LASER5/instimage/modules
  7. IMAGE=modules.img
  8. SIZE=1000
  9.  
  10. FINALIMAGE=../../../images/modules.img
  11. FINALSIZE=1440
  12.  
  13. MNTPOINT=/tmp/mkimage.mnt-$$
  14.  
  15. if [ "$1" != "-f" ]; then
  16.     if [ -f $IMAGE ]; then
  17.     echo "$IMAGE already exists." >&2
  18.     exit 1
  19.     fi
  20. fi
  21.  
  22. mkdir -p `dirname $IMAGE`
  23. rm -f $IMAGE.nogz
  24. dd if=/dev/zero of=$IMAGE.nogz 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.nogz 2>/dev/null ; then break; fi
  28. done
  29.  
  30. if [ "$devnum" = "8" ]; then
  31.     rm -rf $MNTPOINT $IMAGE.nogz
  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 -i 16384 -m 0 $LODEV $SIZE >/dev/null 2>/dev/null
  39.  
  40. mkdir $MNTPOINT
  41. mount -t ext2 $LODEV $MNTPOINT
  42.  
  43. (cd $DIR; tar cSpf - *) | (cd $MNTPOINT; tar xvSpf -)
  44. df $MNTPOINT
  45.  
  46. umount $MNTPOINT
  47. losetup -d $LODEV
  48.  
  49. rm -rf $MNTPOINT 
  50. gzip -9 < $IMAGE.nogz > $IMAGE
  51. rm -f $IMAGE.nogz
  52.  
  53. # Start pass 2
  54.  
  55. if [ "$1" != "-f" ]; then
  56.     if [ -f $FINALIMAGE ]; then
  57.     echo "$FINALIMAGE already exists." >&2
  58.     exit 1
  59.     fi
  60. fi
  61.  
  62. mkdir -p `dirname $FINALIMAGE`
  63. rm -f $FINALIMAGE
  64. dd if=/dev/zero of=$FINALIMAGE bs=1k count=$FINALSIZE 2> /dev/null
  65.  
  66. for devnum in 0 1 2 3 4 5 6 7 8; do
  67.     if losetup /dev/loop$devnum $FINALIMAGE 2>/dev/null ; then break; fi
  68. done
  69.  
  70. if [ "$devnum" = "8" ]; then
  71.     rm -rf $MNTPOINT $FINALIMAGE
  72.     echo "All of your loopback devices are in use!" >&2
  73.     exit 1
  74. fi
  75.  
  76. LODEV=/dev/loop$devnum
  77.  
  78. mke2fs -i 16384 -m 0 $LODEV $FINALSIZE >/dev/null 2>/dev/null
  79.  
  80. mkdir $MNTPOINT
  81. mount -t ext2 $LODEV $MNTPOINT
  82.  
  83. cp $IMAGE $MNTPOINT/$IMAGE
  84. rm $IMAGE
  85. df $MNTPOINT
  86.  
  87. umount $MNTPOINT
  88. losetup -d $LODEV
  89.  
  90. rm -rf $MNTPOINT 
  91.  
  92.