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.

Finnix 101 released

Finnix is a small, self-contained, bootable Linux CD distribution for system administrators, based on Debian testing. Today marks the eggnog-induced release of Finnix 101, the seventeenth release of Finnix since its beginnings over ten years ago. Finnix 101 includes major behind-the-scenes architectural changes, the re-introduction of PowerPC support, new features, and minor bug fixes.

PowerPC support returns

After a show of public support, Finnix is once again producing PowerPC releases. Finnix is one of the only dedicated Linux LiveCDs with PowerPC support, and we are happy to continue serving the PowerPC community. Note that PowerPC releases are still not considered release goals, but in the future a lack of a PowerPC release will only happen under extraordinary circumstances.

Behind-the-scenes re-engineering

While using Finnix still has its same familiar look, much of the core infrastructure which comprises Finnix has been re-engineered. Many of the changes are intended to make development and re-development (remastering) easier and more powerful, and to help with deployment by Virtual Private Server (VPS) providers. Changes include a new CD filesystem layout, an enclosed remastering environment, a Finnix-specific SysV-compatible RC system, and componentized Finnix RC scripts.

Linux 2.6.36

Due to Debian testing being in deep freeze, the most recent kernel in either "testing" or "unstable" is 2.6.32. Therefore, a set of 2.6.36 kernels have been compiled based on 2.6.36-1~experimental.1 from Debian "experimental". Despite the "experimental" name, these kernels have been tested more heavily than the average Finnix release, and have proven to be very stable.

Hardware Detection Tool (HDT) added

On the X86 CD, Hardware Detection Tool has been added to the boot menu. This allows users to view system information (processor, memory, PCI devices, etc) quickly, without booting into a full operating system.

Finnix 101: What to look forward to

I'll be honest, Finnix 100 was a rush job. Not a bad rush job per se; I have found no major problems with it and continue to use it on a daily basis. But there's nothing particularly great about it. The entire development cycle was about 2 weeks, to get a release out the door to reverse a one-year hiatus. Just enough to bring the software up to date, compile a new kernel, and run through regression testing.

Finnix 101 will be different. I've been working non-stop since October, and behind the scenes, Finnix has basically been completely re-engineered. To a casual eye, nothing will look different. Same boot menus, same minimalist boot, same quick boot times, same overall look. That's fine -- that's what gives Finnix its appeal. But the underlying architectural changes have been a long time coming, and will be useful for development and re-development (that is to say, remastering).

