diff options
author | Esteban Carnevale <alfplayer@mailoo.org> | 2013-09-03 16:20:57 -0300 |
---|---|---|
committer | Esteban Carnevale <alfplayer@mailoo.org> | 2013-09-03 16:20:57 -0300 |
commit | fd3ccb1d3ea53e5da96473558b6c2457ae8affa5 (patch) | |
tree | 8e55162ca8cab8a859d269275528c7411a90ef5d /docs/README.altbootmethods |
Update profile releng
Diffstat (limited to 'docs/README.altbootmethods')
-rw-r--r-- | docs/README.altbootmethods | 125 |
1 files changed, 125 insertions, 0 deletions
diff --git a/docs/README.altbootmethods b/docs/README.altbootmethods new file mode 100644 index 0000000..d9acc89 --- /dev/null +++ b/docs/README.altbootmethods @@ -0,0 +1,125 @@ +INDEX +----- + +* Alternative boot methods (configs/releng) + * ISO in loopback mode + * ISO in memdisk mode + * Network booting (PXE) [first stage] + * DHCP + TFTP + * DHCP + HTTP + * HTTP/NFS/NBD [second stage] + + + +*** Alternative boot methods (configs/releng) + +ISO images names consist of: parabola-<YYYY>.<MM>.<DD>-dual.iso + +Where: + <YYYY> Year + <MM> Month + <DD> Day + + +** ISO in loopback mode. + +Note: Described method is for using with GRUB2. + GRUB2 is installed on target media and parabola-<YYYY>.<MM>.<DD>-dual.iso + is at path <TARGET-PATH> on disk <D> and partition <P>, + where filesystem is labeled as <TARGET-FS-LABEL>. + +menuentry "Parabola GNU/Linux-libre (x86_64)" { + set isofile="/<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso" + loopback loop (hd<D>,<P>)$isofile + linux (loop)/parabola/boot/x86_64/vmlinuz parabolaisolabel=<FS-LABEL> img_label=<TARGET-FS-LABEL> img_loop=$isofile + initrd (loop)/parabola/boot/x86_64/parabolaiso.img +} + +menuentry "Parabola GNU/Linux-libre (i686)" { + set isofile="/<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso" + loopback loop (hd<D>,<P>)$isofile + linux (loop)/parabola/boot/i686/vmlinuz parabolaisolabel=<FS-LABEL> img_label=<TARGET-FS-LABEL> img_loop=$isofile + initrd (loop)/parabola/boot/i686/parabolaiso.img +} + + +** ISO in memdisk mode. + +Note: Described method is for using with SYSLINUX. Anyway MEMDISK from SYSLINUX can work + with other bootloaders. + SYSLINUX is installed on target media and parabola-<YYYY>.<MM>.<DD>-dual.iso + is at path <TARGET-PATH>. + On 32-bit systems, is needed to pass vmalloc=nnM to the kernel, where nn is the size + of the ISO image plus 64 MiB (or 128 MiB). + + +LABEL parabola_x64 + LINUX memdisk + INITRD /<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso + APPEND iso + +LABEL parabola_x32 + LINUX memdisk + INITRD /<TARGET-PATH>/parabola-<YYYY>.<MM>.<DD>-dual.iso + APPEND iso + + +** Network booting (PXE). + +All ISOs are ready to act as PXE server, some manual steps are needed +to setup the desired PXE boot mode. +Alternatively it is possible to use an existing PXE server following the same logic. +Note: Setup network first, adjust IP adresses, and respect all slashes "/". + +First stage is for loading kernel and initramfs via PXE, two methods described here: + +* DHCP + TFTP + +Note: All NIC firmwares should support this. + +# dnsmasq --port=0 \ + --enable-tftp \ + --tftp-root=/run/parabolaiso/bootmnt \ + --dhcp-range=192.168.0.2,192.168.0.254,86400 \ + --dhcp-boot=/parabola/boot/syslinux/gpxelinux.0 \ + --dhcp-option-force=209,boot/syslinux/parabolaiso.cfg \ + --dhcp-option-force=210,/parabola/ + +* DHCP + HTTP + +Note: Not all NIC firmware supports HTTP and DNS (if domain name is used). + At least this works with iPXE and gPXE. + +# dnsmasq --port=0 \ + --dhcp-range=192.168.0.2,192.168.0.254,86400 \ + --dhcp-boot=http://192.168.0.7/parabola/boot/syslinux/gpxelinux.0 \ + --dhcp-option-force=209,boot/syslinux/parabolaiso.cfg \ + --dhcp-option-force=210,http://192.168.0.7/parabola/ + + +Once the kernel is started from PXE, SquashFS files and other misc files +inside "parabola" directory must be loaded (second stage). One of the following +methods can be used to serve the rest of live-medium. + +* HTTP + +# darkhttpd /run/parabolaiso/bootmnt + + +* NFS + +# echo "/run/parabolaiso/bootmnt 192.168.0.*(ro,no_subtree_check,no_root_squash)" >> /etc/exports +# systemctl start rpc-mountd.service + + +* NBD + +Note: Adjust PARA_201302 as needed. + +# cat << EOF > /tmp/nbd-server.conf +[generic] +[parabolaiso] + readonly = true + exportname = /dev/disk/by-label/PARA_201302 +EOF +# nbd-server -C /tmp/nbd-server.conf |