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/arch.map 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/finnix.sh 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.

    Thanks!

  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=192.168.1.10:/nfs-share/finnix 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 *