Maintaining a bootable USB stick with the latest Dell Firmware and BIOS updates

Scope

This page covers how to maintain and update a bootable USB stick created to apply firmware and BIOS updates to a Dell Server.

This page is a follow on from my previous post: Making the Dell Deployment Media (Linux) ISO USB bootable.

Background

The problem with the Bootable ISO that Dell Repository Manager creates is that it’s a one-time thing. You export your SUU bundles to an ISO and burn it. The next time you need to update a bunch of servers, you download the latest system bundles, update your local SUU repository, and then export the system bundle packages to Bootable Media and burn a brand new ISO again.

Tedious.

Using the method below, you create a bootable USB stick once, and then simply add/update your SUU bundles as time goes on.

Simple 🙂

Maintaining and updating the USB stick

Pre-requisites

Updating your repository with the latest System Bundles

  1. Open up Dell Repository Manager (Data Center Version)
  2. Click on “My Repositories”, then double click on your repository
  3. Now that your repository is open, click Add

 23-04-2013 16-15-18

  1. Follow the Wizard, with the following guidance:
    1. Choose: Import bundles from an existing repository
    2. Choose: Source Repository
    3. Uncheck: any brands or server types that you don’t need
    4. Choose: Linux
    5. Choose: Select Models, then control+click on the models you want to get system bundles for
    6. Choose: ONLY include the most recent and custom bundles.
    7. Click Finish at the end of the wizard
  2. Dell Repository Manager will then import the bundles you’ve specified. Click OK to go back to the main repository view.

Exporting the latest System Bundles

Now that your repository has the latest system bundles, we need to export them into a format that’s compatible with the USB stick we currently have.

  1. Check each System Bundle that you want to export, then click on Export

 23-04-2013 16-22-24

  1. Follow the Export Bundles wizard:
    1. Choose: Export to light weight deployment scripts
    2. Decide whether you want to force the scripts to apply the firmware/BIOS regardless of the version or date. This is only really desirable if you have a company standard and want to ensure that systems are at this standard regardless of whether the system has a newer firmware installed at present.
    3. Regarding the Combine option: Do not use this without checking out my notes at the bottom of the page.
    4. Choose a location to write the export to. Note that it’ll create its own sub-folder so don’t worry about specifying your Desktop.
    5. Once you’re happy with the summary, click Finish and the System Bundles will be exported. This can take a while, as often the bundles need to be downloaded before they can be exported. You can prevent this happening every time you export by choosing to Save your repository

 Copying the new System Bundles to the USB stick

  1. Navigate to where you exported the System Bundles in the previous section and go inside the folder named LightScripts_*, where * is the date and time of the export.
  2. Inside this folder you’ll see a list of System Bundles that you exported. For example:

 23-04-2013 16-52-41

  1. Next, take a look at your existing USB stick. In my example, I have a USB stick mapped to drive F: and it’s called “SUUUPDATER”.
  2. Navigate to drm_files, then repository
  1. Next, copy over the new System Bundle folders from the exported directory onto your USB stick in the drm_files\repository folder.
  1. Safely eject your USB stick from the OS.

That’s it! You’ve just updated your SUU Updater USB stick. To install the updates, boot from the USB stick and choose the System Bundle you want to apply.

A note on the “Combine” option

The combine bundles option is interesting. One of the big issues I have with Dell Repository Manager and the exports it produces is that it duplicates a lot of components (firmwares, etc). The duplicates happen because although many Dell platforms share common components, they are separate products as far as DRM is concerned.

I’m still experimenting with the Combine option and thinking about its pros and cons. Thoughts are below.

How it probably works:

The apply_bundles.sh script simply jumps to a subfolder and executes all the .sh files in a folder. If it jumps into a normal System Bundle, there’s only one .sh file in there, and it’s only applicable to the platform of the system bundle.

However, when you Combine bundles, you get a single folder with multiple .sh files in (one for each platform). I have a feeling that what will happen is, apply_bundles.sh is invoked, and it then runs through all of the .sh files inside the Combined bundle directory. Normally, the apply_components.sh file works by blindly running all the. bin files in the directory. It doesn’t do an inventory check beforehand, so the application of all the .bin files can be quite lengthy. Due to this process, if we run multiple apply_component.sh files in the same directory, it’ll try to install the updates in the directory every single time. So if you have 6 apply_component.sh files in the same folder, it’ll take 6 times as long to apply.

So using Combine is a compromise of Speed vs Capacity. If you have a tiny USB stick and lots of time to wait while 6 apply_component.sh scripts run, then go ahead. But if you’re short on time (like, in a short Outage Windows) and have the capacity on the USB stick, I wouldn’t use the Combine option.

Making the Dell Deployment Media (Linux) ISO USB bootable

Scope

This page covers how to make a USB-bootable memory/flash stick from the Deployment Media (Linux) ISO created by Dell Repository Manager. You can then use this USB stick to quickly add new System Bundles for offline patching in the future, rather than needing to burn DVDs each time.

dell firmware usb boot menu screenshot- medium

There are two steps to this process:

  1. Create the bootable USB stick (This page)
  2. Maintaining the USB stick with the latest Dell Firmware and BIOS updates

Why would you want this?

