bill-auger 9e07862acf update docs il y a 4 ans
..
README.altbootmethods c35bf09cf8 update docs il y a 7 ans
README.bootparams a5139a6e4e Merge branch 'master' of archiso into helper/rebrand il y a 11 ans
README.build 9e07862acf update docs il y a 4 ans
README.knownissues a5139a6e4e Merge branch 'master' of archiso into helper/rebrand il y a 11 ans
README.package_lists 12c68931b9 update docs il y a 4 ans
README.transfer 073ecf773e Change disk label to PARA_YYYYMM because the limit is 11 characters. il y a 11 ans

README.altbootmethods

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)

Release image filesystem labels consist of: PARA_
Release image filenames consist of: parabola---.iso
Where:
consist of either or -
consist of either -netinstall or -complete
consist of ..

Where:
such as 'systend', 'openrc'
such as 'cli', 'lxde'
such as 'i686', 'x86_64', or 'dual'
is the 4-digit year of the build date
is the 2-digit month of the build date
is the 2-digit day of the build date
e.g. parabola-systemd-cli-i686-netinstall-2017-09-30.iso
parabola-openrc-lxde-dual-complete-2017-09-30.iso


** ISO in loopback mode.

Note: Described method is for using with GRUB2.
GRUB2 is installed on source media and parabola---.iso
is at path on disk and partition

,
where the ISO filesystem label is
and filesystem is labeled as .
is the root directory of the kernel and initrd in the ISO,
which corresponds to the $boot_dirname variable in build.sh (default: 'parabola').
Note: The 'dual' architecture ISOs can make use of both of the entries below.

menuentry "Parabola GNU/Linux-libre Live (x86_64)" {
set boot_dirname=""
set iso_fs_label=""
set target_fs_label=""
set iso_file="//parabola---.iso"
loopback loop (hd,

)$iso_file
linux (loop)/$boot_dirname/boot/x86_64/vmlinuz parabolaisolabel=$iso_fs_label img_label=$target_fs_label img_loop=$iso_file
initrd (loop)/$boot_dirname/boot/x86_64/parabolaiso.img
}

menuentry "Parabola GNU/Linux-libre Live (i686)" {
set boot_dirname=""
set iso_fs_label=""
set target_fs_label=""
set iso_file="//parabola---.iso"
loopback loop (hd,

)$iso_file
linux (loop)/$boot_dirname/boot/i686/vmlinuz parabolaisolabel=$iso_fs_label img_label=$target_fs_label img_loop=$iso_file
initrd (loop)/$boot_dirname/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---.iso
is at 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).
Note: The 'dual' architecture ISOs can make use of both of the entries below.

LABEL parabola_x64
LINUX memdisk
INITRD //parabola---.iso
APPEND iso

LABEL parabola_x32
LINUX memdisk
INITRD //parabola---.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: The ISO filesystem label is . Get this with the following command:
$ isoinfo -d -i path/to/the.iso | grep 'Volume id:'

# cat << EOF > /tmp/nbd-server.conf
[generic]
[parabolaiso]
readonly = true
exportname = /dev/disk/by-label/
EOF
# nbd-server -C /tmp/nbd-server.conf