The current dev changelog is quite long by now, but here are a few highlights:

  • As mentioned in a previous post, PowerPC support is coming back!
  • A new kernel, most likely. Debian testing is still on 2.6.32 due to the freeze, but I've been testing 2.6.36 for awhile and it's been stable.
  • The Finnix CD is now 100% self-building. Before you could remaster Finnix from within Finnix, using a set of downloaded scripts (which sadly, I rarely updated). But now the scripts (finnix-build-stage1 and finnix-build-stage2) are located within Finnix itself, and the build scripts on the CD are guaranteed to be the scripts used to build the official release.
  • The CD ISO layout has been completely changed. All files/directory names on the CD are now lowercase, to guard against accidental renaming when on a USB key, for example. Instead of the main compressed root in /FINNIX/FINNIX, it is now in /finnix/arch/$distarch/root.img, where $distarch is amd64, x86, ppc64 or ppc. Since Finnix is only distributed with 32-bit userlands, the locations will be /finnix/arch/x86/root.img and /finnix/arch/ppc/root.img. But if a 64-bit userland were added, amd64 and ppc64 root.img files could simply be added and Finnix would use them if available and usable. /finnix/arch.map contains a list of `uname -m` to $distarch mappings, so adding completely new architectures would even be easier. The map file allows for 64-bit to 32-bit fallback, which allows you to use a 64-bit kernel, and Finnix will look in, say, /finnix/arch/amd64/ first, then /finnix/arch/x86/ as a fallback.
  • With the above in place, it will now possible to make a hybrid x86/PPC CD. With the new layout, the two CDs can essentially be merged into one, and with some mkisofs magic, the combined CD can be made bootable on both arches. I don't plan on releasing a combined ISO, but I do plan on releasing the script to allow you to create one yourself.
  • A Finnix-specific SysV-compatible RC system has been created for booting the distribution. In the past, Finnix essentially fought against Debian's RC system, removing Debian's symlinks in /etc/rc*.d/ and replacing them with Finnix-specific scripts. With Debian's move toward a concurrent boot system, this has become more difficult, so Finnix will simply be using its own separate system in /etc/finnix/rc*.d/ instead. (Indeed, it is a fork of Debian's sysv-rc.)
  • With a Finnix-specific RC system, it is now much easier to break the Finnix sysinit boot into component scripts. All previous versions of Finnix essentially used one giant boot script, so this will allow sysinit-type tasks (such as scanning the PCI bus) to be placed separately in /etc/finnix/rcS.d/, and traditionally userland tasks (such as starting mouse services or an optional SSH daemon) in /etc/finnix/rc2.d/. The userland tasks have been split out and will be ready for Finnix 101, but the sysinit tasks may not be completely componentized for the release.
  • A new netboot helper script has been added, finnix-netboot-biginit. This allows you to create a netboot initrd that contains the entire Finnix distribution within itself. The benefit is you do not need an NFS server to netboot Finnix, only a TFTP server. The downside is you will need more than twice the memory as the size of the distribution, at least 512MB. (There are several stages during boot where the initrd will need to be stored in memory twice; the initrd system was not exactly designed for 1XXMB initrds to be loaded efficiently. Once the boot is completed though, you will only be storing 1x the distribution size in memory, plus standard OS overhead.)
  • The initrd can now automatically detect whether AUFS and/or UnionFS are available. This will help VPS providers deploy Finnix using their kernels, picking whichever module is more convenient for them to implement.
  • On x86, Hardware Detection Tool has been added to the boot menu, which allows you to view system information quickly, without booting into a full operating system.
  • Many smaller improvements and bugfixes are of course included.

The release is feature complete, and I was hoping for a Christmas launch, but at this point I don't think I can go through the required testing and get the ISOs to the mirrors in time. 3 months since Finnix 100 will be late January, though I hope to have a release before then.

Clarification on Finnix for PowerPC


Please don't sue me, Apple.

The people have spoken. Or at least, the people who use a certain RISC architecture.

I received a lot of mail and comments following the announcement that support for the PowerPC architecture was being dropped from Finnix, and the subsequent release of Finnix 100 as x86-only. Finnix was one of the few LiveCDs in the market with support for PowerPC, and many people use Finnix for administration of PowerPC systems, as I found out.

When I made the announcement, I left some wiggle room, stating, "I'm sure there will be one-off updates throughout the years, but PowerPC support will no longer be a release goal." I'd like to reiterate that this is still the policy, strictly speaking. Over the years, there have been releases that have been delayed due to PowerPC-specific bugs that had to be resolved before a release could be made for both supported architectures. However, after the show of support from PowerPC users, I am happy to announce that the "implied" policy has changed. PowerPC releases may not strictly be a release goal, but I now intend to produce PowerPC releases as a rule rather than an exception.

I've made some upgrades to the main Finnix PowerPC development machine (a G4 Mac Mini -- I have a more powerful dual-proc G4 MDD, but it sounds like a jet engine when running), and I expect, barring unforseen circumstances, that Finnix 101 will be released with both x86 and PowerPC support.

Finnix ISO oddities

