Custom Igel iso to automate imaging devices with feature selection

4 min read
Custom Igel iso to automate imaging devices with feature selection
Hard drives to small? Want to image devices without a prompt?

The reason

If you run thin clients that have hard drives on the small side under 4gb or even under 2gb you can still convert them to Igel. I recently ran across this at a place that had around 5,000 Dell Wyse 5010’s with 2gb hard drives.

I was able to customize the image taking it down to its most basic features including Imprivata and Citrix Workspace app. This enabled the creation of an Igel USB stick that would take up under 1.5gb.

Unattended installer

In addition this iso will run unattended. If you boot from this iso it will erase and reload the device without hesitation. You have been warned! This makes for a great pxe boot to image for mass converting Igel devices. Or good for Desktop Support to image devices without needing to learn the choices to make: keep it simple.

Things to consider

In the Igel Management Console you may want to setup a folder and policy to move all devices found with 2gb drives. Create a policy that removes all features save for the bare minimum you need.

A special thank you goes out to the GitHub community, especially this post that made gathering this information possible.

GitHub - IGEL-Community/IGEL-Custom-Partitions: IGEL OS is built on a highly secure Linux distribution. Properly deployed, IGEL OS is locked down to the configurations and applications defined via UMS Profiles. The Custom Partitions feature allows you to implement custom scripts, apps, or other files to one or a group of devices running the IGEL OS.
IGEL OS is built on a highly secure Linux distribution. Properly deployed, IGEL OS is locked down to the configurations and applications defined via UMS Profiles. The Custom Partitions feature allo...

You’ll find the goods below and with that have a great rest of your day.

Best Regards
Michael Wood


Bash file

option name: build-igel-iso-1gb.sh

#!/bin/bash
#set -x
#trap read debug

# Creating an silent install ISO image
## Development machine (Ubuntu 18.04)
# Obtain latest IGEL OS ISO Image
#https://www.igel.com/software-downloads/workspace-edition/
if ! compgen -G "$HOME/Downloads/OSC_*.zip" > /dev/null; then
  echo "***********"
  echo "Obtain latest IGEL OS OSC zip file, save into $HOME/Downloads and re-run this script "
  echo "#https://www.igel.com/software-downloads/workspace-edition/"
  echo "***********"
  exit 1
fi

ISO_VER=`basename ~/Downloads/OSC_*.zip | cut -b 5-13`
ISO_IMAGE_NAME="OSC_${ISO_VER}.unattended.iso"

sudo apt install unzip -y
sudo apt install syslinux-utils -y
sudo apt install genisoimage -y

mkdir build_tar
cd build_tar

mkdir custom
cd custom
unzip $HOME/Downloads/OSC_*.zip

mkdir osciso
sudo mount -oloop preparestick/osc*.iso osciso

sudo mkdir newiso
sudo cp -a osciso/./ newiso

sudo umount osciso
rm -rf preparestick

read -p "Make manual changes then press enter to proceed."

sudo sed -i -e "s/timeout=30/timeout=10/" newiso/boot/grub/igel.conf
sudo sed -i -e "s/default=0/default=1/" newiso/boot/grub/igel.conf
sudo sed -i -e "s/Verbose Installation + Recovery/Installation (Unattended)/" newiso/boot/grub/igel.conf
sudo sed -i -e "s/bzImage igel_syslog=verbose/bzImage quiet osc_unattended=true igel_syslog=quiet/" newiso/boot/grub/igel.conf
#sudo sed -i -e '/Failsafe Installation/i menuentry "Shutdown" { halt }' newiso/boot/grub/igel.conf

cd newiso

#W/O EFI
#sudo genisoimage -r -U -V 'IGEL_OSC_TO' \
  #-o ../../../${ISO_IMAGE_NAME} \
  #-c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin \
  #-no-emul-boot -boot-load-size 4 -boot-info-table \
  #-no-emul-boot .
#sudo isohybrid ../../../${ISO_IMAGE_NAME}

#W EFI
sudo genisoimage -r -U -V 'IGEL_OSC_TO' \
  -o ../../../${ISO_IMAGE_NAME} \
  -c boot/isolinux/boot.cat -b boot/isolinux/isolinux.bin \
  -boot-load-size 4 -boot-info-table -no-emul-boot \
  -eltorito-alt-boot -e igel_efi.img -no-emul-boot .
sudo isohybrid --uefi ../../../${ISO_IMAGE_NAME}

cd ../../..
sudo rm -rf build_tar

How to create custom iso

💡
The below is assuming your using linux. For me I imaged a vm using Ubuntu with default settings. For those shy of linux this is a simple and great introduction.

Make sure both the files are in the download folder: build-igel-iso-2gb.sh & OSC_*.iso

  • Enter terminal prompt
  • Run: cd Downloads
  • Run: ./build-igel-iso-2gb.sh
  • Enter root password

This will pause after extracting the iso with a message: Make manual changes then press enter to proceed. While this is paused and still open, launch a second terminal and do the following.

  • Run: sudo chown -R ctxadmin: ./Downloads/build_tar/custom/newiso
  • exit this terminal

Open explorer and edit the file: /Downloads/build_tar/custom/newiso/images/linux/lxos/lxos.inf.

  • Add the line under [INFO]: custom="true"
  • Delete the [PART] section of each you want to exclude, but do this only if the section has the line: dispensable="true"
  • Save lxos.inf

Return to the first terminal that is pause and hit: enter. The iso file will be constructed in the /Downloads folder named something like: OSC_11.07.170.unattended.iso

Conclusion

You can now create a USB stick, use pxe, boot a VM or any other way you can think of using an iso to image a device.

Virtualize Brief


Follow