What a rabbit hole I was sent down trying to patch a Seagate drives firmware via their provided USB stick creation tool.
If you are experiencing a “couldn’t open file” error when running SeaChest_Firmware it would seem that the devs of the patching tool updated it to implement Cert-C coding standards for checking for secure directories, meaning that the firmware needs to reside in a read-only location.
It’s been a long time since I used Linux with a purpose, so I tried and failed a few things that I found on the web only to finally work out how to put the patch onto a read-only filesystem.
Create your USB stick and remember to copy over the LOD and JSON files (if you’re going to use that).
Boot from the USB and you should end up at a prompt.
Here’s what I did, you can probably do it other ways, but this worked for me.
1. Create a 10MB ext4 filesystem in a file
(you might need to change the size if your patch is bigger)
fallocate -l 10M /tmp/fw.img
mkfs.ext4 /tmp/fw.img
2. Mount it normally (read-write)
sudo mount -o loop /tmp/fw.img /mnt
3. Copy the firmware file into it
sudo cp /media/usb/SummitExosX24SATA-ISE-512E-SE06.LOD /mnt/
(also copy the json if you’re going to use it)
4. Unmount it
sudo umount /mnt
5. Mount it read-only
sudo mount -o loop,ro /tmp/fw.img /mnt
6. Run SeaChest pointing to the read-only folder
Scan to get the handle to the drive for the next command (your /dev/sg0 might be different):
SeaChest_Firmware –scan
Perform the update
SeaChest_Firmware -d /dev/sg0 –downloadFW /mnt/SummitExosX24SATA-ISE-512E-SE06.LOD