home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2005 September / NessusLiveCD.iso / KNOPPIX / src_freedom / knoppixFreedom.mkCompressed < prev    next >
Encoding:
Text File  |  2005-05-10  |  3.0 KB  |  91 lines

  1. #!/bin/bash
  2. # Knoppix.mkcompressed
  3. # $Id: knoppixFreedom.mkCompressed,v 1.5 2005/02/24 10:26:10 wilde Exp $
  4.  
  5. DEST="$1"
  6. DEST_ENV="$DEST"_env
  7.  
  8. [ -z "$DEST" -o ! -d "$DEST" ] && { echo "Usage: $0 DESTINATIONDIR" >&2 ; exit 1; }
  9. [ ! -x /usr/bin/create_compressed_fs ] && { echo "Need /usr/bin/create_compressed_fs." ; exit 1; }
  10. [ `whoami` != "root" ] && { echo "Need to be root to run $0" ; exit 1 ; }
  11.  
  12. # Compression blocksize (must be multiple of 512)
  13. # All block headers must fit into a kmalloc segment (ca. 130000 bytes)
  14. BLOCKSIZE=65536
  15. # BLOCKSIZE=53248
  16. #BLOCKSIZE=102400
  17.  
  18. echo -n "Recreate KNOPPIX compressed FS? "
  19. read answer
  20. if [ x"$answer" = x"y" ]
  21. then
  22. [ ! -d "$DEST_ENV" ] && { echo "Need knoppix_environment: $DEST_ENV" ; exit 1; }
  23. SUDOERS=$DEST_ENV/etc/sudoers
  24. [ ! -r "$SUDOERS" ] && { echo "Cannot read : $SUDOERS. Are we root?" ; exit 1; }
  25.  
  26.  ! find "$SUDOERS" -uid 0 -perm 440 && 
  27.     { echo "$SUDOERS does not belong to uid 0 with perm 440." ; exit 1; }
  28.  
  29. chmod gu+w "$DEST"/KNOPPIX
  30. rm -f "$DEST"/KNOPPIX/KNOPPIX
  31.  
  32. if [ -f sortfile.template ] 
  33. then
  34.    if [ -f mkisofs.sort ]
  35.    then
  36.     echo "Backing up mkisofs.sort as mkisofs.sort~"
  37.         [ ! -w mkisofs.sort~ ] && echo "Warning: can not write mkisofs.sort~" 
  38.         cp -a mkisofs.sort mkisofs.sort~
  39.    fi
  40.    echo "Creating mkisofs.sort from sortfile.template"
  41.    [ ! -w mkisofs.sort ] &&  echo "Warning: can not write to mkisofs.sort!" 
  42.    sed /^$/d sortfile.template | sed "/^#/d" | sed s/DIR/$DEST_ENV/g | awk 'BEGIN {x=10000}; {print $1, x--}' > mkisofs.sort
  43. fi
  44.  
  45.  
  46. SORT=""
  47. if [ -e mkisofs.sort ] 
  48. then SORT="-sort mkisofs.sort"
  49. else echo "Warning: mkisofs.sort does not exist. The created CD will probably boot slow."
  50. fi
  51. nice mkisofs -R -U -v $SORT -V "Freie Software KNOPPIX" -P "Intevation <A HREF='http://www.intevation.net/'>www.intevation.net</A>"  -hide-rr-moved -cache-inodes -no-bak -pad  "$DEST_ENV" \
  52. | nice -5 /usr/bin/create_compressed_fs - $BLOCKSIZE >"$DEST"/KNOPPIX/KNOPPIX || exit 1
  53. chmod 444 "$DEST"/KNOPPIX/KNOPPIX
  54. fi
  55.  
  56. echo -n "Recreate md5sums file? "
  57. read answer
  58. if [ x"$answer" = x"y" ]; then
  59. echo "updating md5sums (this will take some time)..."
  60. OLDWD=`pwd`
  61. cd "$DEST"
  62. rm -f KNOPPIX/md5sums
  63. (find . -type f -exec md5sum \{\} \;) >../md5sums.new
  64. mv ../md5sums.new KNOPPIX/md5sums
  65. cd "$OLDWD"
  66. fi
  67.  
  68. mkfinal() {
  69. TARGET="$1.iso.modified"
  70. mkisofs -pad -l -r -J -v \
  71.         -V 'Freie Software KNOPPIX' -A 'Freie Software KNOPPIX CD-ROM' \
  72.         -P "INTEVATION.DE <A HREF='http://www.intevation.net/'>www.intevation.net</A>" \
  73.         -b boot/isolinux/isolinux.bin -c boot/isolinux/boot.cat -no-emul-boot \
  74.         -boot-load-size 4 -boot-info-table  -hide-rr-moved  -o "$TARGET" "$DEST"
  75. }
  76.  
  77. echo -n "Recreate KNOPPIX isofile '$DEST.iso.modified'? "
  78. read answer
  79. if [ x"$answer" = x"y" ]; then
  80. ## DEPRECATED: knoppix uses isolinux now... -sw-
  81. ##
  82. ## Make sure that the boot floppy file is at the beginning of the image.
  83. ## Some controllers seem to depend on this.
  84. #rm -f /tmp/knoppix.sort
  85. #echo "$DEST/KNOPPIX/boot.img 100002" >/tmp/knoppix.sort
  86. #echo "$DEST/KNOPPIX/KNOPPIX 100001" >>/tmp/knoppix.sort
  87.  
  88. # Make final CD Image
  89. mkfinal "$DEST"
  90. fi
  91.