Sun N1 Service Provisioning System User's Guide for OS Provisioning Plug-In 3.1

ProcedureHow to Modify the Installer Script for Automated SuSe Linux Enterprise Server 8.0 Provisioning

The SuSe Linux Enterprise Server (SLES) 8.0 installer includes code that checks for the presence of a keyboard on the system to be installed. This code prevents the OS Provisioning Plug-In from performing an automated installation of the SLES 8.0 OS. To fully automate the provisioning of the SLES 8.0 OS, you must edit the installer to remove this code. Follow these steps.

Steps
  1. Go to the boot directory that contains the root file for your SLES 8.0 image.

    The boot directory is located in the copy of the first SLES 8.0 CD.

  2. Create a backup copy of the root file.


    # cp root root.orig
    
  3. Mount the copy of the file in loopback mode in a temporary directory.


    # mkdir /tmp/loop
    # mount -o loop root.orig /tmp/loop
    
  4. Create a temporary working directory.


    # mkdir /tmp/work
    
  5. Copy the files from the root file into the temporary working directory.


    # cd /tmp/work
    # rsync -avz /tmp/loop/* .
    
  6. In a text editor, open the YaST2 installer script that is located in our temporary working directory.

    If you use the directory names as specified in the previous steps, the YaST2 installer script is located in the /tmp/work/usr/lib/YaST2/bin/ directory.

  7. Delete the following code segment from the YaST2 installer script.

    # iSeries and p690 dont have a keyboard but a special console, no need to
    # run via serial console.
    
    if [ ! "$update" -a "$Keyboard" = "0" -a ! "$Braille" -a "$NOTISERIES"
    != 0 -a "$NOTHVCCONSOLE" != 0 -a "$HOSTTYPE" != "s390" -a "$HOSTTYPE" !=
    "s390x" ] ; then
         log "no keyboard?"
         echo "No keyboard detected. Trying to connect via serial interface
    /dev/ttyS0."
         echo "On your terminal computer start the user interface with"
         echo "y2base \"serial(115200):/dev/ttyS0\" qt -geometry 800x600
    -style=platinum"
         echo "or"
         echo "y2base \"serial(115200):/dev/ttyS1\" qt -geometry 800x600
    -style=platinum"
         echo "or start the YaST2 menu by typing \"yast2\" and select
    YaST2/Remote Install"
         y2base "$modulename" $moduleargs "serial(115200):/dev/ttyS0"
    --timeout 15
         y2exitcode=$?
         [ $y2exitcode -eq 0 ] && y2cc_ncurses
         if [ "$y2exitcode" = 13 ] ; then
             echo "Connection timeout. Continuing with normal setup."
         else
             exit $y2exitcode
         fi
    fi
  8. Recreate the root file to include the modified YaST2 installer script.


    # cd /tmp
    # mkfs.cramfs work root
    
  9. Copy the new root file to your copy of the first SLES 8.0 CD.


    # cp /tmp/root suse-copy-path/boot/root
    

    Where suse-copy-path is the path to the copy of the first SLES 8.0 CD.

  10. Delete your temporary working directory, and remove the loopback to the temporary directory.


    # rm -rf work
    # umount /tmp/loop
    
Troubleshooting

If, after you edit the SLES 8.0 installer, the installation switches to interactive mode and asks you to confirm the license agreement, rename the info.txt file located in the copy of the first SLES 8.0 CD. For example:

# mv suse-copy-path/media.1/info.txt suse-copy-pathmedia.1/info.txt.bak

After you rename the file, try to provision the SLES 8.0 OS again.