After the release of Finnix 100, I did a little housecleaning of the main dev box, and found some old/odd Finnix builds. I decided to gather the various ISOs in one place to preserve for the times. I may release these somehow, but for now I just wanted to make sure they were not lost, and to give you a glimpse of some unreleased software. This list also includes some builds that I know existed and would like to find, but are currently missing.

  • finnix-0.01.iso (circa 1999, missing) - The original build of Finnix. This was only given out to two other people, and is most likely lost forever.
  • finnix-0.02.iso (circa 1999/2000, missing) - Only given out to office staff at the ISP I worked at at the time. Also most likely lost forever.
  • knoppix-3.8.1rf-lvm2-crypt.iso (2005-04-17, 411 MiB) - A straight Knoppix remaster, with LVM2 and dm_crypt support added. This was the precursor to Finnix 84, and what got me interested in reviving the Finnix project back in 2005. Ripped from a CD I found lying on a mothballed Windows server in my employer's office server room, before we moved earlier this year.
  • finnix-84.iso (2005-04-20, 264 MiB) - Another Knoppix remaster, with much of the X environment (crudely) removed to save on space. Nothing in the ISO even mentioned "Finnix". This probably would have been another generic Knoppix remaster, but at one point I decided to revive the name "Finnix". Version "84" was chosen for no particular reason other than it had been over 5 years since the last (and first (and at the time only)) release of Finnix, and a high version number sounded good. This was technically released to the public, but never announced. I threw a torrent up on finnix.org so friends could download it, but the public never noticed.
  • finnix-85.0.iso (circa 2005, missing) - The next step after Finnix 84, only distributed to office staff. Likely lost forever.
  • finnix-85.1.iso (circa 2005, missing) - Ditto, most likely lost forever.
  • finnix-85.2.iso (2005-09-29, 178 MiB) - Further refinement and chopping from the Knoppix base. At this point it could fit on a Mini-CDR, and was distributed to office staff. Ripped from a Mini-CDR I found in my desk about a year ago.
  • finnix-85.3.iso (2005-10-01, 150 MiB) - Ditto.
  • finnix-86.0-pre1.iso (2005-10-09, 121 MiB) - The first public (pre-)release of "new" Finnix, and the first release since Finnix 0.03 built from the ground up to be "Finnix" (not a Knoppix remaster). Originally distributed via SourceForge.
  • finnix-86.0-pre2.iso (circa 2005, missing) - Originally distributed via SourceForge, but I deleted the SF archives at one point and didn't have a backup beforehand. May exist on mirrors somewhere.
  • finnix-86.0-pre3.iso (circa 2005, missing) - Ditto.
  • finnix-86.1-pre1.iso (2005-11-15, 100 MiB) - Originally distributed via SourceForge.
  • finnix-86.1-le.iso (2005-11-20, 429 MiB) - Finnix 86.1 Limited Edition. A special build containing both Finnix 86.1 and Finnix 0.03. Only distributed to friends/VIPs with a special numbered/signed printed CD. A maximum of 100 copies were planned to be made, only about 30 were distributed. This will probably never be released by me due to its (artificial) rarity.
  • finnix-light-sparc.iso (2007-08-14, 7.2 MiB) - "Finnix Light", an idea I toyed with under the Finnix name, it was merely a kernel and a decked out BusyBox install. The SILO boot profile name was "flight". I abandoned the idea due to the fact that, while I have Sparc hardware to test, it would have been a pain to keep it as a supported configuration.
  • finnix-486-92.1.iso (2008-11-24, 95 MiB) - A custom build of Finnix 92.1, with a 486-capable kernel. Ironically, the Linux kernel at the time had a bug that prevented most 486es from being bootable (probably fixed by now), and the idea was eventually scrapped.

Finnix 100 released

Finnix is a small, self-contained, bootable Linux CD distribution for system administrators, based on Debian testing. Today marks the release of Finnix 100, the sixteenth release of Finnix since its beginnings over ten years ago.

