Du kan inte välja fler än 25 ämnen Ämnen måste starta med en bokstav eller siffra, kan innehålla bindestreck ('-') och vara max 35 tecken långa.

genliso 1.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #!/bin/bash
  2. #
  3. # Generate a legacy floppy emulation ISO boot image
  4. #
  5. # genliso foo.liso 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 $0 in
  11. *genliso)
  12. ;;
  13. *genfdimg)
  14. genfdimg=1
  15. ;;
  16. esac
  17. case $# in
  18. 0|1)
  19. echo Usage: $0 foo.liso foo.lkrn ...
  20. exit 1
  21. ;;
  22. esac
  23. case "`mtools -V`" in
  24. Mtools\ version\ 3.9.9*|Mtools\ version\ 3.9.1[0-9]*|Mtools\ version\ 4.*)
  25. ;;
  26. *)
  27. echo Mtools version 3.9.9 or later is required
  28. exit 1
  29. ;;
  30. esac
  31. out=$1
  32. shift
  33. dir=bin/liso.dir
  34. mkdir -p $dir
  35. case "$genfdimg" in
  36. 1)
  37. img=$out
  38. ;;
  39. *)
  40. img=$dir/boot.img
  41. ;;
  42. esac
  43. mformat -f 1440 -C -i $img ::
  44. cfg=bin/syslinux.cfg
  45. cat > $cfg <<EOF
  46. # These default options can be changed in the genliso script
  47. SAY Etherboot ISO boot image generated by genliso
  48. TIMEOUT 30
  49. EOF
  50. first=
  51. for f
  52. do
  53. if [ ! -r $f ]
  54. then
  55. echo $f does not exist, skipping 1>&2
  56. continue
  57. fi
  58. # shorten name for 8.3 filesystem
  59. b=$(basename $f)
  60. g=${b%.lkrn}
  61. g=${g//[^a-z0-9]}
  62. g=${g:0:8}.krn
  63. case "$first" in
  64. "")
  65. echo DEFAULT $g
  66. ;;
  67. esac
  68. first=$g
  69. echo LABEL $b
  70. echo "" KERNEL $g
  71. mcopy -m -i $img $f ::$g
  72. done >> $cfg
  73. mcopy -i $img $cfg ::syslinux.cfg
  74. if ! syslinux $img
  75. then
  76. exit 1
  77. fi
  78. case "$genfdimg" in
  79. 1)
  80. ;;
  81. *)
  82. mkisofs -o $out -c boot.cat -b boot.img $dir
  83. ;;
  84. esac
  85. rm -fr $dir