userdoc:system-boot-process

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 two Linux ext2 partitions added after the FAT16 partition to fill the total capacity of the drive.

The first 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.

A 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 x86_64 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 backspace key 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 file system.

  • userdoc/system-boot-process.txt
  • Last modified: 2022/05/31 08:25
  • by abelbeck