Finnix remastering updates

Finnix is used a lot for remastering for administrators' specific projects, so if you're a remasterer, you're going to both love and hate Finnix 101 -- love because Finnix 101 ultimately makes it a lot easier to remaster in the long run, and hate because a lot of things have changed in incompatible ways, hopefully for the better. This post should help give you a rundown on what's changed.

The following wiki guides have been updated for Finnix 101:

CD layout

  • Almost everything with the CD layout has changed. All filenames are now lowercase, and most files have changed locations.
  • md5sums is now on the root of the CD (/md5sums).
  • /isolinux and /boot are still the bootloader-specific directories for x86 and PowerPC, respectively.
  • /{isolinux,boot}/minirt has become /{isolinux,boot}/initrd.gz.
  • /FINNIX/FINNIX has become /finnix/arch/{x86,ppc}/root.img, where "x86" and "ppc" are the userland identifiers for the architecture (that is, you don't have to worry about 64-bit kernels on the 32-bit userland).
  • /finnix/ is a text file that defines a `uname -m` mapping to the userland architecture. The first column is the output of `uname -m`, the second is the primary userland architecture, and the third is the secondary userland architecture. On 64-bit kernels ("amd64" and "ppc64"), the primary userland architecture is "amd64" and "ppc64" respectively, but since Finnix does not distribute 64-bit userlands, it will move on to the secondary columns. Once a root.img is found, that userland architecture is remembered, so overlays will not be checked in the userland architectures that are skipped over. (Short summary: don't use /finnix/arch/{amd64,ppc64}/, it's basically disabled in its current state.)

Build enviroment

  • The default (and recommended) build environment path has changed from /mnt/hda1/knx/ to /finnix/build/. All subdirectories remain the same (source/FINNIX/ for the chroot, initrd/ for the initrd, master/ for the CD layout).
  • The build scripts are now located in the compressed root, and are guaranteed to be the scripts that built the running Finnix version. They are finnix-build-stage1 and finnix-build-stage2. Stage 1 preps the chroot and builds the root.img file, while State 2 builds the initrd and masters the CD. While the build scripts live inside the chroot, they MUST be run from outside the chroot. That is, /finnix/build/source/FINNIX/usr/sbin/finnix-build-stage1 && /finnix/build/source/FINNIX/usr/sbin/finnix-build-stage2.

In the chroot

  • When chrooting in, you should really be doing: export FINNIXDEV=1; chroot /finnix/build/source/FINNIX /bin/bash -l. Setting FINNIXDEV=1 sets some bashrc functionality that makes it easier to work in the chroot, and will temporarily move dummy invoke-rc.d and start-stop-daemon scripts into place so installing/upgrading software within the chroot doesn't try to start daemons, and will automatically mount /proc and /sys when useful.
  • The startup system is now in /etc/finnix/rc*.d/. /etc/rc*.d/ will not be checked at all during Finnix bootup. If you want to start daemons on startup, shell scripts in /etc/finnix/rc2.d/ are the way to go. Additionally, much of the old finnix-autconfig functionality (the mega script that did almost all the heavy lifting) has been split up into components in /etc/finnix/rcS.d/ and /etc/finnix/rc2.d/.

Overlays and local startup scripts

  • On the CD, /FINNIX/overlay.d/ has become /finnix/arch/{x86,ppc,indep}/overlays/. Use x86 and ppc for architecture-specific overlays, and "indep" for architecture-independent overlays.
  • /FINNIX/ is gone, in favor of /finnix/arch/{x86,ppc,indep}/rc/. Here you can place multiple local startup scripts. The same architecture rules apply as above.

2 thoughts on “Finnix remastering updates”

  1. An example of a pxelinux.cfg entry for netbooting Finnix 101 would be useful. The Wiki netboot section is essentially blank, and the cheat codes section looks to be outdated.


  2. Here's my pxelinux.cfg for a 32-bit system:

    label finnix
    menu label Boot finnix
    kernel linux
    append initrd=initrd_finnix.img nfsroot= nfsif=eth0 nfsvers=3

    The nfs-share folder contains the finnix folder of the iso.

    The kernel can be found under the isolinux folder.

    I've downloaded Finnix 101 but I had to modify the provided initrd because the nfs related kernel modules and the driver for my nic were missing. I renamed the modified initrd to initrd_finnix.img and put it like the kernel to my tftp server.

    Hope this helps a bit

Leave a Reply

Your email address will not be published. Required fields are marked *