Update any crucial ssd firmware from linux/grub

May 26, 2019: Updated version here:
Github

Crucial is selling many good ssds, and frequently releases new firmware.
When you have to manage many version of these ssds, it is really time consuming to keep them up-to-date.

‘crucial-fw.pl’ is a little script to generate a single grub config for any crucial ssd firmware upgrade.
It’s a perl script.

LWP::UserAgent
File::Copy
Archive::Extract (debian like: apt-get install libarchive-extract-perl)
Archive::Zip (debian like: apt-get install libarchive-zip-perl)

crucial-fw.tar.gz

‘crucial-fw.pl’ generates a file for grub (default is /etc/grub.d/45_crucial-fw).
Depending on the iso file, it will switch between two loading mode and grab the isolinux.cfg if needed.
This configuration is creating a submenu entry for grub containing one menu entry for each ssd reference specified in the configuration.

Your linux kernel must be able to mount a loopback iso file (loop and isofs modules). Any vanilla kernel is.

$ sudo ./crucial-fw.pl
Target: BX100 (BX100_UPDATE_MU02_BOOTABLE.zip, BX100_UPDATE_MU02_BOOTABLE.iso)
  Uncompressing.. BX100_UPDATE_MU02_BOOTABLE.iso done
  Moving to BX100.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: BX200 (BX200_UPDATE_MU02_BOOTABLE.zip, BX200_UPDATE_MU02_BOOTABLE.iso)
  Uncompressing.. BX200_UPDATE_MU02_BOOTABLE.iso done
  Moving to BX200.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: C300 (hp-crucial-5or6-to-7-05.zip, hp-crucial-5or6-to-7-05.iso)
  Uncompressing.. hp-crucial-5or6-to-7-05.iso done
  Moving to C300.iso done
  Mounting done
  Grub -> mode linux16 done
 done
  Unmounting done
Target: M4 (crucial-m4-070h-07-00.zip, crucial-m4-070h-07-00.iso)
  Uncompressing.. crucial-m4-070h-07-00.iso done
  Moving to M4.iso done
  Mounting done
  Grub -> mode linux16 done
 done
  Unmounting done
Target: M500 (crucial-m500.mu05-01-S0-tcg.zip, crucial-m500.mu05-01-S0-tcg.iso)
  Uncompressing.. crucial-m500.mu05-01-S0-tcg.iso done
  Moving to M500.iso done
  Mounting done
  Grub -> mode linux16 done
 done
  Unmounting done
Target: M550 (m550-sed-update-mu02-bootable.zip, m550-sed-update-mu02-bootable.iso)
  Uncompressing.. M550_SED_UPDATE_MU02_BOOTABLE.iso done
  Moving to M550.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX100 (MX100_MU02_BOOTABLE_ALL_CAP.zip, MX100_MU02_BOOTABLE_ALL_CAP.iso)
  Uncompressing.. MX100_MU02_BOOTABLE_ALL_CAP.iso done
  Moving to MX100.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX200 (MX200_MU03_BOOTABLE.zip, MX200_MU03_BOOTABLE.iso)
  Uncompressing.. MX200_MU03_BOOTABLE.iso done
  Moving to MX200.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done

Generated in: /etc/grub.d/45_crucial-fw
      ISO in: /boot/crucial-fw

You need to run: 'update-grub2' and reboot to apply one FW now

The configuration file is named ‘crucial-fw.cfg’, content:

BX200	http://www.crucial.com/wcsstore/CrucialSAS/firmware/BX200/MU02/BX200_UPDATE_MU02_BOOTABLE.zip
BX100	http://www.crucial.com/wcsstore/CrucialSAS/firmware/BX100/MU02/BX100_UPDATE_MU02_BOOTABLE.zip

M550	http://www.crucial.com/wcsstore/CrucialSAS/firmware/M550/MU02/m550-sed-update-mu02-bootable.zip
M500	http://www.crucial.com/wcsstore/CrucialSAS/firmware/M500/MU05/crucial-m500.mu05-01-S0-tcg.zip

MX200	http://www.crucial.com/wcsstore/CrucialSAS/firmware/mx200/MU03/MX200_MU03_BOOTABLE.zip
MX100	http://www.crucial.com/wcsstore/CrucialSAS/firmware/MX100/MU02/MX100_MU02_BOOTABLE_ALL_CAP.zip

M4	http://www.crucial.com/wcsstore/CrucialSAS/firmware/m4/070H/crucial-m4-070h-07-00.zip
C300	http://www.crucial.com/wcsstore/CrucialSAS/firmware/C300/0007/hp-crucial-5or6-to-7-05.zip

You can comment anything you don’t need.
If Crucial is releasing a new firmware, you will have to refresh the url.

Crucial firmware are linked here: crucial.
The files we are interested in are “Manual Boot File for Windows and Mac”.

Since these isos are using isolinux … an unfair nonsense.
Why didn’t they add “and Linux and BSD and everything x86”? or simply put “for PC and Mac” (another possible nonsense since a Mac is a classic x86 hardware platform).

5 thoughts on “Update any crucial ssd firmware from linux/grub

Leave a Reply

Your email address will not be published. Required fields are marked *