F.2 Understanding Device Boot Processes in a ZENworks Imaging Environment

The following provides a high-level overview of a Linux boot process and how ZENworks imaging affects it:

  1. A boot loader program loads the Linux kernel and initrd (initial RAM drive) into memory.

    The SLES-based imaging distribution uses isolinux as the boot loader for imaging CDs or DVDs, a modified pxelinux for booting using PXE. If you have a ZENworks partition installed, it uses the grub program to boot alternately between the ZENworks partition and the installed operating system.

    Following are the filenames and paths for Windows 32-bit:

    Files

    When booting from a CD

    When booting from PXE

    Preboot Loader

    isolinux

    pxelinux

    Linux Kernel Name

    \boot\i386\loader\linux

    %ZENWORKS_HOME%\share\tftp\boot\linux

    Initrd Filename

    \boot\i386\loader\initrd

    %ZENWORKS_HOME%\share\tftp\boot\initrd

    Following are the filenames and paths for 32-bit distro:

    Files

    When booting from a CD

    When booting from PXE

    Preboot Loader

    isolinux

    pxelinux

    Linux Kernel Name

    \boot\i386\loader\linux

    $TFTP_HOME\boot\initrd

    Initrd Filename

    \boot\i386\loader\initrd

    $tftp_home$\boot\linux\boot\initrd

    Following are the filenames and paths for 64-bit distro:

    Files

    When booting from a CD

    When booting from PXE

    Preboot Loader

    isolinux

    pxelinux

    Linux Kernel Name

    \boot\x86_64\loader\linux

    $TFTP_HOME\efi\x86_64\linux

    Initrd Filename

    \boot\x86_64\loader\initrd

    $TFTP_HOME\efi\x86_64\initrd

    Following are the filenames and paths for 64-bit UEFI distro:

    Files

    When booting from a CD

    When booting from PXE

    Preboot Loader

    isolinux

    pxelinux

    Linux Kernel Name

    \images\linux

    $TFTP_HOME\efi\x86_64\linux

    Initrd Filename

    \images\initrd

    $TFTP_HOME\efi\x86_64\initrd

  2. The Linux kernel starts running, does some device driver setup, then mounts the initrd file system.

    Regardless of which boot loader method is used, the main purpose is to set up the initrd file as a RAM drive, load the Linux kernel into memory, then turn control over to it with an indication to the Linux kernel of where to find initrd.

  3. The Linux kernel turns control over to linuxrc, for performing initial hardware detection. When finished, control is returned to the Linux kernel.

  4. The Linux kernel starts a background process (/sbin/init).

    After control is passed to the linuxrc program, control is never returned to the Linux kernel or passed on to the init process.

For more information on linuxrc and zenworks.s, review the following sections:

F.2.1 linuxrc

When control is turned over to linuxrc (the filename in the initrd file is init), there are several processes it performs to get the system ready for the imaging process. Linuxrc is initially configured from the linuxrc.config file, which is located in the initrd file system. Additional configuration information for linuxrc can be placed in the /info file, but ZENworks does not normally use this file.

Linuxrc also loads a root file system, which is combined with the initrd file system that is set up by the boot loader. The root file system is located on an imaging CD as the file /boot/i386/root or /boot/x86_64/loader/root. For PXE booting, the root file system is stored on the ZENworks Imaging server as:

  • Windows:

    • 32-bit: %ZENWORKS_HOME%\share\tftp\boot\root

    • 64-bit: %ZENWORKS_HOME%\share\tftp\efi\x86_64\root

  • Linux:

    • 32-bit: srv/tftp/boot/root

    • 64-bit: srv/tftp/efi/x86_64/root

Linuxrc attempts to locate and load the settings.txt file, either on the root of the imaging CD, or on the ZENworks Imaging server in the TFTP directory. From settings.txt, linuxrc reads and processes any parameters that pertain to itself, then copies settings.txt to the root (/) of the file system.

Linuxrc then also attempts to locate and load a file named driverupdate. It is usually located in the same directory as root. This file is used to update drivers and other files in the imaging distribution.

The driverupdate file is based on standard SUSE technology during a PXE boot. Because the network must be operating normally in order to obtain driverupdate, this file cannot update drivers for the active network device. However, other files and drivers can be updated by using the driverupdate file. For more information, see Section F.4.3, Using the Driverupdate File Method.

F.2.2 zenworks

A normal SUSE installation for SUSE Linux or SLES boots to a small distribution to perform a YaST installation. ZENworks Imaging boots with the same installation system, but instead of starting a YaST installation, it starts the ZENworks Imaging process. Control is turned over to the ZENworks script /bin/zenworks.s, which is the main script file for ZENworks imaging processing. The script performs a certain number of setup tasks, then gives control to the appropriate script for the selected imaging process. For more information on the imaging process, see Section 1.5, The Preboot Services Processes.

One of the setup tasks is to apply any update files. When booting from a CD, zenworks.s copies the /addfiles directory structure to the Linux file system. For more information, see Section F.4.1, Adding Files to an Imaging Boot CD.