README.altbootmethods 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. INDEX
  2. -----
  3. * Alternative boot methods (configs/releng)
  4. * ISO in loopback mode
  5. * ISO in memdisk mode
  6. * Network booting (PXE) [first stage]
  7. * DHCP + TFTP
  8. * DHCP + HTTP
  9. * HTTP/NFS/NBD [second stage]
  10. *** Alternative boot methods (configs/releng)
  11. ISO images names consist of: parabola-<YYYY>.<MM>.<DD>-dual.iso
  12. Where:
  13. <YYYY> Year
  14. <MM> Month
  15. <DD> Day
  16. ** ISO in loopback mode.
  17. Note: Described method is for using with GRUB2.
  18. GRUB2 is installed on target media and parabola-<YYYY>.<MM>.<DD>-dual.iso
  19. is at path <TARGET-PATH> on disk <D> and partition <P>,
  20. where filesystem is labeled as <TARGET-FS-LABEL>.
  21. menuentry "Parabola GNU/Linux-libre (x86_64)" {
  22. set isofile="/<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso"
  23. loopback loop (hd<D>,<P>)$isofile
  24. linux (loop)/parabola/boot/x86_64/vmlinuz parabolaisolabel=<FS-LABEL> img_label=<TARGET-FS-LABEL> img_loop=$isofile
  25. initrd (loop)/parabola/boot/x86_64/parabolaiso.img
  26. }
  27. menuentry "Parabola GNU/Linux-libre (i686)" {
  28. set isofile="/<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso"
  29. loopback loop (hd<D>,<P>)$isofile
  30. linux (loop)/parabola/boot/i686/vmlinuz parabolaisolabel=<FS-LABEL> img_label=<TARGET-FS-LABEL> img_loop=$isofile
  31. initrd (loop)/parabola/boot/i686/parabolaiso.img
  32. }
  33. ** ISO in memdisk mode.
  34. Note: Described method is for using with SYSLINUX. Anyway MEMDISK from SYSLINUX can work
  35. with other bootloaders.
  36. SYSLINUX is installed on target media and parabola-<YYYY>.<MM>.<DD>-dual.iso
  37. is at path <TARGET-PATH>.
  38. On 32-bit systems, is needed to pass vmalloc=nnM to the kernel, where nn is the size
  39. of the ISO image plus 64 MiB (or 128 MiB).
  40. LABEL parabola_x64
  41. LINUX memdisk
  42. INITRD /<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso
  43. APPEND iso
  44. LABEL parabola_x32
  45. LINUX memdisk
  46. INITRD /<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso
  47. APPEND iso
  48. ** Network booting (PXE).
  49. All ISOs are ready to act as PXE server, some manual steps are needed
  50. to setup the desired PXE boot mode.
  51. Alternatively it is possible to use an existing PXE server following the same logic.
  52. Note: Setup network first, adjust IP adresses, and respect all slashes "/".
  53. First stage is for loading kernel and initramfs via PXE, two methods described here:
  54. * DHCP + TFTP
  55. Note: All NIC firmwares should support this.
  56. # dnsmasq --port=0 \
  57. --enable-tftp \
  58. --tftp-root=/run/parabolaiso/bootmnt \
  59. --dhcp-range=192.168.0.2,192.168.0.254,86400 \
  60. --dhcp-boot=/parabola/boot/syslinux/gpxelinux.0 \
  61. --dhcp-option-force=209,boot/syslinux/parabolaiso.cfg \
  62. --dhcp-option-force=210,/parabola/
  63. * DHCP + HTTP
  64. Note: Not all NIC firmware supports HTTP and DNS (if domain name is used).
  65. At least this works with iPXE and gPXE.
  66. # dnsmasq --port=0 \
  67. --dhcp-range=192.168.0.2,192.168.0.254,86400 \
  68. --dhcp-boot=http://192.168.0.7/parabola/boot/syslinux/gpxelinux.0 \
  69. --dhcp-option-force=209,boot/syslinux/parabolaiso.cfg \
  70. --dhcp-option-force=210,http://192.168.0.7/parabola/
  71. Once the kernel is started from PXE, SquashFS files and other misc files
  72. inside "parabola" directory must be loaded (second stage). One of the following
  73. methods can be used to serve the rest of live-medium.
  74. * HTTP
  75. # darkhttpd /run/parabolaiso/bootmnt
  76. * NFS
  77. # echo "/run/parabolaiso/bootmnt 192.168.0.*(ro,no_subtree_check,no_root_squash)" >> /etc/exports
  78. # systemctl start rpc-mountd.service
  79. * NBD
  80. Note: Adjust PARA_201302 as needed.
  81. # cat << EOF > /tmp/nbd-server.conf
  82. [generic]
  83. [parabolaiso]
  84. readonly = true
  85. exportname = /dev/disk/by-label/PARA_201302
  86. EOF
  87. # nbd-server -C /tmp/nbd-server.conf