Creating Diagnostic Test Images#

In uncommon situations you may want to execute a self-contained diagnostic program as a compute node image. In this case, "self-contained" means the diagnostic program itself functions as a kernel and does not need an initrd.

An example self-contained diagnostic program is the memtest86+ memory diagnostic, which can be downloaded from www.memtest.org.

To check the memtest and create a boot configuration that works for both EFI and legacy booting using the ISO file:

  1. Download the latest compressed Linux 64-bit ISO from www.memtest.org. For example, mt86plus_8.00_x86_64.iso.zip.

  2. Uncompress the downloaded file to expose the ISO:

    unzip mt86plus_8.00_x86_64.iso.zip
    
  3. Mount the ISO:

    mkdir memtest
    sudo mount memtest.iso memtest
    
  4. Create a new boot configuration that includes the EFI binary:

    cw-bootctl create name=Memtest kernel=@memtest/EFI/BOOT/bootx64.efi
    
  5. Configure the desired node to execute the new boot configuration:

    cw-nodectl -in10 set _boot_config=Memtest
    
  6. Ensure that you have a method to view serial output from that node. For example, if serial output uses ttyS1:

    cw-bootctl -i Memtest update cmdline="console=ttyS1,115200"
    
  7. Reboot the node:

    cw-nodectl -in10 reboot
    

Alternatively, you can use the binary files from www.memtest.org and combine some of the commands:

  1. Download the latest binary file from www.memtest.org. For example, mt86plus_8.00.binaries.zip.

  2. Uncompress the downloaded file:

    [admin@head1]$ unzip mt86plus_8.00.binaries.zip
    Archive:  mt86plus_8.00.binaries.zip
      inflating: mt86p_800_i586
      inflating: mt86p_800_la64
      inflating: mt86p_800_x86_64
    
  3. Create a new boot configuration that includes the memtest kernel:

    [admin@head1]$ cw-bootctl create name=mt86p_800_x86_64 kernel=@mt86p_800_x86_64
    Uploading mt86p_800_x86_64 to 7f2b0f5bbd9b40fa862a60dc8dcfd6b9 as kernel:
       100.0% complete, elapsed: 0:00:00.3
    
       done.
    Created Boot Configuration
      mt86p_800_x86_64
    
  4. Configure the desired node to execute the new boot configuration and reboot the node:

    [admin@head1]$ cw-nodectl -in0 set _boot_config=mt86p_800_x86_64 then reboot
    Results
      n0
        success: True
    Nodes
      n0: reboot succeeded