INDEX ----- * Build requirements * Image types generated by mkarchiso. * File format for aitab. * Why the /isolinux and /libre/boot/syslinux directories? * Building the most basic Parabola live media. (configs/baseline) * Building official Parabola live media. (configs/releng) *** Build requirements ** For mkarchiso script needs these packages (build host): + squashfs-tools for mksquashfs + libisoburn for xorriso + btrfs-progs for mkfs.btrfs (optional) ** For configs/releng build.sh needs theses packages (build host): + dosfstools for mkfs.vfat + patch for patch + lynx for fetching the latest installation guide ** For these hooks needs these packages (on target root-image) * archiso + (none) * archiso_loop_mnt + (none) * archiso_pxe_common + mkinitcpio-nfs-utils for ipconfig * archiso_pxe_nbd + nbd for nbd-client * archiso_pxe_http + curl for curl * archiso_pxe_nfs + mkinitcpio-nfs-utils for nfsmount * archiso_shutdown + (none) *** Image types generated by mkarchiso. * image-name.sfs SquashFS image with all files directly on it. * image-name.fs.sfs SquashFS with only one file inside (image-name.fs), which is an image of some type of filesystem (ext4, ext3, ext2, xfs), all files reside on it. *** File format for aitab. The aitab file holds information about the filesystems images that must be created by mkarchiso and mounted at initramfs stage from the archiso hook. It consists of some fields which define the behaviour of images. # Image name without extension (.fs .fs.sfs .sfs). Mount point. Architecture { i686 | x86_64 | any }. SquashFS compression type { gzip | lzo | xz }. Set the filesystem type of the image { ext4 | ext3 | ext2 | xfs | btrfs }. A special value of "none" denotes no usage of a filesystem. In that case all files are pushed directly to SquashFS filesystem. An absolute value of file system image size in MiB. (example: 100, 1000, 4096, etc) A relative value of file system free space [in percent]. {1%..99%} (example 50%, 10%, 7%). This is an estimation, and calculated in a simple way. Space used + 10% (estimated for metadata overhead) + desired % *** Why the /isolinux and /arch/boot/syslinux directories? The /isolinux directory holds files needed for the ISOLINUX boot loader module of SYSLINUX. ISOLINUX can not find config files on /libre/boot/syslinux, like other boot loaders modules (EXTLINUX, SYSLINUX, etc). When make your custom boot-pendrive, you need to copy /libre directory to it. /isolinux/isolinux.cfg just holds /libre/boot/syslinux/syslinux.cfg *** Know issues ** (1) On shutdown lots of messages from systemd like: "Could not unmount /run/archiso/: Device or resource busy" "Could not delete loopback /dev/loop: Device or resource busy" This is not a real issue since, all mounted filesystem, loopback devices and device mapper devices made by archiso will be "free" on "shutdown tmpfs" (A.K.A deinitramfs), build at initramfs by [archiso_shutdown] initcpio hook. Proper shutdown is mostly important when persistent is used. ** (2) syslinux 4.05 bug with relative directories on FAT: *** Building the most basic Parabola live media. (configs/baseline) * Install needed packages. # pacman -S git make squashfs-tools libisoburn rsync --needed * Install archiso. # git clone git://projects.parabolagnulinux.org/archiso.git # make -C archiso install * Build a basic iso. # /usr/share/archiso/configs/baseline/build.sh Note: If you want to customize, just see the configs/releng directory which is used to build official images with much more things. *** Building official Parabola live media. (configs/releng) * Install needed packages. # pacman -S git make squashfs-tools libisoburn dosfstools lynx patch --needed * Install archiso. # git clone git://projects.parabolagnulinux.org/archiso.git # make -C archiso install * Build them! # /usr/share/archiso/configs/releng/build.sh build all Note: See build.sh -h for more options.