smartos.ipxe.j2 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. #!ipxe
  2. ######################################
  3. # SmartOS #
  4. # https://www.smartos.org/ #
  5. # Credit: https://github.com/bahamat #
  6. ######################################
  7. :custom
  8. clear smartos_build
  9. clear kflags
  10. set noimport false
  11. set kmdb_e false
  12. set kmdb_b false
  13. goto smartos_menu
  14. :smartos_menu
  15. set os {{ releases.smartos.name }}
  16. menu ${os}
  17. item --gap Platform Images:
  18. {% for item in releases.smartos.versions %}
  19. item {{ item.code_name }} ${space} ${os} {{ item.name }}
  20. {% endfor %}
  21. item --gap Options:
  22. item toggle_pool ${space} Rescue mode: ${noimport}
  23. item toggle_kmdb_e ${space} Load Kernel Debugger: ${kmdb_e}
  24. item toggle_kmdb_b ${space} Boot Kernel Debugger First: ${kmdb_b}
  25. iseq ${noimport} true && item --gap ${space} ||
  26. iseq ${noimport} true && item --gap ${space} Zpool will not be imported. Rescue mode root password can be found at ||
  27. iseq ${noimport} true && item --gap ${space} https://us-central.manta.mnx.io/Joyent_Dev/public/SmartOS/smartos.html ||
  28. choose smartos_build || goto smartos_exit
  29. iseq ${smartos_build} toggle_pool && goto toggle_pool ||
  30. iseq ${smartos_build} toggle_kmdb_e && goto toggle_kmdb_e ||
  31. iseq ${smartos_build} toggle_kmdb_b && goto toggle_kmdb_b ||
  32. goto smartos_boot
  33. :smartos_boot
  34. iseq ${kmdb_e} true && set kflags:hex 2d:6b ||
  35. iseq ${kmdb_b} true && set kflags:hex 2d:6b:64 ||
  36. kernel ${smartos_mirror}${smartos_build}${smartos_base_dir}kernel/amd64/unix ${kflags:string} -B console=text,text-mode="115200,8,n,1,-",smartos=true,noimport=${noimport}${root_shadow:string} ${cmdline}
  37. module ${smartos_mirror}${smartos_build}${smartos_base_dir}amd64/boot_archive type=rootfs name=ramdisk || goto fail
  38. module ${smartos_mirror}${smartos_build}${smartos_base_dir}amd64/boot_archive.hash type=hash name=ramdisk || goto fail
  39. boot
  40. :toggle_pool
  41. iseq ${noimport} true && set noimport false || set noimport true
  42. iseq ${noimport} false && clear root_shadow || set root_shadow:hex 2c:72:6f:6f:74:5f:73:68:61:64:6f:77:3d:27:24:35:24:32:48:4f:48:52:6e:4b:33:24:4e:76:4c:6c:6d:2e:31:4b:51:42:62:42:30:57:6a:6f:50:37:78:63:49:77:47:6e:6c:6c:68:7a:70:32:48:6e:54:2e:6d:44:4f:37:44:70:78:59:41:27:0a
  43. goto smartos_menu
  44. :toggle_kmdb_e
  45. iseq ${kmdb_e} true && set kmdb_e false || set kmdb_e true
  46. iseq ${kmdb_e} false && set kmdb_b false ||
  47. goto smartos_menu
  48. :toggle_kmdb_b
  49. iseq ${kmdb_b} true && set kmdb_b false || set kmdb_b true
  50. iseq ${kmdb_b} true && set kmdb_e true ||
  51. goto smartos_menu
  52. :smartos_exit
  53. clear menu
  54. exit 0