System Boot Sequence

The boot sequence

Very simplified the system's boot process work as follows:

  1. The system boot loader (lilo, syslinux, grub etc.) is started by the computer BIOS.
  2. It reads its configuration and prompts (if configured) for the kernel to boot.
  3. Then it loads the selected kernel and initial RAM disk into RAM and starts the kernel passing any additional parameters from the boot prompt.
  4. The kernel unpacks the initial RAM disk and
  5. starts the init program in the disk's root directory.

And this is where the ariane boot process comes into play. The ariane init script has to

  1. load any modules required for the following steps (e.g. ext2, ext3, cdrom, network card drivers)
  2. prepare the RAM disk to the target image,
  3. locate and install the target image from CD-ROM, USB stick or network,
  4. make additional corrections to the installed image if required.

Boot parameters

The init script (or more precise: the ariane loader scripts) supports the following boot prompt parameters.

im=filename
instead of searching the image to load, use filename on the auto detected source device. The filename parameter may also have the extended boot parameter format described below.

ms=num
sets the amount of RAM in megabytes to allocate for the system's RAM disk, the default is 256.

sh
starts a shell after load the linux image into RAM before making any pre-boot changes to it.

There are more supported parameters in the init script but the are not processed.

Loading the linux image

After some amount of RAM has been prepared to accommodate the linux image the loader script is started. Its task is to locate the linux image and load it into RAM. The default is to do some autodetection for the image source and its filename:

This autodetection can be overridden by specifying an image boot parameter with the im boot prompt option, see below for a description.

The image boot parameter

The image boot parameter (IBP) can be used to set the source of the linux image that should be loaded into RAM, bypassing any device/image autodetection.

The IBP has up to five colon separated fields:

type
describes the source type. Supported values are

Value Device
dev local device
tftp TFTP server
ftp FTP server

source-name
either the device name (if type= dev) or the server's IP-number. If the system booted from PXE the IP-number may be a star "*" in which case the PXE server's IP-number is used. If the device name does not start with "/dev/" this is automatically insterted.

filename
the image's filename.

username
username for the server logon (if type = ftp).

password
password for the server login (if type = ftp).

Example IBPs are

dev:sda1:linux.cgz
loads linux.cgz from the local device /dev/sda1.

tftp:*:/z/test-linux.cgz
loads /z/test-linux.cgz from the PXE server using tftp.

ftp:192.168.1.8:/z/test-linux.cgz:nobody:none
loads /z/test-linux.cgz from the FTP server 192.168.1.8, "nobody" is the username and "none" the password.