Coder Social home page Coder Social logo

crucial-ssd-firmware-grub's Introduction

crucial-ssd-firmware-grub

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

You need:

 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.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.

You have to maintain the .cfg file up-to-date.

 crucial-fw.pl <options>
   Options:
     -h | --help  : usage
     -a | --all   : generate all grub menu entries
                    (default behavior is to scan for SSD types)
     -t | --type  : specific ssds type to generate (multiple allowed)
     -l | --list  : list ssds type managed

Default behavior is to try to detect the kind of ssd running on the current host. You can generate all of them with the '-a' option.

# ./crucial-fw.pl -a
Target: BX100 #1 (BX100_UPDATE_MU02_BOOTABLE.zip, BX100_UPDATE_MU02_BOOTABLE.iso)
  Downloading.. done
  Uncompressing.. BX100_UPDATE_MU02_BOOTABLE.iso done
  Moving to BX100-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: BX200 #1 (BX200_UPDATE_MU02_BOOTABLE.zip, BX200_UPDATE_MU02_BOOTABLE.iso)
  Downloading.. done
  Uncompressing.. BX200_UPDATE_MU02_BOOTABLE.iso done
  Moving to BX200-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: C300 #1 (c300-fw0002.zip, c300-fw0002.iso)
  Downloading.. done
  Uncompressing.. c300-fw0002.iso done
  Moving to C300-1.iso done
  Mounting done
  Grub -> mode linux16 done
 done
  Unmounting done
Target: C300 #2 (bootisolinux-0002-to-0006.zip, bootisolinux-0002-to-0006.iso)
  Downloading.. done
  Uncompressing.. bootisolinux-0002-to-0006.iso done
  Moving to C300-2.iso done
  Mounting done
  Grub -> mode linux16 done
 done
  Unmounting done
Target: C300 #3 (hp-crucial-5or6-to-7-05.zip, hp-crucial-5or6-to-7-05.iso)
  Downloading.. done
  Uncompressing.. hp-crucial-5or6-to-7-05.iso done
  Moving to C300-3.iso done
  Mounting done
  Grub -> mode linux16 done
 done
  Unmounting done
Target: M4 #1 (crucial-m4-070h-07-00.zip, crucial-m4-070h-07-00.iso)
  Downloading.. done
  Uncompressing.. crucial-m4-070h-07-00.iso done
  Moving to M4-1.iso done
  Mounting done
  Grub -> mode linux16 done
 done
  Unmounting done
Target: M500 #1 (crucial-m500.mu05-01-S0-tcg.zip, crucial-m500.mu05-01-S0-tcg.iso)
  Downloading.. done
  Uncompressing.. crucial-m500.mu05-01-S0-tcg.iso done
  Moving to M500-1.iso done
  Mounting done
  Grub -> mode linux16 done
 done
  Unmounting done
Target: M550 #1 (m550-sed-update-mu02-bootable.zip, m550-sed-update-mu02-bootable.iso)
  Downloading.. done
  Uncompressing.. M550_SED_UPDATE_MU02_BOOTABLE.iso done
  Moving to M550-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX100 #1 (MX100_MU03_Update.zip, MX100_MU03_Update.iso)
  Downloading.. done
  Uncompressing.. MX100_MU03_Update.iso done
  Moving to MX100-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX100old #1 (MX100_MU02_BOOTABLE_ALL_CAP.zip, MX100_MU02_BOOTABLE_ALL_CAP.iso)
  Downloading.. done
  Uncompressing.. MX100_MU02_BOOTABLE_ALL_CAP.iso done
  Moving to MX100old-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX200 #1 (mx200-MU05-bootable.zip, mx200-MU05-bootable.iso)
  Downloading.. done
  Uncompressing.. MX200_MU05_Update.iso done
  Moving to MX200-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX200old1 #1 (mx200-MU04-bootable.zip, mx200-MU04-bootable.iso)
  Downloading.. done
  Uncompressing.. mx200_revMU04_bootable_media_update.iso done
  Moving to MX200old1-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX200old2 #1 (mx200-MU03-bootable.zip, mx200-MU03-bootable.iso)
  Downloading.. done
  Uncompressing.. MX200_MU03_BOOTABLE.iso done
  Moving to MX200old2-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX300 #1 (MX300_M0CR070_Firmware_Update.zip, MX300_M0CR070_Firmware_Update.iso)
  Downloading.. done
  Uncompressing.. MX300_M0CR070_Firmware_Update.iso done
  Moving to MX300-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done
Target: MX500 #1 (MX500_M3CR023_update.zip, MX500_M3CR023_update.iso)
  Downloading.. done
  Uncompressing.. MX500_M3CR023_update.iso done
  Moving to MX500-1.iso done
  Mounting done
  Grub -> mode initrd done
  Unmounting done

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

crucial-ssd-firmware-grub's People

Contributors

guillaumef avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

adrianlshaw

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.