Booting antiX

Assuming a boot loader (such as Grub) is installed and configured correctly then just three files are needed in order to boot antiX Live Media (liveCD, LiveUSB, etc):

vmlinuz

A compressed Linux kernel.

initrd.gz

A small compressed file system that contains the linuxrc bootstrap script and a limited toolkit usually supplied by BusyBox.

linuxfs

A complete Linux filesystem in a single compressed squashfs file . Traditionally this file was located at /antiX/antiX in the ISO file. The name has been changed to linuxfs so it is now found at /antiX/linuxfs. The official antiX ISO files will contain a symlink at /antiX/antiX that links to the linuxfs file.

The boot loader handles finding the first two files so usually most of the pain and aggravation in the past has involved the simple task of finding the linuxfs file. The previous linuxrc script would scan through all possible devices and partitions, mounting each one and looking for a file at /antiX/antiX. Unfortunately, it sometimes takes a few extra seconds for a USB stick to show up as a device so people were often adding an extra delay with rootdelay=10 to give time for a LiveUSB device to settle. In addition, several extra ad hoc delays were embedded in the linuxrc script to try to address the settling problem. Booting was slower for everyone and was often unreliable.

What’s New

The new script handles this all differently. First, we have a bootlabel option that allows you to boot off of a specifically labeled partition. This will make LiveUSB booting more reliable across different machines because the device name of a USB stick will changes depending on the number and type of internal drivers but the label stays the same. Next, regardless of how the boot device is specified (or if we have to scan for it), if we fail to find the linuxfs file the first time then we try retry more times, pausing one second between tries. The user doesn’t have to guess how large a rootdelay to use and they don’t have to wait watching a blank screen hoping for something to happen.

We also scan SCSI hard drives in reverse alphabetical order. Since USB devices tend to have a higher letters (/dev/sdb is higher than /dev/sda) than internal drives, we usually find USB sticks faster when we are scanning and we will needlessly mount partitions on internal drives less often.

Basic Booting Boot Options

All of the boot* options: bootdev, bootdir, bootlabel, and bootuuid can be abbreviated by replacing "boot" with "b". So bdev, bdir, blabel, and buuid are all valid parameters. In addition, blabel can be further abbreviated to blab.

Basic booting involves specifying the boot device and specifying the name of the linuxfs file and the directory it is in.

Specify the boot device

These parameters allow you to specify which device holds the squashfs file by device name, device label, or device UUID. If none of these options are specified then we revert to scanning all possible block devices.

bootdev

the name of the device that holds the linuxfs file. This is similar to the old fromhd= parameter except this version allows you to omit the leading "/dev/" when specifying a device so bootdev=sdb1 does the same thing as bootdev=/dev/sdb1. Abbreviation: blab=sdb1.

bootlabel

the label of the device that holds the linuxfs file. In other words bootlabel=LiveUSB does what fromhd=LABEL=LiveUSB was expected to do (but didn’t). Abbreviations: blabel, blab.

bootuuid

the UUID of the device that holds the linuxfs file Abbreviation: cheat:buuid.

The name and location of the linuxfs file

bootdir

The directory that holds the linuxfs file. The default is antiX which is fine for a LiveCD or LiveDVD but is inadequate for LiveUSBs and LiveHDs. The problem is that there can easily be more than one /antiX/antiX file or more than one /antiX/linuxfs file if someone has done any frugal installs in the past. The device scanning stops at the first device that has the desired directory/file even if it is the wrong one. If we simply include the antiX version number in the bootdir for LiveUSBs and LiveHDs then a number of potential problems are neatly avoided. The image_dir option is still available. It does the same things as bootdir but is deprecated.

sqname

the name of the linuxfs file. The default is now linuxfs. It used to be antiX. There is usually no need to change this name but you are free to do so if you want. The image_name option is still available. It does the same things as sqname but is deprecated.

sqext

the extension of the linuxfs file This is an extension that is tacked onto the end of the linuxfs name. so sqext=xx does the same thing as sqname=linuxfs.xx. Note: this option (as well as any extension on the linuxfs file name) is incompatible with remastering on filesystems that are restricted to 8.3 file names.

Try, Try Again

There are now four different places you can add delays to the boot process. All of them default to zero except retry. Usually retry is the only one that is needed. Occasionally, rootdelay may be needed but delay and wait should almost never be needed.

retry

Number of times to retry mounting the boot device, waiting one second between tries. This replaces rootdelay for many (but not all) cases. Usually, if the boot device is not found after the default number of retries, there is a configuration problem and no amount of retries will fix it. Default: 9.

rootdelay

Delay this many seconds before looking for the initrd.gz file. If the Welcome to AntiX! message is not seen, then try using rootdelay=10 or rootdelay=20. If the welcome message is seen then there is no need for a rootdelay.

delay

Wait this many seconds before starting to look for the linuxfs file. This should seldom, if ever, be needed. Usually, it is better (and faster) to rely on retry instead.

wait

Wait this many seconds after the bootstrap is complete before starting init.