Finnix 100 comes over a year since its previous release, Finnix 93.0, and introduces a new version scheme, with future versions incrementing numerically. Finnix 100 includes updated upstream Debian software, and Linux kernel 2.6.32. The finnix-thumbdrive utility has been removed in favor of UNetbootin, which can take a Finnix ISO and extract it to a bootable USB drive without needing to boot Finnix first. PowerPC support has been officially dropped, though future PowerPC releases may be made on a one-off basis. The last PowerPC release, Finnix 93.0, will continue to be distributed through finnix.org and should continue to be useful for some time.

The Finnix store has been discontinued, and in its place is a free sticker service. High quality vinyl stickers can be obtained by sending a donation to Finnix, sending a self-addressed stamped envelope, or sending trinkets. Please see the free sticker page for more details.

Finnix not dead, just resting

Today is the 5 year anniversary of the "modern" incarnation of Finnix, which started with Finnix 86.0. Happy birthday, Finnix!

I sent a message to the Finnix mailing list today, apologizing for hiatus Finnix has been on for the last year, and detailing a roadmap for the near future. Please read the post for the full details, but the main points are:

  • I am now working on Finnix again.
  • Finnix version numbering will jump from 93.0 to 100, and will simply increment with new releases.
  • While Finnix-PPC isn't completely dead, it is no longer a release goal.
  • The Store will be closed, and replaced with a Sticker Exchange.

Finnix: Compact Linux distribution for system administrators

In July 2008, Cory Buford wrote a nice review of Finnix for linux.com, shortly after the release of Finnix 92.0. Unfortunately, the review did not survive linux.com's transition to the Linux Foundation later that year, but I was able to save a copy, and with permission from the author, it has been reproduced here. Enjoy!

Edit (2011-07-02): It appears the review is back. Please see the original review on linux.com.


Finnix is a live CD distribution designed to assist system administrators in such tasks as system recovery and network monitoring. Based on Debian testing and Linux kernel 2.6, Finnix helps with filesystem and partition manipulation as well as with data recovery, installation of other operating systems, and boot record repair.

Finnix works on both x86/AMD64 and PowerPC systems. The latest release, version 92.0, fixes the Debian SSL (Secure Sockets Layer) vulnerability that was present in previous releases.

One nice thing about the distribution is its small size. Using SquashFS, the entire 300MB distribution was compressed into a bootable distribution just a little over 100MB. Its compact size notwithstanding, Finnix includes the latest technologies and applications for system administrators, including Logical Volume Manager 2 (LVM2), encrypted partitions, and multiple filesystem support.

To start using Finnix, download it from the author's site and burn it to a CD. Since you will likely use this distribution to recover systems -- the main intent of Ryan Finnie when he created it -- booting it as a live CD is the preferred option. If you want to use the CD drive for other purposes, such as using Finnix tools to back up on a CD, you can also load the distribution into RAM; just make sure you have enough RAM -- preferably at least 512MB -- to hold the entire package.

You can also install Finnix to a hard drive using the fairly complex documentation given on the author's site. Another option, once you're inside Finnix, is to run the finnix-thumbdrive script to create a bootable Finnix USB drive.

When you boot Finnix you will see a menu with several options. Although Finnix is designed to automatically detect the type of processor (either x86/AMD64 or PowerPC), you can still choose one yourself. You can run other useful tools -- including Memtest86+, a utility for memory hardware diagnostics -- from the boot menu. If you want to boot multiple operating systems on the system disk, you can use Smart Boot Manager, and for those who miss the DOS command-line interface, you have FreeDOS.

After you select a system, Finnix boots with no problems and with all hardware detected. You are then presented with a simple command-line interface (CLI); no graphical user interface (GUI) is available.

Finnix tools inside

Despite the absence of a GUI, Finnix's wealth of tools and utilities should be enough to satisfy system administrators or others tasked with system recovery. While recovery offerings such as Hiren's BootCD are effective, Finnix can be more flexible, especially when you use the utilities along with proper scripting to their full extent.

