You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

geniso 1.1KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #!/bin/bash
  2. #
  3. # Generate a isolinux ISO boot image
  4. #
  5. # geniso foo.iso foo.lkrn
  6. #
  7. # the ISO image is the first argument so that a list of .lkrn images
  8. # to include can be specified
  9. #
  10. case $# in
  11. 0|1)
  12. echo Usage: $0 foo.iso foo.lkrn ...
  13. exit 1
  14. ;;
  15. esac
  16. # This should be the default location of the isolinux.bin file
  17. isolinux_bin=${ISOLINUX_BIN:-util/isolinux.bin}
  18. if [ ! -r $isolinux_bin ]
  19. then
  20. echo $0: $isolinux_bin not found, please install, or set ISOLINUX_BIN in arch/i386/Makefile correctly
  21. exit 1
  22. fi
  23. out=$1
  24. shift
  25. dir=`mktemp -d bin/iso.dir.XXXXXX`
  26. cfg=$dir/isolinux.cfg
  27. cp -p $isolinux_bin $dir
  28. cat > $cfg <<EOF
  29. # These default options can be changed in the geniso script
  30. SAY Etherboot ISO boot image generated by geniso
  31. TIMEOUT 30
  32. EOF
  33. first=
  34. for f
  35. do
  36. if [ ! -r $f ]
  37. then
  38. echo $f does not exist, skipping 1>&2
  39. continue
  40. fi
  41. b=$(basename $f)
  42. g=${b%.lkrn}
  43. g=${g//[^a-z0-9]}.krn
  44. case "$first" in
  45. "")
  46. echo DEFAULT $g
  47. ;;
  48. esac
  49. first=$g
  50. echo LABEL $b
  51. echo "" KERNEL $g
  52. cp -p $f $dir/$g
  53. done >> $cfg
  54. mkisofs -q -l -o $out -c boot.cat -b isolinux.bin -no-emul-boot -boot-load-size 4 -boot-info-table $dir
  55. rm -fr $dir