home *** CD-ROM | disk | FTP | other *** search
/ Chip 1997 December / CHIPNET Aralık 1997.iso / linux / redhat / misc / src / trees / mkinitrd < prev    next >
Encoding:
Text File  |  1997-08-11  |  937 b   |  53 lines

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