Among the available disk and partition manipulation and recovery tools is Partimage, which is comparable to Norton Ghost in functionality but also lets users back up or restore an image from a network server. In addition, Finnix includes the data recovery tool ddrescue.

Finnix offers many options for creating or manipulating filesystems. For filesystems such as ext2 and ReiserFS, there are e2fsprogs and reiserfsprogs, respectively. If you need to access or recover data from an NTFS partition, NTFS-3G and ntfsprogs are available. Also included is hfsutils, which supports Macintosh HFS volumes. Other supported filesystems include Unionfs, Cramfs and Squashfs. For volume management, there is Logical Volume Manager (LVM), which also supports LVM2, and EVMS (Enterprise Volume Management System), which supports NTFS and FAT, among others. Also included is Parted, for extending Linux partitions.

In addition to its disk manipulation and management support, Finnix is host to many monitoring, benchmarking, and diagnostic tools. lm-sensors can monitor system temperature, voltage, and fan status. For benchmarking and diagnostics, memtester stress-tests the memory system and helps find intermittent faults caused by overheating, unregulated power, and so on. To test how well your hard disk system is performing, Bonnie++ is included. For a complete stress test of the system, including the CPU, memory, and IO, a tool called stress is available.

A system recovery distribution such as Finnix would not be complete if it did not allow you to back up recovered data on external media. Finnix supports CDs and DVDs as backup media and includes a range of burning utilities, such as cdbackup, wodim, and dvdrecord, to make this process as fast and easy as possible. Although most of us are used to burning data with a GUI tool, burning data using commands is not that hard as long as you know the proper format, or filesystem, to be used. If you ever have difficulties, you can always issue the man command followed by the utility name for detailed explanations, or just search for the tool on the Internet to find its related documentation. Experienced users can also control SCSI tape drives for backup and restore using the mt-st tool. You can perform incremental backups over the network, and restore files, using rdiff-backup.

Since Finnix is for system administrators, it includes popular and useful networking tools such as Nmap, for scanning and auditing networks, and tcpdump, a powerful network packet monitoring tool. Also included are SNMP tools such as snmp; the IPTraf interactive LAN traffic monitor; network filtering and firewalls such as ipchains and iptables; various VPN tools for PPTP, IPSec, and SSL; and the common network accessibility tools ping and traceroute. Common Linux network interface management commands such as ethtool and ifdownup are included as well, as are tools for enabling network services such as NFS, Samba, and FTP.

I tested the partition management tools, especially Partimage and ddrescue. Although I encountered some problems because I did not use some of the parameters, I successfully created an image of a partition, stored it on a network drive, and recovered some data from a corrupted disk. I also tested the CD- and DVD-burning tools in the command line and, following the detailed explanation of the burning parameters, was able to burn data to a DVD. I found the Joe editor handy for editing configuration files; other editors, such as sed and Zile, are also provided. To see all Finnix's packages, visit the official site.

A system administrator tool

Finnix 92.0 is a useful distribution for system administrators. With many tools covering jobs such as data recovery, hardware diagnostics and benchmarking, network services, and monitoring, this distribution can greatly help an administrator. However, Finnix is not for the average user accustomed to booting up a system and doing things graphically. While Finnix's CLI-based tools are not that complex, one must have the necessary knowledge to fully understand how to use them.

I was satisfied with the packages included in this distribution, especially the filesystem management and recovery utilities, as well as the CLI backup tools. For serious network troubleshooting, I would recommend instead distributions such as Network Security Toolkit or BackTrack, which are specifically intended for such purposes.

Finnix 93.0 released

Finnix is a small, self-contained, bootable Linux CD distribution for system administrators, based on Debian testing. Today marks the release of version 93.0 for the x86/AMD64, PowerPC, and UML/Xen platforms.

Finnix 93.0 itself is a maintenance release, but due to the length of time between Finnix 92.1 and 93.0, the time between Debian upstream updates warranted a major version number bump. New features include Linux kernel 2.6.30, and updated upstream software.