userdoc:system-boot-process

This is an old revision of the document!


System Boot Process

AstLinux utilizes a somewhat unique system boot process, providing several key benefits:

  1. AstLinux firmware images reside on a FAT16 partition, mountable by any desktop OS if needed.
  2. Support multiple AstLinux images, “Current” and “Previous” firmware version management.
  3. The intermediate bootloader RUNNIX allows for low level diagnostics in the field.
  4. Designed for flash memory storage using read-only firmware with a read-write overlay.


Disk Partitions:

The AstLinux image (.img.gz) you originally downloaded contains a single 256 MB, FAT16 partition, intended to be byte-for-byte copied to flash storage of some form.

Assuming the New Installation instructions were followed and successful, your flash storage now has one or (optionally) two Linux ext2 partitions added after the FAT16 partition to fill the total capacity of the drive.

The required Linux ext2 partition has a partition label of ASTURW which is a unionfs/overlay read-write partition that allows the read-only firmware mount to have files added or superseded with the corresponding ASTURW files.

Combined unionfs/overlay and /mnt/kd/ (ASTURW) partition:

| FAT16 ~256 MB | ext2 ASTURW -------------------------- |

An optional second ext2 partition has a partition label of ASTKD which is a read-write partition that is mounted as /mnt/kd/ .

Separate unionfs/overlay (ASTURW) and /mnt/kd (ASTKD) partitions:

| FAT16 ~256 MB | ext2 ASTURW ~256 MB | ext2 ASTKD ----- |


First Step - SYSLINUX:

SYSLINUX is a boot loader for the Linux operating system which runs on an MS-DOS FAT16 filesystem. The primary (and default) purpose of SYSLINUX is to launch RUNNIX to then boot AstLinux, but as you can see from the SYSLINUX menu a few more options are also available.

##################################
#  RUNNIX - AstLinux bootloader  #
##################################

 runnix)  RUNNIX boot (default)

  shell)  Run shell instead of booting

    ssh)  Run shell and enable ssh instead of booting

xrunnix)  Use previous RUNNIX image (if any)

memtest)  Run Memtest86+


boot:

Typing shell or ssh at the boot: prompt will still launch RUNNIX, but will signal it to not proceed to launch AstLinux but rather stop at a Linux shell prompt.

Tip -> Hit the space bar at the boot prompt to allow more time before typing shell or ssh.


Second Step - RUNNIX:

RUNNIX is a boot loader specifically for AstLinux, consisting of a very small Linux kernel, trimmed busybox and file utilities e2fsprogs and dosfstools.

By default RUNNIX will execute a shell script to determine which AstLinux firmware image should be loaded and 'kexec' using it, thereby launching AstLinux.

Alternatively, if shell or ssh was specified at the boot: prompt RUNNIX will not proceed to launch AstLinux but rather stop at a Linux shell prompt. An experienced administrator can perform low level diagnostics, possibly fix a damaged partition, or even install the FAT16 partition to an internal flash drive.


Last Step - AstLinux:

Launching the AstLinux kernel is last step to the boot process. An “initrd” is used to setup the unionfs/overlay file system.

  • userdoc/system-boot-process.1401531339.txt.gz
  • Last modified: 2014/05/31 05:15
  • by droemel