Guest User

Untitled

a guest
Sep 24th, 2018
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.55 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. #set -x
  4.  
  5. # Name: build_centos_dvd.sh
  6. # Purpose: Customize a Centos DVD
  7. # Author: David Morris
  8.  
  9. shopt -s -o nounset
  10.  
  11. START_TIME=$(date +%s)
  12.  
  13. SOURCE_ISO=$1
  14. SOURCE_ISO_DIR=/export/iso
  15. SOURCE_MOUNT_POINT=/mnt/temp_mount
  16. DVD_TYPE="CentOS"
  17. CUSTOMER="MOESTAVERN"
  18. DATE=`/bin/date +'%Y-%m-%d %H:%M:%S'`
  19. KICKSTART_DIR=/export/kickstart
  20. KICKSTART_FILENAME=$2
  21. KICKSTART_FILE=${KICKSTART_DIR}/$2
  22.  
  23. if [ ! -f ${SOURCE_ISO_DIR}/${SOURCE_ISO} ]; then
  24. echo "Cannot find ISO file: ${SOURCE_ISO_DIR}/${SOURCE_ISO}"
  25. exit 255
  26. fi
  27.  
  28. if [ ! -f ${KICKSTART_FILE} ]; then
  29. echo "Cannot find KickStart file: ${KICKSTART_FILE}"
  30. exit 255
  31. fi
  32.  
  33. EXPLODED_ISO_DIR=/media/LaCie/isobuild
  34. RPMS_DIR=/export/extra_rpms
  35. TARGET_ISO_DIR=/export/custom_iso
  36. ISO_FILENAME=centos5-custom.iso
  37. TARGET_ISO_FILE=${TARGET_ISO_DIR}/${ISO_FILENAME}
  38. TITLE="CUSTOM"
  39.  
  40. #echo "# ------------------------------------------------ #"
  41. #echo "# Extracting Source ISO #"
  42. #echo "# ------------------------------------------------ #"
  43. #sudo mount -o loop ${SOURCE_ISO_DIR}/${SOURCE_ISO} ${SOURCE_MOUNT_POINT}
  44. #rsync -arv ${SOURCE_MOUNT_POINT} ${EXPLODED_ISO_DIR}
  45.  
  46. echo "# ------------------------------------------------ #"
  47. echo "# Inserting Custom Kickstart #"
  48. echo "# ------------------------------------------------ #"
  49. chmod 664 ${EXPLODED_ISO_DIR}/isolinux/isolinux.bin
  50. chmod 764 ${EXPLODED_ISO_DIR}/isolinux/isolinux.cfg
  51. ls -l ${EXPLODED_ISO_DIR}/isolinux
  52.  
  53. echo "Insert ${KICKSTART_FILE} file into iso image:"
  54. cat ${KICKSTART_FILE}
  55. cp ${KICKSTART_FILE} ${EXPLODED_ISO_DIR}/ks.cfg
  56.  
  57. echo "DO PERL"
  58.  
  59. perl -i -p -e 's{^default$}{default ks}; s{^(F5 rescue.msg)$}{$1\nF6 build.msg};' ${EXPLODED_ISO_DIR}/isolinux/isolinux.cfg
  60.  
  61. cat >> ${EXPLODED_ISO_DIR}/isolinux/isolinux.cfg <<EOF
  62. label ks
  63. kernel vmlinuz
  64. append ks=cdrom:/ks.cfg initrd=initrd.img
  65. EOF
  66.  
  67. echo "TEST BUILD" > ${EXPLODED_ISO_DIR}/isolinux/build.msg
  68.  
  69. echo "# ------------------------------------------------ #"
  70. echo "# Inserting Custom Splash #"
  71. echo "# ------------------------------------------------ #"
  72. SPLASH_DIR=/export/custom_splash
  73. if [ ! -z ${CUSTOMER} ]; then
  74. echo "Embedding build info in gif"
  75. #convert -font Courier -pointsize 22 -fill red -annotate +200+200 \
  76. # "Linux: ${DVD_TYPE}\nBuild Date: ${DATE}\n" \
  77. # ${SPLASH_DIR}/${CUSTOMER}_original.gif ${SPLASH_DIR}/${CUSTOMER}_splash.gif
  78.  
  79. echo "Converting gif to pmn"
  80. giftopnm ${SPLASH_DIR}/${CUSTOMER}_splash.gif > ${SPLASH_DIR}/${CUSTOMER}_splash.ppm
  81. echo "Converting pnm to lss"
  82. ppmtolss16 < ${SPLASH_DIR}/${CUSTOMER}_splash.ppm > ${SPLASH_DIR}/${CUSTOMER}_splash.lss
  83. cp ${SPLASH_DIR}/${CUSTOMER}_splash.lss ${EXPLODED_ISO_DIR}/isolinux/splash.lss
  84. fi
  85.  
  86. echo "# ------------------------------------------------ #"
  87. echo "# Inserting Custom RPM's # "
  88. echo "# ------------------------------------------------ #"
  89. cp ${RPMS_DIR}/*.rpm ${EXPLODED_ISO_DIR}/${DVD_TYPE}
  90. cd ${EXPLODED_ISO_DIR}
  91. createrepo -g repodata/comps.xml ${EXPLODED_ISO_DIR}
  92.  
  93. echo "# ------------------------------------------------ #"
  94. echo "# Mastering ISO #"
  95. echo "# ------------------------------------------------ #"
  96. mkisofs -o ${TARGET_ISO_FILE} -b isolinux/isolinux.bin \
  97. -c isolinux/boot.cat \
  98. -no-emul-boot -boot-load-size 4 \
  99. -boot-info-table -R -m TRANS.TBL .
  100.  
  101. END_TIME=$(date +%s)
  102.  
  103. DURATION=((END_TIME-START_TIME))
  104.  
  105. print "Job Completed in ${DURATION} seconds"
Add Comment
Please, Sign In to add comment