Having a USB-bootable version of the offline Dell firmware updater is incredibly useful. Here’s why I made it:

  • I don’t need to burn DVDs anymore.
    • If I need to put the latest Firmware or BIOS updates on to a Dell server, I simply drag and drop the exported system bundle from Dell Repository Manager onto the USB stick and plug it into the target server.
  • USB is universally available on most Dell Servers.
    • Many of our old systems have CD-ROMs rather than DVD-ROMs, so burning a 2.6GB DVD is a no-go.
    • Many of our newer systems have no Disc-based device at all, so USB is the only option.

Background

The Dell Deployment Media (Linux) ISO is a bit of a blunt tool, but it gets the job done in a situation where you cannot install Dell SUU updates from an existing OS. An example is installing Dell firmware and BIOS updates onto a server running VMware ESXi. The Deployment Media boot disc/USB stick will run and try to install everything in the SUU bundle repository. It doesn’t inventory the system for installed devices and then only install relevant/applicable BIN files. This means that often you’ll see error messages that the package isn’t applicable or compatible, due to the specific device targeted by the BIN file not being present in the system. This is nothing to worry about.

Prerequisites

  1. You’ll need to have used Dell Repository Manager to create a Deployment Media ISO from repository system bundles.
  2. As at 2014-05-15, some DTK versions (710 – 730) of the Dell DTK break USB boot functionality (see comments). To work around this, you’ll need to do the following:
    • Use the latest DTK_740.cab, which Dell have confirmed now works (see comments). You can get that by simply using DRM, no need to download directly, but I’ve linked to it anyway.
    • Alternatively, download either of the older DTK 651.cab or DTK_700.cab (both confirmed in the comments as working)
    • Put the .cab file in: %USERPROFILE%\AppData\Local\RepositoryManager\Payloads\
    • Delete any other DTK*.cab files in that directory (as newer ones will be used automatically by Dell Repository Manager)
  3. Alternatively, you can download a generic ISO I prepared from here: Download Generic LinuxIso.iso (226MB). It contains updates for PESC1435, but that can be deleted once on USB.
  4. You’ll need a USB stick with sufficient capacity. For example, if your Deployment Media ISO is 2.8GB (as some are), you’ll need a 4GB USB stick.

Steps

Obtain Unetbootin

  1. Obtain Unetbootin for Windows
  2. Insert the USB stick. Be aware that it’ll be wiped!
  3. Run the Unetbootin exe you just downloaded

Prepare the USB stick

From the Unetbootin interface:

09-04-2013 15-34-10

  1. Click on the DiskImage radio button
  2. Click on … and locate the linuxISO.iso file (or whatever your Deployment Media ISO is called)
  3. Choose your target USB stick. In this example, it’s F:\
  4. Hit OK.

Unetbootin will then prepare the USB stick:

09-04-2013 15-35-17

Once complete, choose Exit. Do not reboot:

09-04-2013 15-49-42

Running the firmware/BIOS updates

  1. Once complete, safely remove the USB stick from your system and insert it into your target system
  2. Power on your Dell server and press F11 to bring up the BIOS Boot Manager menu.
  3. Choose Hard Disk, and when the popup menu appears, choose the option relevant to your Flash/Memory/USB stick

WP_20130409_007

  1. At the boot prompt, scroll down and choose the item labelled “1”. It looks like if you leave it as Default, it’ll just cycle round in circles saying it’ll auto boot in 10 seconds. To fix that, see “Extra credit” at the bottom of the page.

WP_20130409_009

  1. If you only have one Update Bundle, the script will run straight away. If you have multiple bundles, it will prompt you which one to run

WP_20130409_013

  1. Note that it can take a long time for the updates to run, and all you’ll see during that time is a bunch of “dots” running across the screen.
  1. Once complete, you’ll be prompted to reboot:

WP_20130409_004

  1. Reboot the system and remove the USB stick
  2. That’s it – you’re done! It can take a while to reboot, as BIOS upgrades occur after you’ve rebooted.

Extra credit – Auto-booting the correct boot option

If you wish to make the USB stick boot by default to the “1” option:

  1. Open up syslinux.cfg in Notepad from the root of the USB drive.
  2. Add  the line: “menu DEFAULT” beneath the line “label ubnentry0”
  3. Save the file.

Or, for super extra credit, simply replace the syslinux.cfg file with the one in this zip file:

zip containing the syslinux.cfg file

File contents:

# modified by Phil Wiffen
# http://about.me/philwiffen

default menu.c32
prompt 0
menu title Custom Dell USB Bootable Firmware Updater
timeout 100

label bootdfu
menu DEFAULT
menu label Boot Dell Firmware Updater
kernel /isolinux/SA.1
append initrd=/isolinux/SA.2 ramdisk_size=229441 root=/dev/ram0 rw DEBUG=0 share_type=cdrom quiet loglevel=1 BUILD=668 vmalloc=256M init=/init mem=15G selinux=0 share_script=drm_files/apply_bundles.sh

Next steps

Now you have a working USB-bootable offline firmware updater for Dell, you may want to check out my guide on how to keep it up to date with new Firmware/System Bundles: Maintaining a bootable USB stick with the latest Dell Firmware and BIOS updates